@loona/core
Version:
App State Management done with GraphQL (core package)
30 lines • 2.89 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { buildContext } from '../helpers';
/**
* @param {?} manager
* @return {?}
*/
export function createResolvers(manager) {
/** @type {?} */
const schema = {};
manager.resolvers.forEach(def => {
const [typeName, fieldName] = def.path.split('.');
if (!schema[typeName]) {
schema[typeName] = {};
}
schema[typeName][fieldName] = createResolver(def, manager);
});
return schema;
}
/**
* @param {?} def
* @param {?} manager
* @return {?}
*/
function createResolver(def, manager) {
return (parent, args, context) => def.resolve(parent, args, buildContext(context, manager.getClient()));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGxvb25hL2NvcmUvIiwic291cmNlcyI6WyJpbnRlcm5hbC9yZXNvbHZlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxZQUFZLENBQUM7Ozs7O0FBRXhDLE1BQU0sVUFBVSxlQUFlLENBQUMsT0FBZ0I7O1VBQ3hDLE1BQU0sR0FBYyxFQUFFO0lBRTVCLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2NBQ3hCLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUVqRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3JCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkI7UUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsY0FBYyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7Ozs7OztBQUVELFNBQVMsY0FBYyxDQUFDLEdBQWdCLEVBQUUsT0FBZ0I7SUFDeEQsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDL0IsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMxRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZXNvbHZlcnMsIFJlc29sdmVyRGVmfSBmcm9tICcuLi90eXBlcy9yZXNvbHZlcic7XG5pbXBvcnQge01hbmFnZXJ9IGZyb20gJy4uL21hbmFnZXInO1xuaW1wb3J0IHtSZXNvbHZlRm59IGZyb20gJy4uL3R5cGVzL2NvbW1vbic7XG5pbXBvcnQge2J1aWxkQ29udGV4dH0gZnJvbSAnLi4vaGVscGVycyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXNvbHZlcnMobWFuYWdlcjogTWFuYWdlcik6IFJlc29sdmVycyB7XG4gIGNvbnN0IHNjaGVtYTogUmVzb2x2ZXJzID0ge307XG5cbiAgbWFuYWdlci5yZXNvbHZlcnMuZm9yRWFjaChkZWYgPT4ge1xuICAgIGNvbnN0IFt0eXBlTmFtZSwgZmllbGROYW1lXSA9IGRlZi5wYXRoLnNwbGl0KCcuJyk7XG5cbiAgICBpZiAoIXNjaGVtYVt0eXBlTmFtZV0pIHtcbiAgICAgIHNjaGVtYVt0eXBlTmFtZV0gPSB7fTtcbiAgICB9XG5cbiAgICBzY2hlbWFbdHlwZU5hbWVdW2ZpZWxkTmFtZV0gPSBjcmVhdGVSZXNvbHZlcihkZWYsIG1hbmFnZXIpO1xuICB9KTtcblxuICByZXR1cm4gc2NoZW1hO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVSZXNvbHZlcihkZWY6IFJlc29sdmVyRGVmLCBtYW5hZ2VyOiBNYW5hZ2VyKTogUmVzb2x2ZUZuIHtcbiAgcmV0dXJuIChwYXJlbnQsIGFyZ3MsIGNvbnRleHQpID0+XG4gICAgZGVmLnJlc29sdmUocGFyZW50LCBhcmdzLCBidWlsZENvbnRleHQoY29udGV4dCwgbWFuYWdlci5nZXRDbGllbnQoKSkpO1xufVxuIl19