@ortoo/angular-resource
Version:
Magical CRUD resource management for angular
53 lines • 9.27 kB
JavaScript
import * as tslib_1 from "tslib";
import { InjectionToken, NgModule } from '@angular/core';
import * as localForage from 'localforage';
import { CollectionFactory } from './collection';
import { createLocalResourceFactory } from './local';
import { createResourceFactory } from './model';
import { createQueryFactory } from './query';
import { createServerResourceFactory } from './server';
import './declarations.d';
export * from './types';
export { Deferred } from './utils';
export const SERVER_RESOURCE_FACTORY = new InjectionToken('server resource factory');
export const LOCAL_RESOURCE_FACTORY = new InjectionToken('local resource factory');
export const RESOURCE_FACTORY = new InjectionToken('resource factory');
export const QUERY_FACTORY = new InjectionToken('query factory');
export const COLLECTION_FACTORY = new InjectionToken('collection factory');
export const SOCKET_FACTORY = new InjectionToken('socket factory');
export const DATABASE_FACTORY = new InjectionToken('database factory');
let OrtooResourceModule = OrtooResourceModule_1 = class OrtooResourceModule {
static forOptions(opts) {
return {
ngModule: OrtooResourceModule_1,
providers: [
{ provide: SERVER_RESOURCE_FACTORY, useFactory: createServerResourceFactory, deps: [SOCKET_FACTORY] },
{ provide: QUERY_FACTORY, useFactory: createQueryFactory, deps: [SOCKET_FACTORY] },
{ provide: COLLECTION_FACTORY, useValue: CollectionFactory },
{
deps: [SERVER_RESOURCE_FACTORY, QUERY_FACTORY, COLLECTION_FACTORY, DATABASE_FACTORY],
provide: LOCAL_RESOURCE_FACTORY,
useFactory: (srf, qf, cf, dbf) => {
const lf = opts.localForage || localForage;
return createLocalResourceFactory(srf, qf, cf, dbf, lf);
},
},
{
deps: [LOCAL_RESOURCE_FACTORY],
provide: RESOURCE_FACTORY,
useFactory: (lrf) => {
const lf = opts.localForage || localForage;
const plugins = opts.plugins || [];
return createResourceFactory(lrf, lf, plugins, opts.pStorageMaxLen);
},
},
],
};
}
};
OrtooResourceModule = OrtooResourceModule_1 = tslib_1.__decorate([
NgModule()
], OrtooResourceModule);
export { OrtooResourceModule };
var OrtooResourceModule_1;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL0BvcnRvby9hbmd1bGFyLXJlc291cmNlLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEtBQUssV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDN0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBY3ZELE9BQU8sa0JBQWtCLENBQUM7QUFFMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FBd0IseUJBQXlCLENBQUMsQ0FBQztBQUM1RyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBdUIsd0JBQXdCLENBQUMsQ0FBQztBQUN6RyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsa0JBQWtCLENBQUMsQ0FBQztBQUMvRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQWUsZUFBZSxDQUFDLENBQUM7QUFDL0UsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxjQUFjLENBQTBCLG9CQUFvQixDQUFDLENBQUM7QUFDcEcsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFnQixnQkFBZ0IsQ0FBQyxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFrQixrQkFBa0IsQ0FBQyxDQUFDO0FBU3hGLElBQWEsbUJBQW1CLDJCQUFoQztJQUNTLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBdUI7UUFDOUMsTUFBTSxDQUFDO1lBQ0wsUUFBUSxFQUFFLHFCQUFtQjtZQUM3QixTQUFTLEVBQUU7Z0JBQ1QsRUFBQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFDO2dCQUNuRyxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFDO2dCQUNoRixFQUFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUU7Z0JBQzNEO29CQUNFLElBQUksRUFBRSxDQUFDLHVCQUF1QixFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDcEYsT0FBTyxFQUFFLHNCQUFzQjtvQkFDL0IsVUFBVSxFQUFFLENBQUMsR0FBMEIsRUFDMUIsRUFBZ0IsRUFDaEIsRUFBNkIsRUFDN0IsR0FBb0I7d0JBQy9CLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxDQUFDO3dCQUMzQyxNQUFNLENBQUMsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUMxRCxDQUFDO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUM5QixPQUFPLEVBQUUsZ0JBQWdCO29CQUN6QixVQUFVLEVBQUUsQ0FBQyxHQUF5Qjt3QkFDcEMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUM7d0JBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO3dCQUNuQyxNQUFNLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUN0RSxDQUFDO2lCQUNGO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUEvQlksbUJBQW1CO0lBRC9CLFFBQVEsRUFBRTtHQUNFLG1CQUFtQixDQStCL0I7U0EvQlksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBsb2NhbEZvcmFnZSBmcm9tICdsb2NhbGZvcmFnZSc7XG5cbmltcG9ydCB7IENvbGxlY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IGNyZWF0ZUxvY2FsUmVzb3VyY2VGYWN0b3J5IH0gZnJvbSAnLi9sb2NhbCc7XG5pbXBvcnQgeyBjcmVhdGVSZXNvdXJjZUZhY3RvcnkgfSBmcm9tICcuL21vZGVsJztcbmltcG9ydCB7IGNyZWF0ZVF1ZXJ5RmFjdG9yeSB9IGZyb20gJy4vcXVlcnknO1xuaW1wb3J0IHsgY3JlYXRlU2VydmVyUmVzb3VyY2VGYWN0b3J5IH0gZnJvbSAnLi9zZXJ2ZXInO1xuXG5pbXBvcnQgeyBDb2xsZWN0aW9uRmFjdG9yeSBhcyBJQ29sbGVjdGlvbkZhY3RvcnksXG4gICAgICAgICBDb2xsZWN0aW9uU3RhdGljLFxuICAgICAgICAgRGF0YWJhc2VGYWN0b3J5LFxuICAgICAgICAgTG9jYWxGb3JhZ2UsXG4gICAgICAgICBMb2NhbFJlc291cmNlRmFjdG9yeSxcbiAgICAgICAgIE1vZGVsLFxuICAgICAgICAgUGx1Z2luLFxuICAgICAgICAgUXVlcnlGYWN0b3J5LFxuICAgICAgICAgUmVzb3VyY2VGYWN0b3J5LFxuICAgICAgICAgU2VydmVyUmVzb3VyY2VGYWN0b3J5LFxuICAgICAgICAgU29ja2V0RmFjdG9yeSB9IGZyb20gJy4vdHlwZXMnO1xuXG5pbXBvcnQgJy4vZGVjbGFyYXRpb25zLmQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCB7IERlZmVycmVkIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTRVJWRVJfUkVTT1VSQ0VfRkFDVE9SWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTZXJ2ZXJSZXNvdXJjZUZhY3Rvcnk+KCdzZXJ2ZXIgcmVzb3VyY2UgZmFjdG9yeScpO1xuZXhwb3J0IGNvbnN0IExPQ0FMX1JFU09VUkNFX0ZBQ1RPUlkgPSBuZXcgSW5qZWN0aW9uVG9rZW48TG9jYWxSZXNvdXJjZUZhY3Rvcnk+KCdsb2NhbCByZXNvdXJjZSBmYWN0b3J5Jyk7XG5leHBvcnQgY29uc3QgUkVTT1VSQ0VfRkFDVE9SWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZXNvdXJjZUZhY3Rvcnk8TW9kZWw+PigncmVzb3VyY2UgZmFjdG9yeScpO1xuZXhwb3J0IGNvbnN0IFFVRVJZX0ZBQ1RPUlkgPSBuZXcgSW5qZWN0aW9uVG9rZW48UXVlcnlGYWN0b3J5PigncXVlcnkgZmFjdG9yeScpO1xuZXhwb3J0IGNvbnN0IENPTExFQ1RJT05fRkFDVE9SWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb2xsZWN0aW9uU3RhdGljPE1vZGVsPj4oJ2NvbGxlY3Rpb24gZmFjdG9yeScpO1xuZXhwb3J0IGNvbnN0IFNPQ0tFVF9GQUNUT1JZID0gbmV3IEluamVjdGlvblRva2VuPFNvY2tldEZhY3Rvcnk+KCdzb2NrZXQgZmFjdG9yeScpO1xuZXhwb3J0IGNvbnN0IERBVEFCQVNFX0ZBQ1RPUlkgPSBuZXcgSW5qZWN0aW9uVG9rZW48RGF0YWJhc2VGYWN0b3J5PignZGF0YWJhc2UgZmFjdG9yeScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIE9ydG9vUmVzb3VyY2VPcHRzIHtcbiAgbG9jYWxGb3JhZ2U/OiBMb2NhbEZvcmFnZTtcbiAgcGx1Z2lucz86IEFycmF5PFBsdWdpbjxNb2RlbD4+O1xuICBwU3RvcmFnZU1heExlbj86IG51bWJlcjtcbn1cblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBPcnRvb1Jlc291cmNlTW9kdWxlIHtcbiAgcHVibGljIHN0YXRpYyBmb3JPcHRpb25zKG9wdHM6IE9ydG9vUmVzb3VyY2VPcHRzKTogTW9kdWxlV2l0aFByb3ZpZGVycyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBPcnRvb1Jlc291cmNlTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiBTRVJWRVJfUkVTT1VSQ0VfRkFDVE9SWSwgdXNlRmFjdG9yeTogY3JlYXRlU2VydmVyUmVzb3VyY2VGYWN0b3J5LCBkZXBzOiBbU09DS0VUX0ZBQ1RPUlldfSxcbiAgICAgICAge3Byb3ZpZGU6IFFVRVJZX0ZBQ1RPUlksIHVzZUZhY3Rvcnk6IGNyZWF0ZVF1ZXJ5RmFjdG9yeSwgZGVwczogW1NPQ0tFVF9GQUNUT1JZXX0sXG4gICAgICAgIHtwcm92aWRlOiBDT0xMRUNUSU9OX0ZBQ1RPUlksIHVzZVZhbHVlOiBDb2xsZWN0aW9uRmFjdG9yeSB9LFxuICAgICAgICB7XG4gICAgICAgICAgZGVwczogW1NFUlZFUl9SRVNPVVJDRV9GQUNUT1JZLCBRVUVSWV9GQUNUT1JZLCBDT0xMRUNUSU9OX0ZBQ1RPUlksIERBVEFCQVNFX0ZBQ1RPUlldLFxuICAgICAgICAgIHByb3ZpZGU6IExPQ0FMX1JFU09VUkNFX0ZBQ1RPUlksXG4gICAgICAgICAgdXNlRmFjdG9yeTogKHNyZjogU2VydmVyUmVzb3VyY2VGYWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICBxZjogUXVlcnlGYWN0b3J5LFxuICAgICAgICAgICAgICAgICAgICAgICBjZjogSUNvbGxlY3Rpb25GYWN0b3J5PE1vZGVsPixcbiAgICAgICAgICAgICAgICAgICAgICAgZGJmOiBEYXRhYmFzZUZhY3RvcnkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxmID0gb3B0cy5sb2NhbEZvcmFnZSB8fCBsb2NhbEZvcmFnZTtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbFJlc291cmNlRmFjdG9yeShzcmYsIHFmLCBjZiwgZGJmLCBsZik7XG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGRlcHM6IFtMT0NBTF9SRVNPVVJDRV9GQUNUT1JZXSxcbiAgICAgICAgICBwcm92aWRlOiBSRVNPVVJDRV9GQUNUT1JZLFxuICAgICAgICAgIHVzZUZhY3Rvcnk6IChscmY6IExvY2FsUmVzb3VyY2VGYWN0b3J5KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsZiA9IG9wdHMubG9jYWxGb3JhZ2UgfHwgbG9jYWxGb3JhZ2U7XG4gICAgICAgICAgICBjb25zdCBwbHVnaW5zID0gb3B0cy5wbHVnaW5zIHx8IFtdO1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc291cmNlRmFjdG9yeShscmYsIGxmLCBwbHVnaW5zLCBvcHRzLnBTdG9yYWdlTWF4TGVuKTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG59XG4iXX0=