@loona/core
Version:
App State Management done with GraphQL (core package)
73 lines • 7.61 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { MutationManager } from './mutation';
import { UpdateManager } from './update';
import { ResolversManager } from './resolvers';
import { transformMutations } from './metadata/mutation';
import { transformUpdates } from './metadata/update';
import { transformResolvers } from './metadata/resolve';
export class Manager {
/**
* @param {?} options
*/
constructor(options) {
this.getClient = () => {
throw new Error('Manager requires ApolloClient');
};
this.cache = options.cache;
this.defaults = options.defaults;
this.typeDefs = options.typeDefs;
this.resolvers = new ResolversManager(options.resolvers);
this.updates = new UpdateManager(options.updates);
this.mutations = new MutationManager(options.mutations);
if (options.getClient) {
this.getClient = options.getClient;
}
}
/**
* @param {?} instance
* @param {?} meta
* @param {?=} transformFn
* @return {?}
*/
addState(instance, meta, transformFn) {
this.mutations.add(transformMutations(instance, meta, transformFn));
this.updates.add(transformUpdates(instance, meta, transformFn) || []);
this.resolvers.add(transformResolvers(instance, meta, transformFn) || []);
if (meta.defaults) {
this.cache.writeData({
data: meta.defaults,
});
}
if (meta.typeDefs) {
if (!this.typeDefs) {
this.typeDefs = [];
}
if (typeof this.typeDefs === 'string') {
this.typeDefs = [this.typeDefs];
}
this.typeDefs.push(...(typeof meta.typeDefs === 'string'
? [meta.typeDefs]
: meta.typeDefs));
}
}
}
if (false) {
/** @type {?} */
Manager.prototype.cache;
/** @type {?} */
Manager.prototype.mutations;
/** @type {?} */
Manager.prototype.updates;
/** @type {?} */
Manager.prototype.resolvers;
/** @type {?} */
Manager.prototype.defaults;
/** @type {?} */
Manager.prototype.typeDefs;
/** @type {?} */
Manager.prototype.getClient;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bsb29uYS9jb3JlLyIsInNvdXJjZXMiOlsibWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUc3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxNQUFNLE9BQU8sT0FBTzs7OztJQVdsQixZQUFZLE9BQWdCO1FBSjVCLGNBQVMsR0FBb0MsR0FBRyxFQUFFO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztRQUNuRCxDQUFDLENBQUM7UUFHQSxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7U0FDcEM7SUFDSCxDQUFDOzs7Ozs7O0lBRUQsUUFBUSxDQUNOLFFBQWEsRUFDYixJQUFjLEVBQ2QsV0FBc0M7UUFFdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUUxRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTthQUNwQixDQUFDLENBQUM7U0FDSjtRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7YUFDcEI7WUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLFFBQVEsS0FBSyxRQUFRO2dCQUNuQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUNuQixDQUFDO1NBQ0g7SUFDSCxDQUFDO0NBQ0Y7OztJQXREQyx3QkFBd0I7O0lBQ3hCLDRCQUEyQjs7SUFDM0IsMEJBQXVCOztJQUN2Qiw0QkFBNEI7O0lBQzVCLDJCQUFjOztJQUNkLDJCQUF3Qzs7SUFDeEMsNEJBRUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fwb2xsb0NsaWVudH0gZnJvbSAnYXBvbGxvLWNsaWVudCc7XG5pbXBvcnQge0Fwb2xsb0NhY2hlfSBmcm9tICdhcG9sbG8tY2FjaGUnO1xuXG5pbXBvcnQge011dGF0aW9uTWFuYWdlcn0gZnJvbSAnLi9tdXRhdGlvbic7XG5pbXBvcnQge1VwZGF0ZU1hbmFnZXJ9IGZyb20gJy4vdXBkYXRlJztcbmltcG9ydCB7UmVzb2x2ZXJzTWFuYWdlcn0gZnJvbSAnLi9yZXNvbHZlcnMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuL3R5cGVzL29wdGlvbnMnO1xuaW1wb3J0IHtNZXRhZGF0YX0gZnJvbSAnLi90eXBlcy9tZXRhZGF0YSc7XG5pbXBvcnQge3RyYW5zZm9ybU11dGF0aW9uc30gZnJvbSAnLi9tZXRhZGF0YS9tdXRhdGlvbic7XG5pbXBvcnQge3RyYW5zZm9ybVVwZGF0ZXN9IGZyb20gJy4vbWV0YWRhdGEvdXBkYXRlJztcbmltcG9ydCB7dHJhbnNmb3JtUmVzb2x2ZXJzfSBmcm9tICcuL21ldGFkYXRhL3Jlc29sdmUnO1xuXG5leHBvcnQgY2xhc3MgTWFuYWdlciB7XG4gIGNhY2hlOiBBcG9sbG9DYWNoZTxhbnk+O1xuICBtdXRhdGlvbnM6IE11dGF0aW9uTWFuYWdlcjtcbiAgdXBkYXRlczogVXBkYXRlTWFuYWdlcjtcbiAgcmVzb2x2ZXJzOiBSZXNvbHZlcnNNYW5hZ2VyO1xuICBkZWZhdWx0czogYW55O1xuICB0eXBlRGVmczogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG4gIGdldENsaWVudDogKCkgPT4gQXBvbGxvQ2xpZW50PGFueT4gfCBuZXZlciA9ICgpID0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbmFnZXIgcmVxdWlyZXMgQXBvbGxvQ2xpZW50Jyk7XG4gIH07XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogT3B0aW9ucykge1xuICAgIHRoaXMuY2FjaGUgPSBvcHRpb25zLmNhY2hlO1xuICAgIHRoaXMuZGVmYXVsdHMgPSBvcHRpb25zLmRlZmF1bHRzO1xuICAgIHRoaXMudHlwZURlZnMgPSBvcHRpb25zLnR5cGVEZWZzO1xuICAgIHRoaXMucmVzb2x2ZXJzID0gbmV3IFJlc29sdmVyc01hbmFnZXIob3B0aW9ucy5yZXNvbHZlcnMpO1xuICAgIHRoaXMudXBkYXRlcyA9IG5ldyBVcGRhdGVNYW5hZ2VyKG9wdGlvbnMudXBkYXRlcyk7XG4gICAgdGhpcy5tdXRhdGlvbnMgPSBuZXcgTXV0YXRpb25NYW5hZ2VyKG9wdGlvbnMubXV0YXRpb25zKTtcblxuICAgIGlmIChvcHRpb25zLmdldENsaWVudCkge1xuICAgICAgdGhpcy5nZXRDbGllbnQgPSBvcHRpb25zLmdldENsaWVudDtcbiAgICB9XG4gIH1cblxuICBhZGRTdGF0ZShcbiAgICBpbnN0YW5jZTogYW55LFxuICAgIG1ldGE6IE1ldGFkYXRhLFxuICAgIHRyYW5zZm9ybUZuPzogKChyZXNvbHZlcjogYW55KSA9PiBhbnkpLFxuICApIHtcbiAgICB0aGlzLm11dGF0aW9ucy5hZGQodHJhbnNmb3JtTXV0YXRpb25zKGluc3RhbmNlLCBtZXRhLCB0cmFuc2Zvcm1GbikpO1xuICAgIHRoaXMudXBkYXRlcy5hZGQodHJhbnNmb3JtVXBkYXRlcyhpbnN0YW5jZSwgbWV0YSwgdHJhbnNmb3JtRm4pIHx8IFtdKTtcbiAgICB0aGlzLnJlc29sdmVycy5hZGQodHJhbnNmb3JtUmVzb2x2ZXJzKGluc3RhbmNlLCBtZXRhLCB0cmFuc2Zvcm1GbikgfHwgW10pO1xuXG4gICAgaWYgKG1ldGEuZGVmYXVsdHMpIHtcbiAgICAgIHRoaXMuY2FjaGUud3JpdGVEYXRhKHtcbiAgICAgICAgZGF0YTogbWV0YS5kZWZhdWx0cyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChtZXRhLnR5cGVEZWZzKSB7XG4gICAgICBpZiAoIXRoaXMudHlwZURlZnMpIHtcbiAgICAgICAgdGhpcy50eXBlRGVmcyA9IFtdO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRoaXMudHlwZURlZnMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHRoaXMudHlwZURlZnMgPSBbdGhpcy50eXBlRGVmc107XG4gICAgICB9XG5cbiAgICAgIHRoaXMudHlwZURlZnMucHVzaChcbiAgICAgICAgLi4uKHR5cGVvZiBtZXRhLnR5cGVEZWZzID09PSAnc3RyaW5nJ1xuICAgICAgICAgID8gW21ldGEudHlwZURlZnNdXG4gICAgICAgICAgOiBtZXRhLnR5cGVEZWZzKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=