@zodiac-ui/ng-observable
Version:
Create powerful reactive components with Angular. AoT compatible and Ivy ready.
34 lines • 2.44 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @template T
* @param {?} prototype
* @param {?} key
* @param {?} mapper
* @return {?}
*/
export function makePropertyMapper(prototype, key, mapper) {
Object.defineProperty(prototype, key, {
/**
* @return {?}
*/
set() {
/** @type {?} */
const getValue = mapper();
Object.defineProperty(this, key, {
/**
* @return {?}
*/
get() {
return getValue(Object.create(this));
},
enumerable: true,
});
},
enumerable: true,
configurable: true,
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZS1wcm9wZXJ0eS1tYXBwZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Aem9kaWFjLXVpL25nLW9ic2VydmFibGUvIiwic291cmNlcyI6WyJsaWIvaW50ZXJuYWxzL21ha2UtcHJvcGVydHktbWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsTUFBTSxVQUFVLGtCQUFrQixDQUM5QixTQUFjLEVBQ2QsR0FBVyxFQUNYLE1BQStCO0lBRS9CLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTs7OztRQUNsQyxHQUFHOztrQkFDTyxRQUFRLEdBQUcsTUFBTSxFQUFFO1lBRXpCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7OztnQkFDN0IsR0FBRztvQkFDQyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7Z0JBQ3hDLENBQUM7Z0JBQ0QsVUFBVSxFQUFFLElBQUk7YUFDbkIsQ0FBQyxDQUFBO1FBQ04sQ0FBQztRQUNELFVBQVUsRUFBRSxJQUFJO1FBQ2hCLFlBQVksRUFBRSxJQUFJO0tBQ3JCLENBQUMsQ0FBQTtBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbWFrZVByb3BlcnR5TWFwcGVyPFQ+KFxyXG4gICAgcHJvdG90eXBlOiBhbnksXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICAgIG1hcHBlcjogKCkgPT4gKHN0YXRlOiBhbnkpID0+IFQsXHJcbikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3RvdHlwZSwga2V5LCB7XHJcbiAgICAgICAgc2V0KCkge1xyXG4gICAgICAgICAgICBjb25zdCBnZXRWYWx1ZSA9IG1hcHBlcigpXHJcblxyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywga2V5LCB7XHJcbiAgICAgICAgICAgICAgICBnZXQoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFZhbHVlKE9iamVjdC5jcmVhdGUodGhpcykpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXHJcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxyXG4gICAgfSlcclxufVxyXG4iXX0=