UNPKG

@loona/core

Version:

App State Management done with GraphQL (core package)

54 lines 4.62 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { ensureMetadata, readMetadata } from './metadata'; import { getNameOfMutation } from '../mutation'; /** * @param {?} proto * @param {?} propName * @param {?} mutation * @return {?} */ export function setMutationMetadata(proto, propName, mutation) { /** @type {?} */ var constructor = proto.constructor; /** @type {?} */ var meta = ensureMetadata(constructor); meta.mutations.push({ propName: propName, mutation: mutation, }); } /** * @param {?} target * @param {?} propName * @return {?} */ export function hasMutation(target, propName) { /** @type {?} */ var meta = readMetadata(target); if (meta) { return meta.mutations.some(function (def) { return def.propName === propName; }); } return false; } /** * @param {?} instance * @param {?} meta * @param {?=} transformFn * @return {?} */ export function transformMutations(instance, meta, transformFn) { if (transformFn === void 0) { transformFn = function (resolver) { return resolver; }; } return meta.mutations.map(function (_a) { var propName = _a.propName, mutation = _a.mutation; return ({ mutation: typeof mutation === 'string' ? mutation : getNameOfMutation(mutation), resolve: transformFn(instance[propName].bind(instance)), }); }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXV0YXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbG9vbmEvY29yZS8iLCJzb3VyY2VzIjpbIm1ldGFkYXRhL211dGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxNQUFNLFlBQVksQ0FBQztBQUd4RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7QUFFOUMsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsUUFBK0I7O1FBRXpCLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVzs7UUFDL0IsSUFBSSxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7SUFFeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFDbEIsUUFBUSxVQUFBO1FBQ1IsUUFBUSxVQUFBO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQzs7Ozs7O0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7O1FBQ2pELElBQUksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO0lBRWpDLElBQUksSUFBSSxFQUFFO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFBLEdBQUc7WUFDNUIsT0FBTyxHQUFHLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztLQUNKO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDOzs7Ozs7O0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxRQUFhLEVBQ2IsSUFBYyxFQUNkLFdBQTBFO0lBQTFFLDRCQUFBLEVBQUEsd0JBQXNELFFBQVEsSUFBSSxPQUFBLFFBQVEsRUFBUixDQUFRO0lBRTFFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBQyxFQUFvQjtZQUFuQixzQkFBUSxFQUFFLHNCQUFRO1FBQU0sT0FBQSxDQUFDO1lBQ25ELFFBQVEsRUFDTixPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDO1lBQ3ZFLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4RCxDQUFDO0lBSmtELENBSWxELENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RvY3VtZW50Tm9kZX0gZnJvbSAnZ3JhcGhxbCc7XG5cbmltcG9ydCB7ZW5zdXJlTWV0YWRhdGEsIHJlYWRNZXRhZGF0YX0gZnJvbSAnLi9tZXRhZGF0YSc7XG5pbXBvcnQge01ldGFkYXRhfSBmcm9tICcuLi90eXBlcy9tZXRhZGF0YSc7XG5pbXBvcnQge011dGF0aW9uRGVmLCBNdXRhdGlvblJlc29sdmVGbn0gZnJvbSAnLi4vdHlwZXMvbXV0YXRpb24nO1xuaW1wb3J0IHtnZXROYW1lT2ZNdXRhdGlvbn0gZnJvbSAnLi4vbXV0YXRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0TXV0YXRpb25NZXRhZGF0YShcbiAgcHJvdG86IGFueSxcbiAgcHJvcE5hbWU6IHN0cmluZyxcbiAgbXV0YXRpb246IERvY3VtZW50Tm9kZSB8IHN0cmluZyxcbikge1xuICBjb25zdCBjb25zdHJ1Y3RvciA9IHByb3RvLmNvbnN0cnVjdG9yO1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YWRhdGEoY29uc3RydWN0b3IpO1xuXG4gIG1ldGEubXV0YXRpb25zLnB1c2goe1xuICAgIHByb3BOYW1lLFxuICAgIG11dGF0aW9uLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc011dGF0aW9uKHRhcmdldDogYW55LCBwcm9wTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IG1ldGEgPSByZWFkTWV0YWRhdGEodGFyZ2V0KTtcblxuICBpZiAobWV0YSkge1xuICAgIHJldHVybiBtZXRhLm11dGF0aW9ucy5zb21lKGRlZiA9PiB7XG4gICAgICByZXR1cm4gZGVmLnByb3BOYW1lID09PSBwcm9wTmFtZTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU11dGF0aW9ucyhcbiAgaW5zdGFuY2U6IGFueSxcbiAgbWV0YTogTWV0YWRhdGEsXG4gIHRyYW5zZm9ybUZuOiAoKHJlc29sdmVyOiBhbnkpID0+IE11dGF0aW9uUmVzb2x2ZUZuKSA9IHJlc29sdmVyID0+IHJlc29sdmVyLFxuKTogTXV0YXRpb25EZWZbXSB7XG4gIHJldHVybiBtZXRhLm11dGF0aW9ucy5tYXAoKHtwcm9wTmFtZSwgbXV0YXRpb259KSA9PiAoe1xuICAgIG11dGF0aW9uOlxuICAgICAgdHlwZW9mIG11dGF0aW9uID09PSAnc3RyaW5nJyA/IG11dGF0aW9uIDogZ2V0TmFtZU9mTXV0YXRpb24obXV0YXRpb24pLFxuICAgIHJlc29sdmU6IHRyYW5zZm9ybUZuKGluc3RhbmNlW3Byb3BOYW1lXS5iaW5kKGluc3RhbmNlKSksXG4gIH0pKTtcbn1cbiJdfQ==