foop
Version:
interfaces that describe their intentions.
41 lines (39 loc) • 2.77 kB
JavaScript
var ObjectDefine = require('./define')
/**
* @desc define a hidden property that is not writable, extremely internal hidden last resort
* @since 5.0.0-beta.5
* @memberOf util
* @symb 🔚
*
* @extends util/define
* @variation value is a value for the property, not a descriptor
*
* @param {Object} obj object to define on
* @param {Primitive} name property name to define
* @param {Object} descriptor object descriptor
* @return {void}
*
* {@link https://github.com/mobxjs/mobx/blob/master/src/utils/utils.ts#L117 mobx-definefinal}
* @see {@link mobx-definefinal}
*
* @example
*
* const obj = {}
* defineFinal(obj, 'eh', 0)
*
* obj.eh
* //=> 0
*
* Object.keys(obj)
* //=> []
*
*/
module.exports = function addHiddenFinalProp(obj, name, value) {
ObjectDefine(obj, name, {
enumerable: false,
writable: false,
configurable: true,
value: value,
})
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lRmluYWwuanMiLCJzb3VyY2VzIjpbImRlZmluZUZpbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IE9iamVjdERlZmluZSA9IHJlcXVpcmUoJy4vZGVmaW5lJylcblxuLyoqXG4gKiBAZGVzYyBkZWZpbmUgYSBoaWRkZW4gcHJvcGVydHkgdGhhdCBpcyBub3Qgd3JpdGFibGUsIGV4dHJlbWVseSBpbnRlcm5hbCBoaWRkZW4gbGFzdCByZXNvcnRcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjVcbiAqIEBtZW1iZXJPZiB1dGlsXG4gKiBAc3ltYiDwn5SaXG4gKlxuICogQGV4dGVuZHMgdXRpbC9kZWZpbmVcbiAqIEB2YXJpYXRpb24gdmFsdWUgaXMgYSB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5LCBub3QgYSBkZXNjcmlwdG9yXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iaiBvYmplY3QgdG8gZGVmaW5lIG9uXG4gKiBAcGFyYW0ge1ByaW1pdGl2ZX0gbmFtZSBwcm9wZXJ0eSBuYW1lIHRvIGRlZmluZVxuICogQHBhcmFtIHtPYmplY3R9IGRlc2NyaXB0b3Igb2JqZWN0IGRlc2NyaXB0b3JcbiAqIEByZXR1cm4ge3ZvaWR9XG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9tb2J4anMvbW9ieC9ibG9iL21hc3Rlci9zcmMvdXRpbHMvdXRpbHMudHMjTDExNyBtb2J4LWRlZmluZWZpbmFsfVxuICogQHNlZSB7QGxpbmsgbW9ieC1kZWZpbmVmaW5hbH1cbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgIGNvbnN0IG9iaiA9IHt9XG4gKiAgICBkZWZpbmVGaW5hbChvYmosICdlaCcsIDApXG4gKlxuICogICAgb2JqLmVoXG4gKiAgICAvLz0+IDBcbiAqXG4gKiAgICBPYmplY3Qua2V5cyhvYmopXG4gKiAgICAvLz0+IFtdXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIGFkZEhpZGRlbkZpbmFsUHJvcChvYmosIG5hbWUsIHZhbHVlKSB7XG4gIE9iamVjdERlZmluZShvYmosIG5hbWUsIHtcbiAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIHZhbHVlLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBK0J4QyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7RUFDN0QsWUFBWSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7SUFDdEIsVUFBVSxFQUFFLEtBQUs7SUFDakIsUUFBUSxFQUFFLEtBQUs7SUFDZixZQUFZLEVBQUUsSUFBSTtJQUNsQixPQUFBLEtBQUs7R0FDTixDQUFDO0NBQ0g7In0=