UNPKG

@loona/core

Version:

App State Management done with GraphQL (core package)

53 lines 4.79 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc */ import { ApolloLink, } from 'apollo-link'; import { withClientState } from 'apollo-link-state'; import { Manager } from './manager'; import { createMutationSchema } from './internal/mutation'; import { createResolvers } from './internal/resolvers'; /** * @param {?} obj * @return {?} */ function isManager(obj) { return obj instanceof Manager; } export class LoonaLink extends ApolloLink { /** * @param {?} optionsOrManager */ constructor(optionsOrManager) { super(); if (isManager(optionsOrManager)) { this.manager = optionsOrManager; } else { this.manager = new Manager(optionsOrManager); } this.stateLink = withClientState({ cache: this.manager.cache, resolvers: () => { return Object.assign({ Mutation: createMutationSchema(this.manager) }, createResolvers(this.manager)); }, defaults: this.manager.defaults, typeDefs: this.manager.typeDefs, }); } /** * @param {?} operation * @param {?} forward * @return {?} */ request(operation, forward) { return (/** @type {?} */ (this.stateLink.request(operation, forward))); } } if (false) { /** @type {?} */ LoonaLink.prototype.manager; /** @type {?} */ LoonaLink.prototype.stateLink; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bsb29uYS9jb3JlLyIsInNvdXJjZXMiOlsibGluay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFVBQVUsR0FLWCxNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNsQyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBR3JELFNBQVMsU0FBUyxDQUFDLEdBQVE7SUFDekIsT0FBTyxHQUFHLFlBQVksT0FBTyxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7Ozs7SUFJdkMsWUFBWSxnQkFBbUM7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxPQUFPLEdBQUcsZ0JBQWdCLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM5QztRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7WUFDekIsU0FBUyxFQUFFLEdBQUcsRUFBRTtnQkFDZCx1QkFDRSxRQUFRLEVBQUUsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUN6QyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUNoQztZQUNKLENBQUM7WUFDRCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO1lBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVE7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Ozs7O0lBRU0sT0FBTyxDQUNaLFNBQW9CLEVBQ3BCLE9BQWlCO1FBRWpCLE9BQU8sbUJBQUEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxFQUVoRCxDQUFDO0lBQ0osQ0FBQztDQUNGOzs7SUFqQ0MsNEJBQXdCOztJQUN4Qiw4QkFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcG9sbG9MaW5rLFxuICBPcGVyYXRpb24sXG4gIE5leHRMaW5rLFxuICBPYnNlcnZhYmxlLFxuICBGZXRjaFJlc3VsdCxcbn0gZnJvbSAnYXBvbGxvLWxpbmsnO1xuaW1wb3J0IHt3aXRoQ2xpZW50U3RhdGV9IGZyb20gJ2Fwb2xsby1saW5rLXN0YXRlJztcblxuaW1wb3J0IHtNYW5hZ2VyfSBmcm9tICcuL21hbmFnZXInO1xuaW1wb3J0IHtjcmVhdGVNdXRhdGlvblNjaGVtYX0gZnJvbSAnLi9pbnRlcm5hbC9tdXRhdGlvbic7XG5pbXBvcnQge2NyZWF0ZVJlc29sdmVyc30gZnJvbSAnLi9pbnRlcm5hbC9yZXNvbHZlcnMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuL3R5cGVzL29wdGlvbnMnO1xuXG5mdW5jdGlvbiBpc01hbmFnZXIob2JqOiBhbnkpOiBvYmogaXMgTWFuYWdlciB7XG4gIHJldHVybiBvYmogaW5zdGFuY2VvZiBNYW5hZ2VyO1xufVxuXG5leHBvcnQgY2xhc3MgTG9vbmFMaW5rIGV4dGVuZHMgQXBvbGxvTGluayB7XG4gIHB1YmxpYyBtYW5hZ2VyOiBNYW5hZ2VyO1xuICBwcml2YXRlIHN0YXRlTGluazogQXBvbGxvTGluaztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zT3JNYW5hZ2VyOiBPcHRpb25zIHwgTWFuYWdlcikge1xuICAgIHN1cGVyKCk7XG5cbiAgICBpZiAoaXNNYW5hZ2VyKG9wdGlvbnNPck1hbmFnZXIpKSB7XG4gICAgICB0aGlzLm1hbmFnZXIgPSBvcHRpb25zT3JNYW5hZ2VyO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hbmFnZXIgPSBuZXcgTWFuYWdlcihvcHRpb25zT3JNYW5hZ2VyKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXRlTGluayA9IHdpdGhDbGllbnRTdGF0ZSh7XG4gICAgICBjYWNoZTogdGhpcy5tYW5hZ2VyLmNhY2hlLFxuICAgICAgcmVzb2x2ZXJzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgTXV0YXRpb246IGNyZWF0ZU11dGF0aW9uU2NoZW1hKHRoaXMubWFuYWdlciksXG4gICAgICAgICAgLi4uY3JlYXRlUmVzb2x2ZXJzKHRoaXMubWFuYWdlciksXG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgZGVmYXVsdHM6IHRoaXMubWFuYWdlci5kZWZhdWx0cyxcbiAgICAgIHR5cGVEZWZzOiB0aGlzLm1hbmFnZXIudHlwZURlZnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVxdWVzdChcbiAgICBvcGVyYXRpb246IE9wZXJhdGlvbixcbiAgICBmb3J3YXJkOiBOZXh0TGluayxcbiAgKTogT2JzZXJ2YWJsZTxGZXRjaFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlTGluay5yZXF1ZXN0KG9wZXJhdGlvbiwgZm9yd2FyZCkgYXMgT2JzZXJ2YWJsZTxcbiAgICAgIEZldGNoUmVzdWx0XG4gICAgPjtcbiAgfVxufVxuIl19