@loona/core
Version:
App State Management done with GraphQL (core package)
40 lines • 3.21 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { ensureMetadata } from './metadata';
/**
* @param {?} proto
* @param {?} propName
* @param {?} mutation
* @return {?}
*/
export function setUpdateMetadata(proto, propName, mutation) {
/** @type {?} */
var constructor = proto.constructor;
/** @type {?} */
var meta = ensureMetadata(constructor);
meta.updates.push({
propName: propName,
mutation: mutation,
});
}
/**
* @param {?} instance
* @param {?} meta
* @param {?=} transformFn
* @return {?}
*/
export function transformUpdates(instance, meta, transformFn) {
if (transformFn === void 0) { transformFn = function (resolver) { return resolver; }; }
if (meta.updates) {
return meta.updates.map(function (_a) {
var propName = _a.propName, mutation = _a.mutation;
return ({
mutation: mutation,
resolve: transformFn(instance[propName].bind(instance)),
});
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGxvb25hL2NvcmUvIiwic291cmNlcyI6WyJtZXRhZGF0YS91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFFMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsUUFBZ0I7O1FBRVYsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXOztRQUMvQixJQUFJLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztJQUV4QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNoQixRQUFRLFVBQUE7UUFDUixRQUFRLFVBQUE7S0FDVCxDQUFDLENBQUM7QUFDTCxDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixRQUFhLEVBQ2IsSUFBYyxFQUNkLFdBQXdFO0lBQXhFLDRCQUFBLEVBQUEsd0JBQW9ELFFBQVEsSUFBSSxPQUFBLFFBQVEsRUFBUixDQUFRO0lBRXhFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQUMsRUFBb0I7Z0JBQW5CLHNCQUFRLEVBQUUsc0JBQVE7WUFBTSxPQUFBLENBQUM7Z0JBQ2pELFFBQVEsVUFBQTtnQkFDUixPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDeEQsQ0FBQztRQUhnRCxDQUdoRCxDQUFDLENBQUM7S0FDTDtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1VwZGF0ZURlZiwgVXBkYXRlUmVzb2x2ZUZufSBmcm9tICcuLi90eXBlcy91cGRhdGUnO1xuaW1wb3J0IHtNZXRhZGF0YX0gZnJvbSAnLi4vdHlwZXMvbWV0YWRhdGEnO1xuaW1wb3J0IHtlbnN1cmVNZXRhZGF0YX0gZnJvbSAnLi9tZXRhZGF0YSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRVcGRhdGVNZXRhZGF0YShcbiAgcHJvdG86IGFueSxcbiAgcHJvcE5hbWU6IHN0cmluZyxcbiAgbXV0YXRpb246IHN0cmluZyxcbikge1xuICBjb25zdCBjb25zdHJ1Y3RvciA9IHByb3RvLmNvbnN0cnVjdG9yO1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YWRhdGEoY29uc3RydWN0b3IpO1xuXG4gIG1ldGEudXBkYXRlcy5wdXNoKHtcbiAgICBwcm9wTmFtZSxcbiAgICBtdXRhdGlvbixcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1VcGRhdGVzKFxuICBpbnN0YW5jZTogYW55LFxuICBtZXRhOiBNZXRhZGF0YSxcbiAgdHJhbnNmb3JtRm46ICgocmVzb2x2ZXI6IGFueSkgPT4gVXBkYXRlUmVzb2x2ZUZuKSA9IHJlc29sdmVyID0+IHJlc29sdmVyLFxuKTogVXBkYXRlRGVmW10gfCB1bmRlZmluZWQge1xuICBpZiAobWV0YS51cGRhdGVzKSB7XG4gICAgcmV0dXJuIG1ldGEudXBkYXRlcy5tYXAoKHtwcm9wTmFtZSwgbXV0YXRpb259KSA9PiAoe1xuICAgICAgbXV0YXRpb24sXG4gICAgICByZXNvbHZlOiB0cmFuc2Zvcm1GbihpbnN0YW5jZVtwcm9wTmFtZV0uYmluZChpbnN0YW5jZSkpLFxuICAgIH0pKTtcbiAgfVxufVxuIl19