All files / addon/utils safe-set.js

100% Statements 2/2
75% Branches 3/4
100% Functions 1/1
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35                                                            18x 18x      
// [TODO] Move to core if required
 
import { set } from '@ember/object';
 
/**
  Use this util to safely set a property in callbacks or later runs.
 
  ```js
  import Component from '@ember/component';
  import safeSet from "../utils/safe-set";
  import { later } from "f@ember/runloop";
  export default Component.extend({
    state: null,
    action: {
      setFocusState() {
        later(() => {
          safeSet(this, 'state', 'focussed');
        }, 1000);
      }
    }
  });
  ```
  @function safeSet
  @param {object} context reference of the instance
  @param {string} key name of the property that needs to be modified
  @param {string} value value to be updated
*/
 
 
export default function safeSet(context, key, value) {
  Eif (!context.isDestroyed && !context.isDestroying) {
    set(context, key, value);
  }
}