UNPKG

@loona/core

Version:

App State Management done with GraphQL (core package)

46 lines 4.18 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { ensureMetadata } from './metadata'; import { getNameOfMutation, isMutation, mutationToType } from '../mutation'; import { isDocument } from '../helpers'; /** * @param {?} proto * @param {?} propName * @param {?} effects * @return {?} */ export function setEffectMetadata(proto, propName, effects) { /** @type {?} */ const constructor = proto.constructor; /** @type {?} */ const meta = ensureMetadata(constructor); for (const action of effects) { /** @type {?} */ let type = undefined; if (typeof action === 'string') { type = action; } else if (isMutation(action)) { type = mutationToType(action); } else if (isDocument(action)) { type = getNameOfMutation(action); } else if (typeof action.type === 'string') { type = action.type; } if (!type) { throw new Error(`Loona couldn't figure out the type of the action`); } if (!meta.effects[type]) { meta.effects[type] = []; } meta.effects[type].push({ propName, type, }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGxvb25hL2NvcmUvIiwic291cmNlcyI6WyJtZXRhZGF0YS9lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDMUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFlBQVksQ0FBQzs7Ozs7OztBQUV0QyxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEtBQVUsRUFDVixRQUFnQixFQUNoQixPQUFvQjs7VUFFZCxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVc7O1VBQy9CLElBQUksR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDO0lBRXhDLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFOztZQUN4QixJQUFJLEdBQXVCLFNBQVM7UUFFeEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsSUFBSSxHQUFHLE1BQU0sQ0FBQztTQUNmO2FBQU0sSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDN0IsSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjthQUFNLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdCLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNsQzthQUFNLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUMxQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7U0FDckU7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN6QjtRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3RCLFFBQVE7WUFDUixJQUFJO1NBQ0wsQ0FBQyxDQUFDO0tBQ0o7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtlbnN1cmVNZXRhZGF0YX0gZnJvbSAnLi9tZXRhZGF0YSc7XG5pbXBvcnQge0VmZmVjdERlZn0gZnJvbSAnLi4vdHlwZXMvZWZmZWN0JztcbmltcG9ydCB7Z2V0TmFtZU9mTXV0YXRpb24sIGlzTXV0YXRpb24sIG11dGF0aW9uVG9UeXBlfSBmcm9tICcuLi9tdXRhdGlvbic7XG5pbXBvcnQge2lzRG9jdW1lbnR9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0RWZmZWN0TWV0YWRhdGEoXG4gIHByb3RvOiBhbnksXG4gIHByb3BOYW1lOiBzdHJpbmcsXG4gIGVmZmVjdHM6IEVmZmVjdERlZltdLFxuKSB7XG4gIGNvbnN0IGNvbnN0cnVjdG9yID0gcHJvdG8uY29uc3RydWN0b3I7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhZGF0YShjb25zdHJ1Y3Rvcik7XG5cbiAgZm9yIChjb25zdCBhY3Rpb24gb2YgZWZmZWN0cykge1xuICAgIGxldCB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHR5cGUgPSBhY3Rpb247XG4gICAgfSBlbHNlIGlmIChpc011dGF0aW9uKGFjdGlvbikpIHtcbiAgICAgIHR5cGUgPSBtdXRhdGlvblRvVHlwZShhY3Rpb24pO1xuICAgIH0gZWxzZSBpZiAoaXNEb2N1bWVudChhY3Rpb24pKSB7XG4gICAgICB0eXBlID0gZ2V0TmFtZU9mTXV0YXRpb24oYWN0aW9uKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhY3Rpb24udHlwZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHR5cGUgPSBhY3Rpb24udHlwZTtcbiAgICB9XG5cbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTG9vbmEgY291bGRuJ3QgZmlndXJlIG91dCB0aGUgdHlwZSBvZiB0aGUgYWN0aW9uYCk7XG4gICAgfVxuXG4gICAgaWYgKCFtZXRhLmVmZmVjdHNbdHlwZV0pIHtcbiAgICAgIG1ldGEuZWZmZWN0c1t0eXBlXSA9IFtdO1xuICAgIH1cblxuICAgIG1ldGEuZWZmZWN0c1t0eXBlXS5wdXNoKHtcbiAgICAgIHByb3BOYW1lLFxuICAgICAgdHlwZSxcbiAgICB9KTtcbiAgfVxufVxuIl19