UNPKG

@loona/core

Version:

App State Management done with GraphQL (core package)

36 lines 2.94 kB
/** * @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 {?} */ const constructor = proto.constructor; /** @type {?} */ const meta = ensureMetadata(constructor); meta.updates.push({ propName, mutation, }); } /** * @param {?} instance * @param {?} meta * @param {?=} transformFn * @return {?} */ export function transformUpdates(instance, meta, transformFn = resolver => resolver) { if (meta.updates) { return meta.updates.map(({ propName, mutation }) => ({ mutation, resolve: transformFn(instance[propName].bind(instance)), })); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGxvb25hL2NvcmUvIiwic291cmNlcyI6WyJtZXRhZGF0YS91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFFMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsUUFBZ0I7O1VBRVYsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXOztVQUMvQixJQUFJLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztJQUV4QyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUNoQixRQUFRO1FBQ1IsUUFBUTtLQUNULENBQUMsQ0FBQztBQUNMLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFFBQWEsRUFDYixJQUFjLEVBQ2QsY0FBb0QsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRO0lBRXhFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakQsUUFBUTtZQUNSLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RCxDQUFDLENBQUMsQ0FBQztLQUNMO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXBkYXRlRGVmLCBVcGRhdGVSZXNvbHZlRm59IGZyb20gJy4uL3R5cGVzL3VwZGF0ZSc7XG5pbXBvcnQge01ldGFkYXRhfSBmcm9tICcuLi90eXBlcy9tZXRhZGF0YSc7XG5pbXBvcnQge2Vuc3VyZU1ldGFkYXRhfSBmcm9tICcuL21ldGFkYXRhJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFVwZGF0ZU1ldGFkYXRhKFxuICBwcm90bzogYW55LFxuICBwcm9wTmFtZTogc3RyaW5nLFxuICBtdXRhdGlvbjogc3RyaW5nLFxuKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yID0gcHJvdG8uY29uc3RydWN0b3I7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhZGF0YShjb25zdHJ1Y3Rvcik7XG5cbiAgbWV0YS51cGRhdGVzLnB1c2goe1xuICAgIHByb3BOYW1lLFxuICAgIG11dGF0aW9uLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVwZGF0ZXMoXG4gIGluc3RhbmNlOiBhbnksXG4gIG1ldGE6IE1ldGFkYXRhLFxuICB0cmFuc2Zvcm1GbjogKChyZXNvbHZlcjogYW55KSA9PiBVcGRhdGVSZXNvbHZlRm4pID0gcmVzb2x2ZXIgPT4gcmVzb2x2ZXIsXG4pOiBVcGRhdGVEZWZbXSB8IHVuZGVmaW5lZCB7XG4gIGlmIChtZXRhLnVwZGF0ZXMpIHtcbiAgICByZXR1cm4gbWV0YS51cGRhdGVzLm1hcCgoe3Byb3BOYW1lLCBtdXRhdGlvbn0pID0+ICh7XG4gICAgICBtdXRhdGlvbixcbiAgICAgIHJlc29sdmU6IHRyYW5zZm9ybUZuKGluc3RhbmNlW3Byb3BOYW1lXS5iaW5kKGluc3RhbmNlKSksXG4gICAgfSkpO1xuICB9XG59XG4iXX0=