@angular-package/property
Version:
Features to handle object properties.
47 lines • 10.7 kB
JavaScript
var _DataDescriptors_descriptor;
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
import { Property } from '../../lib';
import { callbacks } from '../../callback/src/callback.object';
export class DataDescriptors {
constructor(descriptor) {
_DataDescriptors_descriptor.set(this, {
configurable: true,
enumerable: true,
writable: true,
value: undefined,
});
descriptor && this.set(descriptor);
}
static define(descriptor, callback) {
const result = {
...{
configurable: true,
enumerable: true,
},
...Property.pick(descriptor, 'configurable', 'enumerable', 'writable', 'value')
};
callback && callback(typeof result === 'object', result);
return result;
}
get get() {
return __classPrivateFieldGet(this, _DataDescriptors_descriptor, "f");
}
static guard(descriptor, callback = callbacks['data']) {
let result = true;
Object
.keys(descriptor)
.forEach(key => (result === true) && (result = key in {
'configurable': true, 'enumerable': true, 'writable': true, 'value': true
}));
return callback(result, descriptor);
}
set(descriptor, callback) {
__classPrivateFieldSet(this, _DataDescriptors_descriptor, {
...__classPrivateFieldGet(this, _DataDescriptors_descriptor, "f"),
...DataDescriptors.define(descriptor, callback),
}, "f");
return this;
}
}
_DataDescriptors_descriptor = new WeakMap();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1kZXNjcmlwdG9ycy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3Byb3BlcnR5L3NyYy9kZXNjcmlwdG9yL2xpYi9kYXRhLWRlc2NyaXB0b3JzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFrQi9ELE1BQU0sT0FBTyxlQUFlO0lBNkMxQixZQUFZLFVBQWtDO1FBWDlDLHNDQUFxQztZQUNuQyxZQUFZLEVBQUUsSUFBSTtZQUNsQixVQUFVLEVBQUUsSUFBSTtZQUNoQixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxTQUFTO1NBQ2pCLEVBQUM7UUFPQSxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBcENELE1BQU0sQ0FBQyxNQUFNLENBQ1gsVUFBaUMsRUFDakMsUUFBeUI7UUFFekIsTUFBTSxNQUFNLEdBQUc7WUFDYixHQUFHO2dCQUNELFlBQVksRUFBRSxJQUFJO2dCQUNsQixVQUFVLEVBQUUsSUFBSTthQUNqQjtZQUNELEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDO1NBQ2hGLENBQUM7UUFDRixRQUFRLElBQUksUUFBUSxDQUFDLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN6RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBS0QsSUFBSSxHQUFHO1FBQ0wsT0FBTyx1QkFBQSxJQUFJLG1DQUFZLENBQUM7SUFDMUIsQ0FBQztJQTJCRCxNQUFNLENBQUMsS0FBSyxDQUNWLFVBQWlDLEVBQ2pDLFdBQTJCLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFFNUMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE1BQU07YUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDO2FBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSTtZQUNwRCxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSTtTQUMxRSxDQUFDLENBQUMsQ0FBQztRQUNOLE9BQU8sUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBYU0sR0FBRyxDQUNSLFVBQWlDLEVBQ2pDLFFBQXlCO1FBRXpCLHVCQUFBLElBQUksK0JBQWU7WUFDakIsR0FBRyx1QkFBQSxJQUFJLG1DQUFZO1lBQ25CLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDO1NBQ2hELE1BQUEsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ2xhc3MuXG5pbXBvcnQgeyBQcm9wZXJ0eSB9IGZyb20gJy4uLy4uL2xpYic7XG4vLyBDYWxsYmFjay5cbmltcG9ydCB7IGNhbGxiYWNrcyB9IGZyb20gJy4uLy4uL2NhbGxiYWNrL3NyYy9jYWxsYmFjay5vYmplY3QnO1xuLy8gSW50ZXJmYWNlLlxuaW1wb3J0IHsgRGF0YURlc2NyaXB0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2UvZGF0YS1kZXNjcmlwdG9yLmludGVyZmFjZSc7XG4vLyBUeXBlLlxuaW1wb3J0IHsgUmVzdWx0Q2FsbGJhY2sgfSBmcm9tICcuLi90eXBlL3Jlc3VsdC1jYWxsYmFjay50eXBlJztcblxuLyoqXG4gKiBTdHJpY3RseSBkZWZpbmVzLCBzZXRzLCBhbmQgc3RvcmVzIHByaXZhdGVseSBwcm9wZXJ0eSBkYXRhIGRlc2NyaXB0b3Igb2YgYSBgRGF0YURlc2NyaXB0b3I8VmFsdWU+YCBpbnRlcmZhY2UuXG4gKiBGZWF0dXJlczpcbiAqICsgRGF0YSBkZXNjcmlwdG9yIGlzIG9mIGEgYERhdGFEZXNjcmlwdG9yPFZhbHVlPmAgaW50ZXJmYWNlOlxuICogICAgIC0gVGhlIGB2YWx1ZWAgcHJvcGVydHkgaXMgb2YgYSBnZW5lcmljIGBWYWx1ZWAgdHlwZS5cbiAqICsgR3VhcmRlZCBwcm9jZXNzIG9mIGRlZmluaW5nIHRoZSBvYmplY3QgZGVzY3JpcHRvciwgYnV0IHByb3BlcnRpZXMgYXJlIG5vdCBiZWluZyBjaGVja2VkIGFnYWluc3QgcHJvcGVyIHZhbHVlcy5cbiAqICsgU3RyaWN0bHkgZGVmaW5lcyBwcm9wZXJ0eSBkYXRhIGRlc2NyaXB0b3IuXG4gKiArIFN0cmljdGx5IHNldHMsIGFuZCBzdG9yZXMgYXQgdGhlIHNhbWUgdGltZSBwcm9wZXJ0eSBkYXRhIGRlc2NyaXB0b3IuXG4gKiArIE1ldGhvZCBgc2V0KClgIG9mIHRoZSBpbnN0YW5jZSBhbmQgc3RhdGljIGBkZWZpbmUoKWAgcGlja3MgYGNvbmZpZ3VyYWJsZWAsIGBlbnVtZXJhYmxlYCwgYHdyaXRhYmxlYCwgYHZhbHVlYCBwcm9wZXJ0aWVzIGZyb20gdGhlXG4gKiBwcm92aWRlZCBkYXRhLlxuICogKyBHZXQgcHJpdmF0ZWx5IHN0b3JlZCBkYXRhIGRlc2NyaXB0b3IgZGVmaW5lZCBieSB0aGUgYHNldCgpYCBtZXRob2Qgb2YgdGhlIGluc3RhbmNlLlxuICovXG5leHBvcnQgY2xhc3MgRGF0YURlc2NyaXB0b3JzPFZhbHVlPiB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHN0cmljdGx5IGRlZmluZWQgZGF0YSBkZXNjcmlwdG9yIG9mIGEgYERhdGFEZXNjcmlwdG9yPFZhbHVlPmAgaW50ZXJmYWNlIG9uIGB3cml0YWJsZWAgb3IgYHZhbHVlYCBwcm9wZXJ0eSBkZXRlY3RlZC5cbiAgICogU3RyaWN0bHkgbWVhbnMsIHBhcmFtZXRlciBgZGVzY3JpcHRvcmAgaXMgdHlwZSBndWFyZGVkIGFuZCBtZXRob2QgcGlja3MgYGNvbmZpZ3VyYWJsZWAsIGBlbnVtZXJhYmxlYCwgYHdyaXRhYmxlYCwgYHZhbHVlYFxuICAgKiBwcm9wZXJ0aWVzIGZyb20gdGhlIHByb3ZpZGVkIGBkZXNjcmlwdG9yYCBvYmplY3QuXG4gICAqIEBwYXJhbSBkZXNjcmlwdG9yIEFuIGBvYmplY3RgIG9mIGEgYERhdGFEZXNjcmlwdG9yPFZhbHVlPmAgaW50ZXJmYWNlLCB0byBzZXQgd2l0aCB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlXG4gICAqIGBDb21tb25EZXNjcmlwdG9yYC5cbiAgICogQHBhcmFtIGNhbGxiYWNrIEFuIG9wdGlvbmFsIGBSZXN1bHRDYWxsYmFja2AgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlIGNoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBgZGVzY3JpcHRvcmAgaXMgYW4gYG9iamVjdGBcbiAgICogd2l0aCB0aGUgYHdyaXRhYmxlYCBvciBgdmFsdWVgIHByb3BlcnR5LCBieSBkZWZhdWx0IGl0IHVzZXMgYGRhdGFDYWxsYmFjaygpYCBmdW5jdGlvbiBmcm9tIHRoZSBzdGF0aWMgYGd1YXJkKClgIG1ldGhvZC5cbiAgICogQHJldHVybnMgVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBgb2JqZWN0YCBvZiBhIGBEYXRhRGVzY3JpcHRvcjxWYWx1ZT5gIGludGVyZmFjZS5cbiAgICovXG4gIHN0YXRpYyBkZWZpbmU8VmFsdWU+KFxuICAgIGRlc2NyaXB0b3I6IERhdGFEZXNjcmlwdG9yPFZhbHVlPixcbiAgICBjYWxsYmFjaz86IFJlc3VsdENhbGxiYWNrXG4gICk6IERhdGFEZXNjcmlwdG9yPFZhbHVlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgLi4ue1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgLi4uUHJvcGVydHkucGljayhkZXNjcmlwdG9yLCAnY29uZmlndXJhYmxlJywgJ2VudW1lcmFibGUnLCAnd3JpdGFibGUnLCAndmFsdWUnKVxuICAgIH07XG4gICAgY2FsbGJhY2sgJiYgY2FsbGJhY2sodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcsIHJlc3VsdCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcHJpdmF0ZWx5IHN0b3JlZCBkYXRhIGRlc2NyaXB0b3Igb2YgYSBgRGF0YURlc2NyaXB0b3I8VmFsdWU+YCBpbnRlcmZhY2UgZGVmaW5lZCBieSB0aGUgYHNldCgpYCBtZXRob2QuXG4gICAqL1xuICBnZXQgZ2V0KCk6IERhdGFEZXNjcmlwdG9yPFZhbHVlPiB7XG4gICAgcmV0dXJuIHRoaXMuI2Rlc2NyaXB0b3I7XG4gIH1cblxuICAvLyBEZWZhdWx0cyB0byBkYXRhIGRlc2NyaXB0b3IuXG4gICNkZXNjcmlwdG9yOiBEYXRhRGVzY3JpcHRvcjxWYWx1ZT4gPSB7XG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgd3JpdGFibGU6IHRydWUsXG4gICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBpbnN0YW5jZSwgYW5kIG9wdGlvbmFsbHkgc2V0IGRhdGEgZGVzY3JpcHRvciBvZiBhIGBEYXRhRGVzY3JpcHRvcjxWYWx1ZT5gIGludGVyZmFjZS5cbiAgICogQHBhcmFtIGRlc2NyaXB0b3IgQW4gb3B0aW9uYWwgYG9iamVjdGAgb2YgYSBgRGF0YURlc2NyaXB0b3I8VmFsdWU+YCBpbnRlcmZhY2UgdG8gaW5pdGlhbGx5IHNldC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGRlc2NyaXB0b3I/OiBEYXRhRGVzY3JpcHRvcjxWYWx1ZT4pIHtcbiAgICBkZXNjcmlwdG9yICYmIHRoaXMuc2V0KGRlc2NyaXB0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEd1YXJkcyB0aGUgYGRlc2NyaXB0b3JgIHRvIGJlIGFuIGBvYmplY3RgIG9mIGEgYERhdGFEZXNjcmlwdG9yPFZhbHVlPmAgaW50ZXJmYWNlLlxuICAgKiBAcGFyYW0gZGVzY3JpcHRvciBPYmplY3Qgb2YgYSBgRGF0YURlc2NyaXB0b3I8VmFsdWU+YCBpbnRlcmZhY2UgdG8gZ3VhcmQuXG4gICAqIEBwYXJhbSBjYWxsYmFjayBBIGBSZXN1bHRDYWxsYmFja2AgZnVuY3Rpb24gdG8gaGFuZGxlIHRoZSByZXN1bHQgb2YgdGhlIGNoZWNrIHdoZXRoZXIgb3Igbm90IHRoZSBgZGVzY3JpcHRvcmBcbiAgICogaXMgYW4gYG9iamVjdGAgd2l0aCB0aGUgYHdyaXRhYmxlYCBvciBgdmFsdWVgIHByb3BlcnR5LCBieSBkZWZhdWx0IGl0IHVzZXMgYGRhdGFDYWxsYmFjaygpYCBmdW5jdGlvbi5cbiAgICogQHRocm93cyBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlIGBkZXNjcmlwdG9yYCBpcyBub3QgYW4gYG9iamVjdGAgb2YgYSBgRGF0YURlc2NyaXB0b3I8VmFsdWU+YCBpbnRlcmZhY2UsIHdoaWNoIG1lYW5zIGRvZXNuJ3RcbiAgICogY29udGFpbiBgd3JpdGFibGVgIG9yIGB2YWx1ZWAgcHJvcGVydHkuXG4gICAqIEByZXR1cm5zIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBgYm9vbGVhbmAgaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBgZGVzY3JpcHRvcmAgaXMgYW4gYG9iamVjdGAgd2l0aCB0aGUgYHdyaXRhYmxlYCBvciBgdmFsdWVgIHByb3BlcnR5LlxuICAgKi9cbiAgc3RhdGljIGd1YXJkPFZhbHVlPihcbiAgICBkZXNjcmlwdG9yOiBEYXRhRGVzY3JpcHRvcjxWYWx1ZT4sXG4gICAgY2FsbGJhY2s6IFJlc3VsdENhbGxiYWNrID0gY2FsbGJhY2tzWydkYXRhJ11cbiAgKTogZGVzY3JpcHRvciBpcyBEYXRhRGVzY3JpcHRvcjxWYWx1ZT4ge1xuICAgIGxldCByZXN1bHQgPSB0cnVlO1xuICAgIE9iamVjdFxuICAgICAgLmtleXMoZGVzY3JpcHRvcilcbiAgICAgIC5mb3JFYWNoKGtleSA9PiAocmVzdWx0ID09PSB0cnVlKSAmJiAocmVzdWx0ID0ga2V5IGluIHtcbiAgICAgICAgJ2NvbmZpZ3VyYWJsZSc6IHRydWUsICdlbnVtZXJhYmxlJzogdHJ1ZSwgJ3dyaXRhYmxlJzogdHJ1ZSwgJ3ZhbHVlJzogdHJ1ZVxuICAgICAgfSkpO1xuICAgIHJldHVybiBjYWxsYmFjayhyZXN1bHQsIGRlc2NyaXB0b3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0cmljdGx5IHNldHMgd2l0aCB0aGUgbGFzdCBzYXZlZCBkZXNjcmlwdG9yIHZhbHVlcywgYW5kIHN0b3JlcyBwcml2YXRlbHkgZGF0YSBkZXNjcmlwdG9yIG9mIGEgYERhdGFEZXNjcmlwdG9yPFZhbHVlPmBcbiAgICogaW50ZXJmYWNlLiBTdHJpY3RseSBtZWFucywgcGFyYW1ldGVyIGBkZXNjcmlwdG9yYCBpcyB0eXBlIGd1YXJkZWQgYW5kIG1ldGhvZCBwaWNrcyBgY29uZmlndXJhYmxlYCwgYGVudW1lcmFibGVgLCBgd3JpdGFibGVgLCBgdmFsdWVgXG4gICAqIHByb3BlcnRpZXMgZnJvbSB0aGUgcHJvdmlkZWQgYGRlc2NyaXB0b3JgIG9iamVjdC5cbiAgICogQHBhcmFtIGRlc2NyaXB0b3IgQW4gYG9iamVjdGAgb2YgYSBgRGF0YURlc2NyaXB0b3I8VmFsdWU+YCBpbnRlcmZhY2UsIHRvIHNldCB3aXRoIHRoZSBsYXN0IHNhdmVkIGRlc2NyaXB0b3IuXG4gICAqIEBwYXJhbSBjYWxsYmFjayBBbiBvcHRpb25hbCBgUmVzdWx0Q2FsbGJhY2tgIGZ1bmN0aW9uIHRvIGhhbmRsZSB0aGUgcmVzdWx0IG9mIHRoZSBjaGVjayB3aGV0aGVyIG9yIG5vdCB0aGUgYGRlc2NyaXB0b3JgIGlzIGFuIGBvYmplY3RgXG4gICAqIHdpdGggdGhlIGB3cml0YWJsZWAgb3IgYHZhbHVlYCBwcm9wZXJ0eSwgYnkgZGVmYXVsdCBpdCB1c2VzIGBkYXRhQ2FsbGJhY2soKWAgZnVuY3Rpb24gZnJvbSB0aGUgc3RhdGljIGBndWFyZCgpYCBtZXRob2QuXG4gICAqIEB0aHJvd3MgVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBgZGVzY3JpcHRvcmAgaXMgbm90IGFuIGBvYmplY3RgIG9mIGEgYERhdGFEZXNjcmlwdG9yPFZhbHVlPmAgaW50ZXJmYWNlLCB3aGljaCBtZWFucyBkb2Vzbid0XG4gICAqIGNvbnRhaW4gYHdyaXRhYmxlYCBvciBgdmFsdWVgIHByb3BlcnR5LlxuICAgKiBAcmV0dXJucyBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgYERhdGFEZXNjcmlwdG9yc2AgaW5zdGFuY2UuXG4gICAqL1xuICBwdWJsaWMgc2V0KFxuICAgIGRlc2NyaXB0b3I6IERhdGFEZXNjcmlwdG9yPFZhbHVlPixcbiAgICBjYWxsYmFjaz86IFJlc3VsdENhbGxiYWNrXG4gICk6IHRoaXMge1xuICAgIHRoaXMuI2Rlc2NyaXB0b3IgPSB7XG4gICAgICAuLi50aGlzLiNkZXNjcmlwdG9yLFxuICAgICAgLi4uRGF0YURlc2NyaXB0b3JzLmRlZmluZShkZXNjcmlwdG9yLCBjYWxsYmFjayksXG4gICAgfTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19