@loona/core
Version:
App State Management done with GraphQL (core package)
58 lines • 4.84 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
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) {
var e_1, _a;
/** @type {?} */
var constructor = proto.constructor;
/** @type {?} */
var meta = ensureMetadata(constructor);
try {
for (var effects_1 = tslib_1.__values(effects), effects_1_1 = effects_1.next(); !effects_1_1.done; effects_1_1 = effects_1.next()) {
var action = effects_1_1.value;
/** @type {?} */
var 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: propName,
type: type,
});
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (effects_1_1 && !effects_1_1.done && (_a = effects_1.return)) _a.call(effects_1);
}
finally { if (e_1) throw e_1.error; }
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGxvb25hL2NvcmUvIiwic291cmNlcyI6WyJtZXRhZGF0YS9lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sWUFBWSxDQUFDO0FBRTFDLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQzFFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFFdEMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsT0FBb0I7OztRQUVkLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVzs7UUFDL0IsSUFBSSxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUM7O1FBRXhDLEtBQXFCLElBQUEsWUFBQSxpQkFBQSxPQUFPLENBQUEsZ0NBQUEscURBQUU7WUFBekIsSUFBTSxNQUFNLG9CQUFBOztnQkFDWCxJQUFJLEdBQXVCLFNBQVM7WUFFeEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQzlCLElBQUksR0FBRyxNQUFNLENBQUM7YUFDZjtpQkFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQjtpQkFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQ2xDO2lCQUFNLElBQUksT0FBTyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtnQkFDMUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDcEI7WUFFRCxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQzthQUNyRTtZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUN6QjtZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUN0QixRQUFRLFVBQUE7Z0JBQ1IsSUFBSSxNQUFBO2FBQ0wsQ0FBQyxDQUFDO1NBQ0o7Ozs7Ozs7OztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2Vuc3VyZU1ldGFkYXRhfSBmcm9tICcuL21ldGFkYXRhJztcbmltcG9ydCB7RWZmZWN0RGVmfSBmcm9tICcuLi90eXBlcy9lZmZlY3QnO1xuaW1wb3J0IHtnZXROYW1lT2ZNdXRhdGlvbiwgaXNNdXRhdGlvbiwgbXV0YXRpb25Ub1R5cGV9IGZyb20gJy4uL211dGF0aW9uJztcbmltcG9ydCB7aXNEb2N1bWVudH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRFZmZlY3RNZXRhZGF0YShcbiAgcHJvdG86IGFueSxcbiAgcHJvcE5hbWU6IHN0cmluZyxcbiAgZWZmZWN0czogRWZmZWN0RGVmW10sXG4pIHtcbiAgY29uc3QgY29uc3RydWN0b3IgPSBwcm90by5jb25zdHJ1Y3RvcjtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGFkYXRhKGNvbnN0cnVjdG9yKTtcblxuICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBlZmZlY3RzKSB7XG4gICAgbGV0IHR5cGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICAgIGlmICh0eXBlb2YgYWN0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgdHlwZSA9IGFjdGlvbjtcbiAgICB9IGVsc2UgaWYgKGlzTXV0YXRpb24oYWN0aW9uKSkge1xuICAgICAgdHlwZSA9IG11dGF0aW9uVG9UeXBlKGFjdGlvbik7XG4gICAgfSBlbHNlIGlmIChpc0RvY3VtZW50KGFjdGlvbikpIHtcbiAgICAgIHR5cGUgPSBnZXROYW1lT2ZNdXRhdGlvbihhY3Rpb24pO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGFjdGlvbi50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgdHlwZSA9IGFjdGlvbi50eXBlO1xuICAgIH1cblxuICAgIGlmICghdHlwZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBMb29uYSBjb3VsZG4ndCBmaWd1cmUgb3V0IHRoZSB0eXBlIG9mIHRoZSBhY3Rpb25gKTtcbiAgICB9XG5cbiAgICBpZiAoIW1ldGEuZWZmZWN0c1t0eXBlXSkge1xuICAgICAgbWV0YS5lZmZlY3RzW3R5cGVdID0gW107XG4gICAgfVxuXG4gICAgbWV0YS5lZmZlY3RzW3R5cGVdLnB1c2goe1xuICAgICAgcHJvcE5hbWUsXG4gICAgICB0eXBlLFxuICAgIH0pO1xuICB9XG59XG4iXX0=