@loona/core
Version:
App State Management done with GraphQL (core package)
32 lines • 2.83 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
import { ensureMetadata } from './metadata';
/**
* @param {?} proto
* @param {?} propName
* @param {?} path
* @return {?}
*/
export function setResolveMetadata(proto, propName, path) {
/** @type {?} */
const constructor = proto.constructor;
/** @type {?} */
const meta = ensureMetadata(constructor);
meta.resolvers.push({ propName, path });
}
/**
* @param {?} instance
* @param {?} meta
* @param {?=} transformFn
* @return {?}
*/
export function transformResolvers(instance, meta, transformFn = resolver => resolver) {
return meta.resolvers.map(({ propName, path }) => ({
name: propName,
path,
resolve: transformFn(instance[propName].bind(instance)),
}));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bsb29uYS9jb3JlLyIsInNvdXJjZXMiOlsibWV0YWRhdGEvcmVzb2x2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLFlBQVksQ0FBQzs7Ozs7OztBQUsxQyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBVSxFQUFFLFFBQWdCLEVBQUUsSUFBWTs7VUFDckUsV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXOztVQUMvQixJQUFJLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQztJQUV4QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7Ozs7Ozs7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLFFBQWEsRUFDYixJQUFjLEVBQ2QsY0FBOEMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRO0lBRWxFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMvQyxJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUk7UUFDSixPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDeEQsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtlbnN1cmVNZXRhZGF0YX0gZnJvbSAnLi9tZXRhZGF0YSc7XG5pbXBvcnQge01ldGFkYXRhfSBmcm9tICcuLi90eXBlcy9tZXRhZGF0YSc7XG5pbXBvcnQge1Jlc29sdmVyRGVmfSBmcm9tICcuLi90eXBlcy9yZXNvbHZlcic7XG5pbXBvcnQge1Jlc29sdmVGbn0gZnJvbSAnLi4vdHlwZXMvY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlc29sdmVNZXRhZGF0YShwcm90bzogYW55LCBwcm9wTmFtZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcpIHtcbiAgY29uc3QgY29uc3RydWN0b3IgPSBwcm90by5jb25zdHJ1Y3RvcjtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGFkYXRhKGNvbnN0cnVjdG9yKTtcblxuICBtZXRhLnJlc29sdmVycy5wdXNoKHtwcm9wTmFtZSwgcGF0aH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUmVzb2x2ZXJzKFxuICBpbnN0YW5jZTogYW55LFxuICBtZXRhOiBNZXRhZGF0YSxcbiAgdHJhbnNmb3JtRm46ICgocmVzb2x2ZXI6IGFueSkgPT4gUmVzb2x2ZUZuKSA9IHJlc29sdmVyID0+IHJlc29sdmVyLFxuKTogUmVzb2x2ZXJEZWZbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBtZXRhLnJlc29sdmVycy5tYXAoKHtwcm9wTmFtZSwgcGF0aH0pID0+ICh7XG4gICAgbmFtZTogcHJvcE5hbWUsXG4gICAgcGF0aCxcbiAgICByZXNvbHZlOiB0cmFuc2Zvcm1GbihpbnN0YW5jZVtwcm9wTmFtZV0uYmluZChpbnN0YW5jZSkpLFxuICB9KSk7XG59XG4iXX0=