ngxs-synchronizers 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +18 -18
- package/README.md +168 -168
- package/docs/api-reference.md +700 -700
- package/docs/usage-guide.md +385 -385
- package/{esm2015/decorators/sync-class.js → esm2020/decorators/sync-class.mjs} +1 -1
- package/esm2020/decorators/sync-state.mjs +60 -0
- package/{esm2015/index.js → esm2020/index.mjs} +1 -1
- package/esm2020/module.mjs +19 -0
- package/esm2020/ngxs-synchronizers.mjs +5 -0
- package/esm2020/state-selector.mjs +221 -0
- package/esm2020/sync-store.mjs +32 -0
- package/esm2020/synchronizer/collection-synchronizer.mjs +2 -0
- package/esm2020/synchronizer/property-synchronizer.mjs +2 -0
- package/esm2020/synchronizer/state-synchronizer.mjs +36 -0
- package/esm2020/synchronizer/synchronizer-dictionary.mjs +26 -0
- package/esm2020/synchronizer/synchronizer.mjs +2 -0
- package/fesm2015/{ngxs-synchronizers.js → ngxs-synchronizers.mjs} +38 -26
- package/fesm2015/ngxs-synchronizers.mjs.map +1 -0
- package/fesm2020/ngxs-synchronizers.mjs +427 -0
- package/fesm2020/ngxs-synchronizers.mjs.map +1 -0
- package/module.d.ts +4 -0
- package/ngxs-synchronizers.d.ts +1 -1
- package/package.json +22 -9
- package/state-selector.d.ts +2 -2
- package/sync-store.d.ts +3 -0
- package/synchronizer/synchronizer-dictionary.d.ts +1 -1
- package/bundles/ngxs-synchronizers.umd.js +0 -791
- package/bundles/ngxs-synchronizers.umd.js.map +0 -1
- package/esm2015/decorators/sync-state.js +0 -54
- package/esm2015/module.js +0 -12
- package/esm2015/ngxs-synchronizers.js +0 -6
- package/esm2015/state-selector.js +0 -221
- package/esm2015/sync-store.js +0 -32
- package/esm2015/synchronizer/collection-synchronizer.js +0 -2
- package/esm2015/synchronizer/property-synchronizer.js +0 -2
- package/esm2015/synchronizer/state-synchronizer.js +0 -33
- package/esm2015/synchronizer/synchronizer-dictionary.js +0 -27
- package/esm2015/synchronizer/synchronizer.js +0 -2
- package/fesm2015/ngxs-synchronizers.js.map +0 -1
- package/ngxs-synchronizers.metadata.json +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-synchronizers.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/decorators/sync-class.ts","../../src/decorators/sync-state.ts","../../src/synchronizer/synchronizer-dictionary.ts","../../src/state-selector.ts","../../src/sync-store.ts","../../src/module.ts","../../src/synchronizer/state-synchronizer.ts","../../src/ngxs-synchronizers.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Type as ClassType } from \"@angular/core\";\r\nimport { SynchronizerDictionary } from \"../synchronizer/synchronizer-dictionary\";\r\n\r\nconst NGXS_SYNCHRONIZERS_METADATA_KEY = Symbol(\"$NGXS_SYNCHRONIZERS_METADATA\");\r\nconst PARENT_REF_KEY = Symbol(\"$PARENT_REF\");\r\nconst SYNC_STORE_OPTIONS_KEY = Symbol(\"$SYNC_STORE_OPTIONS\");\r\n\r\n// From NGXS - Not exposed publicly\r\ninterface StoreOptions<T> {\r\n name: string;\r\n defaults?: T;\r\n children?: any[];\r\n}\r\n\r\ninterface Metadata<T> {\r\n [SYNC_STORE_OPTIONS_KEY]: SyncStoreOptions<T>;\r\n [PARENT_REF_KEY]?: any;\r\n}\r\n\r\nexport interface SyncStoreOptions<T> extends StoreOptions<T> {\r\n synchronizers?: SynchronizerDictionary<T>;\r\n}\r\n\r\nexport interface SyncClass<T> extends ClassType<any> {\r\n [NGXS_SYNCHRONIZERS_METADATA_KEY]?: Metadata<T>;\r\n}\r\n\r\nexport namespace SyncClass {\r\n\r\n export function getStoreOptions<T>($class: SyncClass<T>): SyncStoreOptions<T> {\r\n return metadata<T>($class)[SYNC_STORE_OPTIONS_KEY];\r\n }\r\n\r\n export function setStoreOptions<T>($class: SyncClass<T>, options: SyncStoreOptions<T>): void {\r\n metadata<T>($class)[SYNC_STORE_OPTIONS_KEY] = options;\r\n }\r\n\r\n export function resolveParent<T>($class: SyncClass<T>): SyncClass<unknown> {\r\n return metadata<T>($class)[PARENT_REF_KEY];\r\n }\r\n\r\n export function resolveParents<T>($class: SyncClass<T>): SyncClass<unknown>[] {\r\n const parent = resolveParent($class);\r\n return parent ? [parent, ...resolveParents(parent)] : [];\r\n }\r\n\r\n export function setParent<T>($childClass: SyncClass<unknown>, $parentClass: SyncClass<T>): void {\r\n metadata<T>($childClass)[PARENT_REF_KEY] = $parentClass;\r\n }\r\n\r\n function metadata<T>(stateRef: any): Metadata<T> {\r\n const descriptor = Object.getOwnPropertyDescriptor(stateRef, NGXS_SYNCHRONIZERS_METADATA_KEY);\r\n\r\n if (!descriptor) {\r\n Object.defineProperty(stateRef, NGXS_SYNCHRONIZERS_METADATA_KEY, {\r\n configurable: false,\r\n enumerable: false,\r\n value: {}\r\n });\r\n\r\n return metadata<T>(stateRef);\r\n }\r\n\r\n return descriptor.value;\r\n }\r\n}\r\n","import { Action, State, StateContext } from \"@ngxs/store\";\r\nimport { SyncClass, SyncStoreOptions } from \"./sync-class\";\r\n\r\nexport function SyncState<T>(options: SyncStoreOptions<T>): ClassDecorator {\r\n\r\n return function(constructor: SyncClass<T>) {\r\n // Record the store options\r\n SyncClass.setStoreOptions<T>(constructor, options);\r\n\r\n // Bootstrap the actions for the store\r\n SyncState.UpdateAction.bootstrapClass(constructor);\r\n\r\n // Record the parent store class for any child stores\r\n if (options.children) {\r\n options.children.forEach(child => SyncClass.setParent(child, constructor));\r\n }\r\n\r\n // Apply the @State() decorator to the class\r\n State<T>(options)(constructor);\r\n } as any;\r\n}\r\n\r\nexport namespace SyncState {\r\n\r\n export class UpdateAction<StateT, PropertyT extends keyof StateT> {\r\n public static readonly type: string;\r\n\r\n constructor(\r\n public readonly property: PropertyT,\r\n public readonly payload: StateT[PropertyT]\r\n ) {}\r\n }\r\n\r\n export namespace UpdateAction {\r\n\r\n interface Type<StateT, PropertyT extends keyof StateT> {\r\n type: string;\r\n\r\n new(property: PropertyT, payload: StateT[PropertyT]): UpdateAction<StateT, PropertyT>;\r\n }\r\n\r\n const UPDATE_ACTION_FN_KEY = Symbol(\"$UPDATE_ACTION_FN\");\r\n const updateActions = new Map<SyncClass<any>, Type<any, any>>();\r\n\r\n export function bootstrapClass<StateT>($class: SyncClass<StateT>): void {\r\n // Add the update action function to the class\r\n Object.defineProperty($class.prototype, UPDATE_ACTION_FN_KEY, {\r\n configurable: false,\r\n enumerable: true,\r\n value<PropertyT extends keyof StateT>(\r\n context: StateContext<StateT>,\r\n { property, payload }: SyncState.UpdateAction<StateT, PropertyT>\r\n ) {\r\n context.patchState({ [property]: payload } as any);\r\n }\r\n });\r\n\r\n // Apply the @Action() decorator to the new function\r\n Action(Type<StateT>($class))(\r\n $class.prototype,\r\n UPDATE_ACTION_FN_KEY,\r\n Object.getOwnPropertyDescriptor($class.prototype, UPDATE_ACTION_FN_KEY)\r\n );\r\n }\r\n\r\n export function Type<StateT, PropertyT extends keyof StateT = keyof StateT>(\r\n $class: SyncClass<StateT>\r\n ): Type<StateT, PropertyT> {\r\n if (!updateActions.has($class)) {\r\n updateActions.set($class, class extends UpdateAction<StateT, PropertyT> {\r\n public static readonly type: string = `[${$class.name} sync] Update field`;\r\n });\r\n }\r\n\r\n return updateActions.get($class);\r\n }\r\n }\r\n}\r\n","import { Injector, Type } from \"@angular/core\";\r\nimport { CollectionSynchronizer } from \"./collection-synchronizer\";\r\nimport { PropertySynchronizer } from \"./property-synchronizer\";\r\nimport { Synchronizer } from \"./synchronizer\";\r\n\r\nexport type SynchronizerDictionary<T> = {\r\n [P in keyof T]?: Type<PropertySynchronizer<T, P>>;\r\n} | Type<CollectionSynchronizer<T>>;\r\n\r\nexport namespace SynchronizerDictionary {\r\n\r\n export function keys<T>(dict: SynchronizerDictionary<T>): Array<keyof T> {\r\n return isCollectionSynchronizer(dict) ? [] : Object.keys(dict || {}) as Array<keyof T>;\r\n }\r\n\r\n export function isCollectionSynchronizer<T>(\r\n dict: SynchronizerDictionary<T>\r\n ): dict is Type<CollectionSynchronizer<T>> {\r\n return typeof (dict as Type<CollectionSynchronizer<T>>)?.prototype?.read === \"function\";\r\n }\r\n\r\n export function resolveSynchronizer<T>(\r\n dict: SynchronizerDictionary<T>,\r\n propKey: keyof T\r\n ): Type<Synchronizer<T, keyof T, unknown, unknown>> {\r\n return isCollectionSynchronizer(dict) ? dict : dict[propKey];\r\n }\r\n\r\n export function resolveSynchronizerInstance<T>(\r\n injector: Injector,\r\n dict: SynchronizerDictionary<T>,\r\n propKey: keyof T\r\n ): Synchronizer<T, keyof T, unknown, unknown> {\r\n const synchronizerDef = resolveSynchronizer(dict, propKey);\r\n\r\n if (!!synchronizerDef) {\r\n return injector.get(synchronizerDef);\r\n } else {\r\n throw new Error(`A Synchronizer has not been defined for property '${propKey}.`);\r\n }\r\n }\r\n}\r\n","\r\nimport { BehaviorSubject, empty, forkJoin, merge, Observable, of, throwError, zip } from \"rxjs\";\r\nimport { catchError, distinctUntilChanged, filter, map, mergeMap, publishReplay, refCount, take, tap } from \"rxjs/operators\";\r\nimport { SyncClass } from \"./decorators/sync-class\";\r\nimport { SyncState } from \"./decorators/sync-state\";\r\nimport { SyncStore } from \"./sync-store\";\r\nimport { Synchronizer } from \"./synchronizer/synchronizer\";\r\nimport { SynchronizerDictionary } from \"./synchronizer/synchronizer-dictionary\";\r\n\r\ntype PendingStateRequestDictionary<T> = {\r\n [P in keyof T]?: Observable<T>;\r\n};\r\n\r\nexport class StateSelector<T> {\r\n\r\n public readonly synchronizers = SyncClass.getStoreOptions(this.stateClass).synchronizers;\r\n\r\n private readonly injector = this.store.injector;\r\n private readonly pendingRequests$ = new BehaviorSubject<PendingStateRequestDictionary<T>>({});\r\n\r\n constructor(\r\n private store: SyncStore,\r\n private stateClass: SyncClass<T>,\r\n private state$: Observable<T>\r\n ) {}\r\n\r\n public dispatch<PropT extends keyof T>(propertyName: PropT, value: T[PropT]): Observable<T> {\r\n const PropUpdateAction = SyncState.UpdateAction.Type<T, PropT>(this.stateClass);\r\n\r\n return this.store.dispatch(new PropUpdateAction(propertyName, value));\r\n }\r\n\r\n public property<PropT extends keyof T>(propertyName: PropT): Observable<T[PropT]> {\r\n return this.state$.pipe(map((state: T) => state[propertyName]));\r\n }\r\n\r\n public properties(): Observable<T> {\r\n return this.state$;\r\n }\r\n\r\n public definedProperty<PropT extends keyof T>(propertyName: PropT): Observable<T[PropT]> {\r\n return this.property<PropT>(propertyName).pipe(\r\n filter<T[PropT]>(value => value !== null && value !== undefined)\r\n );\r\n }\r\n\r\n public isSyncingProperty(propertyName: keyof T): Observable<boolean> {\r\n return this.getPropertyUpdater(propertyName).pipe(\r\n map(Boolean),\r\n distinctUntilChanged()\r\n );\r\n }\r\n\r\n public onPropertySyncing<PropT extends keyof T>(propertyName: PropT): Observable<PropT> {\r\n return this.isSyncingProperty(propertyName).pipe(\r\n filter(Boolean),\r\n map(() => propertyName),\r\n );\r\n }\r\n\r\n public onPropertySynced<PropT extends keyof T>(propertyName: PropT): Observable<PropT> {\r\n return this.isSyncingProperty(propertyName).pipe(\r\n filter(updating => !updating),\r\n map(() => propertyName)\r\n );\r\n }\r\n\r\n public onEveryPropertySyncing(...propertyNames: Array<keyof T>): Observable<Array<keyof T>> {\r\n return zip(...propertyNames.map(propertyName => this.onPropertySyncing(propertyName)));\r\n }\r\n\r\n public onEveryPropertySynced(...propertyNames: Array<keyof T>): Observable<Array<keyof T>> {\r\n return zip(...propertyNames.map(propertyName => this.onPropertySynced(propertyName)));\r\n }\r\n\r\n public onSomePropertySyncing(...propertyNames: Array<keyof T>): Observable<keyof T> {\r\n return merge(...propertyNames.map(propertyName => this.onPropertySyncing(propertyName)));\r\n }\r\n\r\n public onSomePropertySynced(...propertyNames: Array<keyof T>): Observable<keyof T> {\r\n return merge(...propertyNames.map(propertyName => this.onPropertySynced(propertyName)));\r\n }\r\n\r\n public require<RequestParamsT = never>(\r\n propertyNames: keyof T | Array<keyof T>,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T> {\r\n if (Array.isArray(propertyNames)) {\r\n return this.requireAll<RequestParamsT>(propertyNames, options);\r\n } else {\r\n return this.requireOne<keyof T, RequestParamsT>(propertyNames, options);\r\n }\r\n }\r\n\r\n public requireProperty<PropT extends keyof T, RequestParamsT = never>(\r\n propertyName: PropT,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T[PropT]> {\r\n return this.requireOne<PropT, RequestParamsT>(propertyName, options).pipe(map(session => session[propertyName]));\r\n }\r\n\r\n public sync<RequestParamsT = never>(\r\n propertyNames: keyof T | Array<keyof T>,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T> {\r\n if (Array.isArray(propertyNames)) {\r\n return this.syncAll<RequestParamsT>(propertyNames, options);\r\n } else {\r\n return this.syncOne<keyof T, RequestParamsT>(propertyNames, options);\r\n }\r\n }\r\n\r\n public syncProperty<PropT extends keyof T, RequestParamsT = never>(\r\n propertyName: PropT,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T[PropT]> {\r\n return this.syncOne<PropT, RequestParamsT>(propertyName, options).pipe(map(session => session[propertyName]));\r\n }\r\n\r\n public export<RequestParamsT = never>(\r\n propertyNames: keyof T | Array<keyof T>,\r\n options?: Synchronizer.WriteOptions<RequestParamsT>\r\n ): Observable<any> {\r\n if (Array.isArray(propertyNames)) {\r\n return this.exportAll<RequestParamsT>(propertyNames, options);\r\n } else {\r\n return this.exportOne<keyof T, RequestParamsT>(propertyNames, options);\r\n }\r\n }\r\n\r\n private requireOne<PropT extends keyof T, RequestParamsT = never>(\r\n propertyName: PropT,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T> {\r\n return this.state$.pipe(\r\n take(1),\r\n mergeMap(state => {\r\n if (state[propertyName]) {\r\n return of(state);\r\n } else {\r\n return this.sync<RequestParamsT>(propertyName, options);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private requireAll<RequestParamsT = never>(\r\n propertyNames: Array<keyof T>,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T> {\r\n if (propertyNames.length === 0) {\r\n return this.state$.pipe(take(1));\r\n } else {\r\n const errors: any[] = [];\r\n return forkJoin(propertyNames.map(propertyName => {\r\n return this.requireOne<keyof T, RequestParamsT>(propertyName, options).pipe(\r\n catchError((error) => {\r\n errors.push(error);\r\n return of(undefined);\r\n })\r\n );\r\n })).pipe(\r\n mergeMap(() => {\r\n if (errors.length === 0) {\r\n return this.state$.pipe(take(1));\r\n } else {\r\n return throwError(errors);\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n private syncOne<PropT extends keyof T, RequestParamsT = never>(\r\n propertyName: PropT,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T> {\r\n options = options || {};\r\n const errorPrefix = \"[NGXS-Synchronizers] Cannot sync state:\";\r\n\r\n let synchronizer: Synchronizer<T, PropT, RequestParamsT, never>;\r\n try {\r\n synchronizer = this.resolveSynchronizer(propertyName);\r\n } catch (error) {\r\n return throwError(error);\r\n }\r\n\r\n // Check for cached values/pending requests only if this isn't a dependent requestor\r\n if (!synchronizer.proxy) {\r\n if (options.clearStore) {\r\n // TODO-Synchronize on this?\r\n this.dispatch(propertyName, undefined).subscribe();\r\n }\r\n\r\n if (synchronizer.requiredProperties && synchronizer.requiredProperties.some(requiredPropertyName => requiredPropertyName === propertyName)) {\r\n return throwError(`${errorPrefix} Synchronizer for \"${propertyName}\" requires a reference to itself.`);\r\n }\r\n }\r\n\r\n return this.pendingRequests$.pipe(\r\n take(1),\r\n mergeMap((pendingRequests) => {\r\n let pendingRequest$ = pendingRequests[propertyName];\r\n\r\n if (pendingRequest$ && !options.clearStore) {\r\n // Use the existing request if this value is currently being requested\r\n return pendingRequest$;\r\n } else {\r\n // First request any required fields needed to fetch the propertyName\r\n if (synchronizer.proxy) {\r\n pendingRequest$ = this.syncAll<RequestParamsT>(synchronizer.requiredProperties, options);\r\n } else {\r\n pendingRequest$ = this.requireAll<RequestParamsT>(synchronizer.requiredProperties || []);\r\n }\r\n\r\n // Then fetch the propertyName\r\n pendingRequest$ = pendingRequest$.pipe(\r\n mergeMap((requiredDetails: any) => synchronizer.read(requiredDetails, { propertyName, ...options })),\r\n mergeMap((value: any) => this.dispatch(propertyName, value)), // Update the store value\r\n catchError((error) => {\r\n this.clearPropertyUpdater(propertyName, pendingRequest$);\r\n return throwError(error);\r\n }),\r\n tap(() => this.clearPropertyUpdater(propertyName, pendingRequest$)), // Remove the pending request\r\n mergeMap(() => this.state$.pipe(take(1))), // Get the newly updated state\r\n publishReplay(1),\r\n refCount()\r\n );\r\n\r\n this.pendingRequests$.next(Object.assign(pendingRequests, { [propertyName]: pendingRequest$ }));\r\n return pendingRequest$;\r\n }\r\n })\r\n );\r\n }\r\n\r\n private syncAll<RequestParamsT = never>(\r\n propertyNames: Array<keyof T>,\r\n options?: Synchronizer.ReadOptions<RequestParamsT>\r\n ): Observable<T> {\r\n options = options || {};\r\n\r\n if (propertyNames.length === 0) {\r\n return this.state$.pipe(take(1));\r\n }\r\n\r\n // Update each required propertyName\r\n const errors: any[] = [];\r\n return forkJoin(propertyNames.map(name => this.sync<RequestParamsT>(name, options).pipe(\r\n catchError((error) => {\r\n errors.push(error);\r\n return of(undefined);\r\n })))).pipe(\r\n mergeMap(() => {\r\n if (errors.length === 0) {\r\n return this.state$.pipe(take(1));\r\n } else {\r\n return throwError(`Error syncing properties: ${errors.join(\", \")}`);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private exportOne<PropT extends keyof T, RequestParamsT = never>(\r\n propertyName: PropT,\r\n options?: Synchronizer.WriteOptions<RequestParamsT>\r\n ): Observable<any> {\r\n options = options || {};\r\n const errorPrefix = \"[NGXS-Synchronizers] Cannot export state:\";\r\n\r\n let synchronizer: Synchronizer<T, PropT, never, RequestParamsT>;\r\n try {\r\n synchronizer = this.resolveSynchronizer(propertyName);\r\n } catch (error) {\r\n return throwError(error);\r\n }\r\n\r\n if (!synchronizer.write) {\r\n return throwError(`${errorPrefix} Synchronizer for \"${propertyName}\" doesn't have a write method defined.`);\r\n }\r\n\r\n // Write the latest data in the store\r\n return this.property(propertyName).pipe(\r\n take(1),\r\n mergeMap(data => synchronizer.write(data, { propertyName, ...options })),\r\n publishReplay(1),\r\n refCount()\r\n );\r\n }\r\n\r\n private exportAll<RequestParamsT = never>(\r\n propertyNames: Array<keyof T>,\r\n options?: Synchronizer.WriteOptions<RequestParamsT>\r\n ): Observable<any> {\r\n options = options || {};\r\n\r\n if (propertyNames.length === 0) {\r\n return empty();\r\n }\r\n\r\n // Update each required propertyName\r\n const errors: any[] = [];\r\n return forkJoin(propertyNames.map(name => this.export<RequestParamsT>(name, options).pipe(\r\n catchError((error) => {\r\n errors.push(error);\r\n return of(undefined);\r\n })))).pipe(\r\n mergeMap((results) => {\r\n if (errors.length === 0) {\r\n return of(results);\r\n } else {\r\n return throwError(`Error exporting properties: ${errors.join(\", \")}`);\r\n }\r\n })\r\n );\r\n }\r\n\r\n private getPropertyUpdater(propertyName: keyof T): Observable<Observable<T> | undefined> {\r\n return this.pendingRequests$.pipe(map(pendingRequests => pendingRequests[propertyName]));\r\n }\r\n\r\n private clearPropertyUpdater(propertyName: keyof T, request: Observable<T>): void {\r\n this.pendingRequests$.pipe(\r\n take(1),\r\n filter(pendingRequests => pendingRequests[propertyName] === request)\r\n ).subscribe(pendingRequests => this.pendingRequests$.next(Object.assign(pendingRequests, { [propertyName]: undefined })));\r\n }\r\n\r\n private resolveSynchronizer<PropT extends keyof T, RequestParamsT>(propertyName: PropT): Synchronizer<T, PropT, RequestParamsT, RequestParamsT> {\r\n return SynchronizerDictionary.resolveSynchronizerInstance(\r\n this.injector,\r\n this.synchronizers,\r\n propertyName\r\n ) as Synchronizer<T, PropT, never, RequestParamsT>;\r\n }\r\n}\r\n","import { Injectable, Injector } from \"@angular/core\";\r\nimport { Store } from \"@ngxs/store\";\r\nimport { SyncClass } from \"./decorators/sync-class\";\r\nimport { StateSelector } from \"./state-selector\";\r\n\r\ninterface InternalStore {\r\n _stateStream: any;\r\n _internalStateOperations: any;\r\n _config: any;\r\n _internalExecutionStrategy: any;\r\n _stateFactory: any;\r\n}\r\n\r\n@Injectable()\r\nexport class SyncStore extends Store {\r\n\r\n public readonly injector: Injector;\r\n private readonly _selectorMap: Map<SyncClass<any>, StateSelector<any>>;\r\n\r\n constructor(injector: Injector, store: Store) {\r\n const internalStore: InternalStore = store as any;\r\n\r\n super(\r\n internalStore._stateStream,\r\n internalStore._internalStateOperations,\r\n internalStore._config,\r\n internalStore._internalExecutionStrategy,\r\n internalStore._stateFactory,\r\n undefined\r\n );\r\n\r\n this.injector = injector;\r\n this._selectorMap = new Map();\r\n }\r\n\r\n public state<T>(syncState: SyncClass<T>): StateSelector<T> {\r\n // If the selector hasn't been created for this state class yet, create it\r\n if (!this._selectorMap.has(syncState)) {\r\n const statePath: SyncClass<unknown>[] = [...SyncClass.resolveParents(syncState).reverse(), syncState];\r\n const state$ = this.select<T>(state => statePath.reduce((parentState, childState) => {\r\n return parentState[SyncClass.getStoreOptions(childState).name];\r\n }, state));\r\n\r\n // Record each state selector to keep pending requests in sync between state() calls\r\n this._selectorMap.set(syncState, new StateSelector<T>(this, syncState, state$));\r\n }\r\n\r\n return this._selectorMap.get(syncState);\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { SyncStore } from \"./sync-store\";\r\n\r\n@NgModule({\r\n providers: [\r\n SyncStore\r\n ]\r\n})\r\nexport class NgxsSyncModule {}\r\n","import { Injector } from \"@angular/core\";\r\nimport { forkJoin, Observable, of } from \"rxjs\";\r\nimport { map, switchMap, take } from \"rxjs/operators\";\r\nimport { SyncClass } from \"../decorators/sync-class\";\r\nimport { StateSelector } from \"../state-selector\";\r\nimport { SyncStore } from \"../sync-store\";\r\nimport { PropertySynchronizer } from \"./property-synchronizer\";\r\nimport { SynchronizerDictionary } from \"./synchronizer-dictionary\";\r\n\r\nexport abstract class StateSynchronizer<\r\n T,\r\n PropKey extends keyof T,\r\n ReadParamsT = never,\r\n WriteParamsT = never\r\n> implements PropertySynchronizer<T, PropKey, ReadParamsT, WriteParamsT> {\r\n\r\n constructor(\r\n private readonly injector: Injector,\r\n private readonly propertyState: SyncClass<T[PropKey]>\r\n ) {}\r\n\r\n public read(\r\n _requiredDetails: Partial<T>,\r\n _options: PropertySynchronizer.ReadOptions<T, PropKey, ReadParamsT>\r\n ): Observable<T[PropKey]> {\r\n const syncStore = this.injector.get(SyncStore);\r\n const stateSelector = syncStore.state<T[PropKey]>(this.propertyState);\r\n\r\n // Sync each property in the sub-store that has a synchronizer\r\n return this.readSubset(SynchronizerDictionary.keys(stateSelector.synchronizers)) as Observable<T[PropKey]>;\r\n }\r\n\r\n protected readSubset(properties: Array<keyof T[PropKey]>): Observable<T[PropKey]> {\r\n const syncStore = this.injector.get(SyncStore);\r\n const stateSelector = syncStore.state<T[PropKey]>(this.propertyState);\r\n\r\n // Sync each property in the sub-store that has a synchronizer and combine with the current store's data\r\n return this.readProperties(stateSelector, properties).pipe(\r\n map(results => Object.assign({}, ...results)),\r\n switchMap(newProperties => stateSelector.properties().pipe(take(1), map(originalProperties => ({\r\n ...originalProperties,\r\n ...newProperties\r\n }))))\r\n );\r\n }\r\n\r\n private readProperties(\r\n stateSelector: StateSelector<T[PropKey]>,\r\n keys: Array<keyof T[PropKey]>\r\n ): Observable<Partial<T[PropKey]>[]> {\r\n // Sync each property in the dictionary\r\n return keys.length > 0\r\n ? forkJoin(keys.map((propKey) => this.readProperty(stateSelector, propKey)))\r\n : of([]);\r\n }\r\n\r\n private readProperty<SubPropT extends keyof T[PropKey]>(\r\n stateSelector: StateSelector<T[PropKey]>,\r\n propKey: SubPropT\r\n ): Observable<Partial<T[PropKey]>> {\r\n // Use `syncProperty` to invoke the synchronizer for this property\r\n return stateSelector.syncProperty<SubPropT>(propKey).pipe(map(result => ({ [propKey]: result }) as any));\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {SyncClass as ɵa} from './decorators/sync-class';"],"names":["SyncClass","State","Action","SynchronizerDictionary","BehaviorSubject","map","filter","distinctUntilChanged","zip","merge","take","mergeMap","of","forkJoin","catchError","throwError","tap","publishReplay","refCount","empty","Store","Injectable","Injector","NgModule","switchMap"],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { Action, State } from "@ngxs/store";
|
|
2
|
-
import { SyncClass } from "./sync-class";
|
|
3
|
-
export function SyncState(options) {
|
|
4
|
-
return function (constructor) {
|
|
5
|
-
// Record the store options
|
|
6
|
-
SyncClass.setStoreOptions(constructor, options);
|
|
7
|
-
// Bootstrap the actions for the store
|
|
8
|
-
SyncState.UpdateAction.bootstrapClass(constructor);
|
|
9
|
-
// Record the parent store class for any child stores
|
|
10
|
-
if (options.children) {
|
|
11
|
-
options.children.forEach(child => SyncClass.setParent(child, constructor));
|
|
12
|
-
}
|
|
13
|
-
// Apply the @State() decorator to the class
|
|
14
|
-
State(options)(constructor);
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
(function (SyncState) {
|
|
18
|
-
class UpdateAction {
|
|
19
|
-
constructor(property, payload) {
|
|
20
|
-
this.property = property;
|
|
21
|
-
this.payload = payload;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
SyncState.UpdateAction = UpdateAction;
|
|
25
|
-
(function (UpdateAction) {
|
|
26
|
-
const UPDATE_ACTION_FN_KEY = Symbol("$UPDATE_ACTION_FN");
|
|
27
|
-
const updateActions = new Map();
|
|
28
|
-
function bootstrapClass($class) {
|
|
29
|
-
// Add the update action function to the class
|
|
30
|
-
Object.defineProperty($class.prototype, UPDATE_ACTION_FN_KEY, {
|
|
31
|
-
configurable: false,
|
|
32
|
-
enumerable: true,
|
|
33
|
-
value(context, { property, payload }) {
|
|
34
|
-
context.patchState({ [property]: payload });
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
// Apply the @Action() decorator to the new function
|
|
38
|
-
Action(Type($class))($class.prototype, UPDATE_ACTION_FN_KEY, Object.getOwnPropertyDescriptor($class.prototype, UPDATE_ACTION_FN_KEY));
|
|
39
|
-
}
|
|
40
|
-
UpdateAction.bootstrapClass = bootstrapClass;
|
|
41
|
-
function Type($class) {
|
|
42
|
-
var _a;
|
|
43
|
-
if (!updateActions.has($class)) {
|
|
44
|
-
updateActions.set($class, (_a = class extends UpdateAction {
|
|
45
|
-
},
|
|
46
|
-
_a.type = `[${$class.name} sync] Update field`,
|
|
47
|
-
_a));
|
|
48
|
-
}
|
|
49
|
-
return updateActions.get($class);
|
|
50
|
-
}
|
|
51
|
-
UpdateAction.Type = Type;
|
|
52
|
-
})(UpdateAction = SyncState.UpdateAction || (SyncState.UpdateAction = {}));
|
|
53
|
-
})(SyncState || (SyncState = {}));
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNvcmF0b3JzL3N5bmMtc3RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sY0FBYyxDQUFDO0FBRTNELE1BQU0sVUFBVSxTQUFTLENBQUksT0FBNEI7SUFFckQsT0FBTyxVQUFTLFdBQXlCO1FBQ3JDLDJCQUEyQjtRQUMzQixTQUFTLENBQUMsZUFBZSxDQUFJLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVuRCxzQ0FBc0M7UUFDdEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbkQscURBQXFEO1FBQ3JELElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNsQixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFFRCw0Q0FBNEM7UUFDNUMsS0FBSyxDQUFJLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25DLENBQVEsQ0FBQztBQUNiLENBQUM7QUFFRCxXQUFpQixTQUFTO0lBRXRCLE1BQWEsWUFBWTtRQUdyQixZQUNvQixRQUFtQixFQUNuQixPQUEwQjtZQUQxQixhQUFRLEdBQVIsUUFBUSxDQUFXO1lBQ25CLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzNDLENBQUM7S0FDUDtJQVBZLHNCQUFZLGVBT3hCLENBQUE7SUFFRCxXQUFpQixZQUFZO1FBUXpCLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQWtDLENBQUM7UUFFaEUsU0FBZ0IsY0FBYyxDQUFTLE1BQXlCO1lBQzVELDhDQUE4QztZQUM5QyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLEVBQUU7Z0JBQzFELFlBQVksRUFBRSxLQUFLO2dCQUNuQixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsS0FBSyxDQUNELE9BQTZCLEVBQzdCLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBNkM7b0JBRWhFLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU8sRUFBUyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7YUFDSixDQUFDLENBQUM7WUFFSCxvREFBb0Q7WUFDcEQsTUFBTSxDQUFDLElBQUksQ0FBUyxNQUFNLENBQUMsQ0FBQyxDQUN4QixNQUFNLENBQUMsU0FBUyxFQUNoQixvQkFBb0IsRUFDcEIsTUFBTSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLENBQUMsQ0FDMUUsQ0FBQztRQUNOLENBQUM7UUFuQmUsMkJBQWMsaUJBbUI3QixDQUFBO1FBRUQsU0FBZ0IsSUFBSSxDQUNoQixNQUF5Qjs7WUFFekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzVCLGFBQWEsQ0FBQyxHQUFHLENBQUMsTUFBTSxRQUFFLEtBQU0sU0FBUSxZQUErQjtxQkFFdEU7b0JBRDBCLE9BQUksR0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLHFCQUFzQjt3QkFDN0UsQ0FBQzthQUNOO1lBRUQsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFWZSxpQkFBSSxPQVVuQixDQUFBO0lBQ0wsQ0FBQyxFQTNDZ0IsWUFBWSxHQUFaLHNCQUFZLEtBQVosc0JBQVksUUEyQzVCO0FBQ0wsQ0FBQyxFQXZEZ0IsU0FBUyxLQUFULFNBQVMsUUF1RHpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uLCBTdGF0ZSwgU3RhdGVDb250ZXh0IH0gZnJvbSBcIkBuZ3hzL3N0b3JlXCI7XHJcbmltcG9ydCB7IFN5bmNDbGFzcywgU3luY1N0b3JlT3B0aW9ucyB9IGZyb20gXCIuL3N5bmMtY2xhc3NcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTeW5jU3RhdGU8VD4ob3B0aW9uczogU3luY1N0b3JlT3B0aW9uczxUPik6IENsYXNzRGVjb3JhdG9yIHtcclxuXHJcbiAgICByZXR1cm4gZnVuY3Rpb24oY29uc3RydWN0b3I6IFN5bmNDbGFzczxUPikge1xyXG4gICAgICAgIC8vIFJlY29yZCB0aGUgc3RvcmUgb3B0aW9uc1xyXG4gICAgICAgIFN5bmNDbGFzcy5zZXRTdG9yZU9wdGlvbnM8VD4oY29uc3RydWN0b3IsIG9wdGlvbnMpO1xyXG5cclxuICAgICAgICAvLyBCb290c3RyYXAgdGhlIGFjdGlvbnMgZm9yIHRoZSBzdG9yZVxyXG4gICAgICAgIFN5bmNTdGF0ZS5VcGRhdGVBY3Rpb24uYm9vdHN0cmFwQ2xhc3MoY29uc3RydWN0b3IpO1xyXG5cclxuICAgICAgICAvLyBSZWNvcmQgdGhlIHBhcmVudCBzdG9yZSBjbGFzcyBmb3IgYW55IGNoaWxkIHN0b3Jlc1xyXG4gICAgICAgIGlmIChvcHRpb25zLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgICAgIG9wdGlvbnMuY2hpbGRyZW4uZm9yRWFjaChjaGlsZCA9PiBTeW5jQ2xhc3Muc2V0UGFyZW50KGNoaWxkLCBjb25zdHJ1Y3RvcikpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQXBwbHkgdGhlIEBTdGF0ZSgpIGRlY29yYXRvciB0byB0aGUgY2xhc3NcclxuICAgICAgICBTdGF0ZTxUPihvcHRpb25zKShjb25zdHJ1Y3Rvcik7XHJcbiAgICB9IGFzIGFueTtcclxufVxyXG5cclxuZXhwb3J0IG5hbWVzcGFjZSBTeW5jU3RhdGUge1xyXG5cclxuICAgIGV4cG9ydCBjbGFzcyBVcGRhdGVBY3Rpb248U3RhdGVULCBQcm9wZXJ0eVQgZXh0ZW5kcyBrZXlvZiBTdGF0ZVQ+IHtcclxuICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcclxuXHJcbiAgICAgICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgICAgIHB1YmxpYyByZWFkb25seSBwcm9wZXJ0eTogUHJvcGVydHlULFxyXG4gICAgICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcGF5bG9hZDogU3RhdGVUW1Byb3BlcnR5VF1cclxuICAgICAgICApIHt9XHJcbiAgICB9XHJcblxyXG4gICAgZXhwb3J0IG5hbWVzcGFjZSBVcGRhdGVBY3Rpb24ge1xyXG5cclxuICAgICAgICBpbnRlcmZhY2UgVHlwZTxTdGF0ZVQsIFByb3BlcnR5VCBleHRlbmRzIGtleW9mIFN0YXRlVD4ge1xyXG4gICAgICAgICAgICB0eXBlOiBzdHJpbmc7XHJcblxyXG4gICAgICAgICAgICBuZXcocHJvcGVydHk6IFByb3BlcnR5VCwgcGF5bG9hZDogU3RhdGVUW1Byb3BlcnR5VF0pOiBVcGRhdGVBY3Rpb248U3RhdGVULCBQcm9wZXJ0eVQ+O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgVVBEQVRFX0FDVElPTl9GTl9LRVkgPSBTeW1ib2woXCIkVVBEQVRFX0FDVElPTl9GTlwiKTtcclxuICAgICAgICBjb25zdCB1cGRhdGVBY3Rpb25zID0gbmV3IE1hcDxTeW5jQ2xhc3M8YW55PiwgVHlwZTxhbnksIGFueT4+KCk7XHJcblxyXG4gICAgICAgIGV4cG9ydCBmdW5jdGlvbiBib290c3RyYXBDbGFzczxTdGF0ZVQ+KCRjbGFzczogU3luY0NsYXNzPFN0YXRlVD4pOiB2b2lkIHtcclxuICAgICAgICAgICAgLy8gQWRkIHRoZSB1cGRhdGUgYWN0aW9uIGZ1bmN0aW9uIHRvIHRoZSBjbGFzc1xyXG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoJGNsYXNzLnByb3RvdHlwZSwgVVBEQVRFX0FDVElPTl9GTl9LRVksIHtcclxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU8UHJvcGVydHlUIGV4dGVuZHMga2V5b2YgU3RhdGVUPihcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBTdGF0ZUNvbnRleHQ8U3RhdGVUPixcclxuICAgICAgICAgICAgICAgICAgICB7IHByb3BlcnR5LCBwYXlsb2FkIH06IFN5bmNTdGF0ZS5VcGRhdGVBY3Rpb248U3RhdGVULCBQcm9wZXJ0eVQ+XHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnBhdGNoU3RhdGUoeyBbcHJvcGVydHldOiBwYXlsb2FkIH0gYXMgYW55KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBseSB0aGUgQEFjdGlvbigpIGRlY29yYXRvciB0byB0aGUgbmV3IGZ1bmN0aW9uXHJcbiAgICAgICAgICAgIEFjdGlvbihUeXBlPFN0YXRlVD4oJGNsYXNzKSkoXHJcbiAgICAgICAgICAgICAgICAkY2xhc3MucHJvdG90eXBlLFxyXG4gICAgICAgICAgICAgICAgVVBEQVRFX0FDVElPTl9GTl9LRVksXHJcbiAgICAgICAgICAgICAgICBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKCRjbGFzcy5wcm90b3R5cGUsIFVQREFURV9BQ1RJT05fRk5fS0VZKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgZXhwb3J0IGZ1bmN0aW9uIFR5cGU8U3RhdGVULCBQcm9wZXJ0eVQgZXh0ZW5kcyBrZXlvZiBTdGF0ZVQgPSBrZXlvZiBTdGF0ZVQ+KFxyXG4gICAgICAgICAgICAkY2xhc3M6IFN5bmNDbGFzczxTdGF0ZVQ+XHJcbiAgICAgICAgKTogVHlwZTxTdGF0ZVQsIFByb3BlcnR5VD4ge1xyXG4gICAgICAgICAgICBpZiAoIXVwZGF0ZUFjdGlvbnMuaGFzKCRjbGFzcykpIHtcclxuICAgICAgICAgICAgICAgIHVwZGF0ZUFjdGlvbnMuc2V0KCRjbGFzcywgY2xhc3MgZXh0ZW5kcyBVcGRhdGVBY3Rpb248U3RhdGVULCBQcm9wZXJ0eVQ+IHtcclxuICAgICAgICAgICAgICAgICAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZyA9IGBbJHskY2xhc3MubmFtZX0gc3luY10gVXBkYXRlIGZpZWxkYDtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlQWN0aW9ucy5nZXQoJGNsYXNzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
package/esm2015/module.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { NgModule } from "@angular/core";
|
|
2
|
-
import { SyncStore } from "./sync-store";
|
|
3
|
-
export class NgxsSyncModule {
|
|
4
|
-
}
|
|
5
|
-
NgxsSyncModule.decorators = [
|
|
6
|
-
{ type: NgModule, args: [{
|
|
7
|
-
providers: [
|
|
8
|
-
SyncStore
|
|
9
|
-
]
|
|
10
|
-
},] }
|
|
11
|
-
];
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFPekMsTUFBTSxPQUFPLGNBQWM7OztZQUwxQixRQUFRLFNBQUM7Z0JBQ04sU0FBUyxFQUFFO29CQUNQLFNBQVM7aUJBQ1o7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3luY1N0b3JlIH0gZnJvbSBcIi4vc3luYy1zdG9yZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIFN5bmNTdG9yZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTmd4c1N5bmNNb2R1bGUge31cclxuIl19
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
export { SyncClass as ɵa } from './decorators/sync-class';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zeW5jaHJvbml6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL25neHMtc3luY2hyb25pemVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDO0FBRXhCLE9BQU8sRUFBQyxTQUFTLElBQUksRUFBRSxFQUFDLE1BQU0seUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuXG5leHBvcnQge1N5bmNDbGFzcyBhcyDJtWF9IGZyb20gJy4vZGVjb3JhdG9ycy9zeW5jLWNsYXNzJzsiXX0=
|
|
@@ -1,221 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, empty, forkJoin, merge, of, throwError, zip } from "rxjs";
|
|
2
|
-
import { catchError, distinctUntilChanged, filter, map, mergeMap, publishReplay, refCount, take, tap } from "rxjs/operators";
|
|
3
|
-
import { SyncClass } from "./decorators/sync-class";
|
|
4
|
-
import { SyncState } from "./decorators/sync-state";
|
|
5
|
-
import { SynchronizerDictionary } from "./synchronizer/synchronizer-dictionary";
|
|
6
|
-
export class StateSelector {
|
|
7
|
-
constructor(store, stateClass, state$) {
|
|
8
|
-
this.store = store;
|
|
9
|
-
this.stateClass = stateClass;
|
|
10
|
-
this.state$ = state$;
|
|
11
|
-
this.synchronizers = SyncClass.getStoreOptions(this.stateClass).synchronizers;
|
|
12
|
-
this.injector = this.store.injector;
|
|
13
|
-
this.pendingRequests$ = new BehaviorSubject({});
|
|
14
|
-
}
|
|
15
|
-
dispatch(propertyName, value) {
|
|
16
|
-
const PropUpdateAction = SyncState.UpdateAction.Type(this.stateClass);
|
|
17
|
-
return this.store.dispatch(new PropUpdateAction(propertyName, value));
|
|
18
|
-
}
|
|
19
|
-
property(propertyName) {
|
|
20
|
-
return this.state$.pipe(map((state) => state[propertyName]));
|
|
21
|
-
}
|
|
22
|
-
properties() {
|
|
23
|
-
return this.state$;
|
|
24
|
-
}
|
|
25
|
-
definedProperty(propertyName) {
|
|
26
|
-
return this.property(propertyName).pipe(filter(value => value !== null && value !== undefined));
|
|
27
|
-
}
|
|
28
|
-
isSyncingProperty(propertyName) {
|
|
29
|
-
return this.getPropertyUpdater(propertyName).pipe(map(Boolean), distinctUntilChanged());
|
|
30
|
-
}
|
|
31
|
-
onPropertySyncing(propertyName) {
|
|
32
|
-
return this.isSyncingProperty(propertyName).pipe(filter(Boolean), map(() => propertyName));
|
|
33
|
-
}
|
|
34
|
-
onPropertySynced(propertyName) {
|
|
35
|
-
return this.isSyncingProperty(propertyName).pipe(filter(updating => !updating), map(() => propertyName));
|
|
36
|
-
}
|
|
37
|
-
onEveryPropertySyncing(...propertyNames) {
|
|
38
|
-
return zip(...propertyNames.map(propertyName => this.onPropertySyncing(propertyName)));
|
|
39
|
-
}
|
|
40
|
-
onEveryPropertySynced(...propertyNames) {
|
|
41
|
-
return zip(...propertyNames.map(propertyName => this.onPropertySynced(propertyName)));
|
|
42
|
-
}
|
|
43
|
-
onSomePropertySyncing(...propertyNames) {
|
|
44
|
-
return merge(...propertyNames.map(propertyName => this.onPropertySyncing(propertyName)));
|
|
45
|
-
}
|
|
46
|
-
onSomePropertySynced(...propertyNames) {
|
|
47
|
-
return merge(...propertyNames.map(propertyName => this.onPropertySynced(propertyName)));
|
|
48
|
-
}
|
|
49
|
-
require(propertyNames, options) {
|
|
50
|
-
if (Array.isArray(propertyNames)) {
|
|
51
|
-
return this.requireAll(propertyNames, options);
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
return this.requireOne(propertyNames, options);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
requireProperty(propertyName, options) {
|
|
58
|
-
return this.requireOne(propertyName, options).pipe(map(session => session[propertyName]));
|
|
59
|
-
}
|
|
60
|
-
sync(propertyNames, options) {
|
|
61
|
-
if (Array.isArray(propertyNames)) {
|
|
62
|
-
return this.syncAll(propertyNames, options);
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return this.syncOne(propertyNames, options);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
syncProperty(propertyName, options) {
|
|
69
|
-
return this.syncOne(propertyName, options).pipe(map(session => session[propertyName]));
|
|
70
|
-
}
|
|
71
|
-
export(propertyNames, options) {
|
|
72
|
-
if (Array.isArray(propertyNames)) {
|
|
73
|
-
return this.exportAll(propertyNames, options);
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
return this.exportOne(propertyNames, options);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
requireOne(propertyName, options) {
|
|
80
|
-
return this.state$.pipe(take(1), mergeMap(state => {
|
|
81
|
-
if (state[propertyName]) {
|
|
82
|
-
return of(state);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
return this.sync(propertyName, options);
|
|
86
|
-
}
|
|
87
|
-
}));
|
|
88
|
-
}
|
|
89
|
-
requireAll(propertyNames, options) {
|
|
90
|
-
if (propertyNames.length === 0) {
|
|
91
|
-
return this.state$.pipe(take(1));
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
const errors = [];
|
|
95
|
-
return forkJoin(propertyNames.map(propertyName => {
|
|
96
|
-
return this.requireOne(propertyName, options).pipe(catchError((error) => {
|
|
97
|
-
errors.push(error);
|
|
98
|
-
return of(undefined);
|
|
99
|
-
}));
|
|
100
|
-
})).pipe(mergeMap(() => {
|
|
101
|
-
if (errors.length === 0) {
|
|
102
|
-
return this.state$.pipe(take(1));
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
return throwError(errors);
|
|
106
|
-
}
|
|
107
|
-
}));
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
syncOne(propertyName, options) {
|
|
111
|
-
options = options || {};
|
|
112
|
-
const errorPrefix = "[NGXS-Synchronizers] Cannot sync state:";
|
|
113
|
-
let synchronizer;
|
|
114
|
-
try {
|
|
115
|
-
synchronizer = this.resolveSynchronizer(propertyName);
|
|
116
|
-
}
|
|
117
|
-
catch (error) {
|
|
118
|
-
return throwError(error);
|
|
119
|
-
}
|
|
120
|
-
// Check for cached values/pending requests only if this isn't a dependent requestor
|
|
121
|
-
if (!synchronizer.proxy) {
|
|
122
|
-
if (options.clearStore) {
|
|
123
|
-
// TODO-Synchronize on this?
|
|
124
|
-
this.dispatch(propertyName, undefined).subscribe();
|
|
125
|
-
}
|
|
126
|
-
if (synchronizer.requiredProperties && synchronizer.requiredProperties.some(requiredPropertyName => requiredPropertyName === propertyName)) {
|
|
127
|
-
return throwError(`${errorPrefix} Synchronizer for "${propertyName}" requires a reference to itself.`);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
return this.pendingRequests$.pipe(take(1), mergeMap((pendingRequests) => {
|
|
131
|
-
let pendingRequest$ = pendingRequests[propertyName];
|
|
132
|
-
if (pendingRequest$ && !options.clearStore) {
|
|
133
|
-
// Use the existing request if this value is currently being requested
|
|
134
|
-
return pendingRequest$;
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
// First request any required fields needed to fetch the propertyName
|
|
138
|
-
if (synchronizer.proxy) {
|
|
139
|
-
pendingRequest$ = this.syncAll(synchronizer.requiredProperties, options);
|
|
140
|
-
}
|
|
141
|
-
else {
|
|
142
|
-
pendingRequest$ = this.requireAll(synchronizer.requiredProperties || []);
|
|
143
|
-
}
|
|
144
|
-
// Then fetch the propertyName
|
|
145
|
-
pendingRequest$ = pendingRequest$.pipe(mergeMap((requiredDetails) => synchronizer.read(requiredDetails, Object.assign({ propertyName }, options))), mergeMap((value) => this.dispatch(propertyName, value)), // Update the store value
|
|
146
|
-
catchError((error) => {
|
|
147
|
-
this.clearPropertyUpdater(propertyName, pendingRequest$);
|
|
148
|
-
return throwError(error);
|
|
149
|
-
}), tap(() => this.clearPropertyUpdater(propertyName, pendingRequest$)), // Remove the pending request
|
|
150
|
-
mergeMap(() => this.state$.pipe(take(1))), // Get the newly updated state
|
|
151
|
-
publishReplay(1), refCount());
|
|
152
|
-
this.pendingRequests$.next(Object.assign(pendingRequests, { [propertyName]: pendingRequest$ }));
|
|
153
|
-
return pendingRequest$;
|
|
154
|
-
}
|
|
155
|
-
}));
|
|
156
|
-
}
|
|
157
|
-
syncAll(propertyNames, options) {
|
|
158
|
-
options = options || {};
|
|
159
|
-
if (propertyNames.length === 0) {
|
|
160
|
-
return this.state$.pipe(take(1));
|
|
161
|
-
}
|
|
162
|
-
// Update each required propertyName
|
|
163
|
-
const errors = [];
|
|
164
|
-
return forkJoin(propertyNames.map(name => this.sync(name, options).pipe(catchError((error) => {
|
|
165
|
-
errors.push(error);
|
|
166
|
-
return of(undefined);
|
|
167
|
-
})))).pipe(mergeMap(() => {
|
|
168
|
-
if (errors.length === 0) {
|
|
169
|
-
return this.state$.pipe(take(1));
|
|
170
|
-
}
|
|
171
|
-
else {
|
|
172
|
-
return throwError(`Error syncing properties: ${errors.join(", ")}`);
|
|
173
|
-
}
|
|
174
|
-
}));
|
|
175
|
-
}
|
|
176
|
-
exportOne(propertyName, options) {
|
|
177
|
-
options = options || {};
|
|
178
|
-
const errorPrefix = "[NGXS-Synchronizers] Cannot export state:";
|
|
179
|
-
let synchronizer;
|
|
180
|
-
try {
|
|
181
|
-
synchronizer = this.resolveSynchronizer(propertyName);
|
|
182
|
-
}
|
|
183
|
-
catch (error) {
|
|
184
|
-
return throwError(error);
|
|
185
|
-
}
|
|
186
|
-
if (!synchronizer.write) {
|
|
187
|
-
return throwError(`${errorPrefix} Synchronizer for "${propertyName}" doesn't have a write method defined.`);
|
|
188
|
-
}
|
|
189
|
-
// Write the latest data in the store
|
|
190
|
-
return this.property(propertyName).pipe(take(1), mergeMap(data => synchronizer.write(data, Object.assign({ propertyName }, options))), publishReplay(1), refCount());
|
|
191
|
-
}
|
|
192
|
-
exportAll(propertyNames, options) {
|
|
193
|
-
options = options || {};
|
|
194
|
-
if (propertyNames.length === 0) {
|
|
195
|
-
return empty();
|
|
196
|
-
}
|
|
197
|
-
// Update each required propertyName
|
|
198
|
-
const errors = [];
|
|
199
|
-
return forkJoin(propertyNames.map(name => this.export(name, options).pipe(catchError((error) => {
|
|
200
|
-
errors.push(error);
|
|
201
|
-
return of(undefined);
|
|
202
|
-
})))).pipe(mergeMap((results) => {
|
|
203
|
-
if (errors.length === 0) {
|
|
204
|
-
return of(results);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
return throwError(`Error exporting properties: ${errors.join(", ")}`);
|
|
208
|
-
}
|
|
209
|
-
}));
|
|
210
|
-
}
|
|
211
|
-
getPropertyUpdater(propertyName) {
|
|
212
|
-
return this.pendingRequests$.pipe(map(pendingRequests => pendingRequests[propertyName]));
|
|
213
|
-
}
|
|
214
|
-
clearPropertyUpdater(propertyName, request) {
|
|
215
|
-
this.pendingRequests$.pipe(take(1), filter(pendingRequests => pendingRequests[propertyName] === request)).subscribe(pendingRequests => this.pendingRequests$.next(Object.assign(pendingRequests, { [propertyName]: undefined })));
|
|
216
|
-
}
|
|
217
|
-
resolveSynchronizer(propertyName) {
|
|
218
|
-
return SynchronizerDictionary.resolveSynchronizerInstance(this.injector, this.synchronizers, propertyName);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RhdGUtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRyxPQUFPLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHcEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFNaEYsTUFBTSxPQUFPLGFBQWE7SUFPdEIsWUFDWSxLQUFnQixFQUNoQixVQUF3QixFQUN4QixNQUFxQjtRQUZyQixVQUFLLEdBQUwsS0FBSyxDQUFXO1FBQ2hCLGVBQVUsR0FBVixVQUFVLENBQWM7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQVJqQixrQkFBYSxHQUFHLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUV4RSxhQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQW1DLEVBQUUsQ0FBQyxDQUFDO0lBTTNGLENBQUM7SUFFRyxRQUFRLENBQXdCLFlBQW1CLEVBQUUsS0FBZTtRQUN2RSxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFXLElBQUksQ0FBQyxVQUFVLENBQUMs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LENBQUM7SUFDdkQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZW1wdHksIGZvcmtKb2luLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IsIHppcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHB1Ymxpc2hSZXBsYXksIHJlZkNvdW50LCB0YWtlLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3luY0NsYXNzIH0gZnJvbSBcIi4vZGVjb3JhdG9ycy9zeW5jLWNsYXNzXCI7XHJcbmltcG9ydCB7IFN5bmNTdGF0ZSB9IGZyb20gXCIuL2RlY29yYXRvcnMvc3luYy1zdGF0ZVwiO1xyXG5pbXBvcnQgeyBTeW5jU3RvcmUgfSBmcm9tIFwiLi9zeW5jLXN0b3JlXCI7XHJcbmltcG9ydCB7IFN5bmNocm9uaXplciB9IGZyb20gXCIuL3N5bmNocm9uaXplci9zeW5jaHJvbml6ZXJcIjtcclxuaW1wb3J0IHsgU3luY2hyb25pemVyRGljdGlvbmFyeSB9IGZyb20gXCIuL3N5bmNocm9uaXplci9zeW5jaHJvbml6ZXItZGljdGlvbmFyeVwiO1xyXG5cclxudHlwZSBQZW5kaW5nU3RhdGVSZXF1ZXN0RGljdGlvbmFyeTxUPiA9IHtcclxuICAgIFtQIGluIGtleW9mIFRdPzogT2JzZXJ2YWJsZTxUPjtcclxufTtcclxuXHJcbmV4cG9ydCBjbGFzcyBTdGF0ZVNlbGVjdG9yPFQ+IHtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3luY2hyb25pemVycyA9IFN5bmNDbGFzcy5nZXRTdG9yZU9wdGlvbnModGhpcy5zdGF0ZUNsYXNzKS5zeW5jaHJvbml6ZXJzO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSB0aGlzLnN0b3JlLmluamVjdG9yO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBwZW5kaW5nUmVxdWVzdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQZW5kaW5nU3RhdGVSZXF1ZXN0RGljdGlvbmFyeTxUPj4oe30pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgc3RvcmU6IFN5bmNTdG9yZSxcclxuICAgICAgICBwcml2YXRlIHN0YXRlQ2xhc3M6IFN5bmNDbGFzczxUPixcclxuICAgICAgICBwcml2YXRlIHN0YXRlJDogT2JzZXJ2YWJsZTxUPlxyXG4gICAgKSB7fVxyXG5cclxuICAgIHB1YmxpYyBkaXNwYXRjaDxQcm9wVCBleHRlbmRzIGtleW9mIFQ+KHByb3BlcnR5TmFtZTogUHJvcFQsIHZhbHVlOiBUW1Byb3BUXSk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIGNvbnN0IFByb3BVcGRhdGVBY3Rpb24gPSBTeW5jU3RhdGUuVXBkYXRlQWN0aW9uLlR5cGU8VCwgUHJvcFQ+KHRoaXMuc3RhdGVDbGFzcyk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnN0b3JlLmRpc3BhdGNoKG5ldyBQcm9wVXBkYXRlQWN0aW9uKHByb3BlcnR5TmFtZSwgdmFsdWUpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcHJvcGVydHk8UHJvcFQgZXh0ZW5kcyBrZXlvZiBUPihwcm9wZXJ0eU5hbWU6IFByb3BUKTogT2JzZXJ2YWJsZTxUW1Byb3BUXT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlJC5waXBlKG1hcCgoc3RhdGU6IFQpID0+IHN0YXRlW3Byb3BlcnR5TmFtZV0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcHJvcGVydGllcygpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRlZmluZWRQcm9wZXJ0eTxQcm9wVCBleHRlbmRzIGtleW9mIFQ+KHByb3BlcnR5TmFtZTogUHJvcFQpOiBPYnNlcnZhYmxlPFRbUHJvcFRdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHk8UHJvcFQ+KHByb3BlcnR5TmFtZSkucGlwZShcclxuICAgICAgICAgICAgZmlsdGVyPFRbUHJvcFRdPih2YWx1ZSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzU3luY2luZ1Byb3BlcnR5KHByb3BlcnR5TmFtZToga2V5b2YgVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VXBkYXRlcihwcm9wZXJ0eU5hbWUpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcChCb29sZWFuKSxcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUHJvcGVydHlTeW5jaW5nPFByb3BUIGV4dGVuZHMga2V5b2YgVD4ocHJvcGVydHlOYW1lOiBQcm9wVCk6IE9ic2VydmFibGU8UHJvcFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1N5bmNpbmdQcm9wZXJ0eShwcm9wZXJ0eU5hbWUpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbHRlcihCb29sZWFuKSxcclxuICAgICAgICAgICAgbWFwKCgpID0+IHByb3BlcnR5TmFtZSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Qcm9wZXJ0eVN5bmNlZDxQcm9wVCBleHRlbmRzIGtleW9mIFQ+KHByb3BlcnR5TmFtZTogUHJvcFQpOiBPYnNlcnZhYmxlPFByb3BUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNTeW5jaW5nUHJvcGVydHkocHJvcGVydHlOYW1lKS5waXBlKFxyXG4gICAgICAgICAgICBmaWx0ZXIodXBkYXRpbmcgPT4gIXVwZGF0aW5nKSxcclxuICAgICAgICAgICAgbWFwKCgpID0+IHByb3BlcnR5TmFtZSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkV2ZXJ5UHJvcGVydHlTeW5jaW5nKC4uLnByb3BlcnR5TmFtZXM6IEFycmF5PGtleW9mIFQ+KTogT2JzZXJ2YWJsZTxBcnJheTxrZXlvZiBUPj4ge1xyXG4gICAgICAgIHJldHVybiB6aXAoLi4ucHJvcGVydHlOYW1lcy5tYXAocHJvcGVydHlOYW1lID0+IHRoaXMub25Qcm9wZXJ0eVN5bmNpbmcocHJvcGVydHlOYW1lKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkV2ZXJ5UHJvcGVydHlTeW5jZWQoLi4ucHJvcGVydHlOYW1lczogQXJyYXk8a2V5b2YgVD4pOiBPYnNlcnZhYmxlPEFycmF5PGtleW9mIFQ+PiB7XHJcbiAgICAgICAgcmV0dXJuIHppcCguLi5wcm9wZXJ0eU5hbWVzLm1hcChwcm9wZXJ0eU5hbWUgPT4gdGhpcy5vblByb3BlcnR5U3luY2VkKHByb3BlcnR5TmFtZSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Tb21lUHJvcGVydHlTeW5jaW5nKC4uLnByb3BlcnR5TmFtZXM6IEFycmF5PGtleW9mIFQ+KTogT2JzZXJ2YWJsZTxrZXlvZiBUPiB7XHJcbiAgICAgICAgcmV0dXJuIG1lcmdlKC4uLnByb3BlcnR5TmFtZXMubWFwKHByb3BlcnR5TmFtZSA9PiB0aGlzLm9uUHJvcGVydHlTeW5jaW5nKHByb3BlcnR5TmFtZSkpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Tb21lUHJvcGVydHlTeW5jZWQoLi4ucHJvcGVydHlOYW1lczogQXJyYXk8a2V5b2YgVD4pOiBPYnNlcnZhYmxlPGtleW9mIFQ+IHtcclxuICAgICAgICByZXR1cm4gbWVyZ2UoLi4ucHJvcGVydHlOYW1lcy5tYXAocHJvcGVydHlOYW1lID0+IHRoaXMub25Qcm9wZXJ0eVN5bmNlZChwcm9wZXJ0eU5hbWUpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcXVpcmU8UmVxdWVzdFBhcmFtc1QgPSBuZXZlcj4oXHJcbiAgICAgICAgcHJvcGVydHlOYW1lczoga2V5b2YgVCB8IEFycmF5PGtleW9mIFQ+LFxyXG4gICAgICAgIG9wdGlvbnM/OiBTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8UmVxdWVzdFBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wZXJ0eU5hbWVzKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXF1aXJlQWxsPFJlcXVlc3RQYXJhbXNUPihwcm9wZXJ0eU5hbWVzLCBvcHRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXF1aXJlT25lPGtleW9mIFQsIFJlcXVlc3RQYXJhbXNUPihwcm9wZXJ0eU5hbWVzLCBvcHRpb25zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcXVpcmVQcm9wZXJ0eTxQcm9wVCBleHRlbmRzIGtleW9mIFQsIFJlcXVlc3RQYXJhbXNUID0gbmV2ZXI+KFxyXG4gICAgICAgIHByb3BlcnR5TmFtZTogUHJvcFQsXHJcbiAgICAgICAgb3B0aW9ucz86IFN5bmNocm9uaXplci5SZWFkT3B0aW9uczxSZXF1ZXN0UGFyYW1zVD5cclxuICAgICk6IE9ic2VydmFibGU8VFtQcm9wVF0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZXF1aXJlT25lPFByb3BULCBSZXF1ZXN0UGFyYW1zVD4ocHJvcGVydHlOYW1lLCBvcHRpb25zKS5waXBlKG1hcChzZXNzaW9uID0+IHNlc3Npb25bcHJvcGVydHlOYW1lXSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzeW5jPFJlcXVlc3RQYXJhbXNUID0gbmV2ZXI+KFxyXG4gICAgICAgIHByb3BlcnR5TmFtZXM6IGtleW9mIFQgfCBBcnJheTxrZXlvZiBUPixcclxuICAgICAgICBvcHRpb25zPzogU3luY2hyb25pemVyLlJlYWRPcHRpb25zPFJlcXVlc3RQYXJhbXNUPlxyXG4gICAgKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlOYW1lcykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3luY0FsbDxSZXF1ZXN0UGFyYW1zVD4ocHJvcGVydHlOYW1lcywgb3B0aW9ucyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3luY09uZTxrZXlvZiBULCBSZXF1ZXN0UGFyYW1zVD4ocHJvcGVydHlOYW1lcywgb3B0aW9ucyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzeW5jUHJvcGVydHk8UHJvcFQgZXh0ZW5kcyBrZXlvZiBULCBSZXF1ZXN0UGFyYW1zVCA9IG5ldmVyPihcclxuICAgICAgICBwcm9wZXJ0eU5hbWU6IFByb3BULFxyXG4gICAgICAgIG9wdGlvbnM/OiBTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8UmVxdWVzdFBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPFRbUHJvcFRdPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3luY09uZTxQcm9wVCwgUmVxdWVzdFBhcmFtc1Q+KHByb3BlcnR5TmFtZSwgb3B0aW9ucykucGlwZShtYXAoc2Vzc2lvbiA9PiBzZXNzaW9uW3Byb3BlcnR5TmFtZV0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZXhwb3J0PFJlcXVlc3RQYXJhbXNUID0gbmV2ZXI+KFxyXG4gICAgICAgIHByb3BlcnR5TmFtZXM6IGtleW9mIFQgfCBBcnJheTxrZXlvZiBUPixcclxuICAgICAgICBvcHRpb25zPzogU3luY2hyb25pemVyLldyaXRlT3B0aW9uczxSZXF1ZXN0UGFyYW1zVD5cclxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocHJvcGVydHlOYW1lcykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhwb3J0QWxsPFJlcXVlc3RQYXJhbXNUPihwcm9wZXJ0eU5hbWVzLCBvcHRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5leHBvcnRPbmU8a2V5b2YgVCwgUmVxdWVzdFBhcmFtc1Q+KHByb3BlcnR5TmFtZXMsIG9wdGlvbnMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJlcXVpcmVPbmU8UHJvcFQgZXh0ZW5kcyBrZXlvZiBULCBSZXF1ZXN0UGFyYW1zVCA9IG5ldmVyPihcclxuICAgICAgICBwcm9wZXJ0eU5hbWU6IFByb3BULFxyXG4gICAgICAgIG9wdGlvbnM/OiBTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8UmVxdWVzdFBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgbWVyZ2VNYXAoc3RhdGUgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHN0YXRlW3Byb3BlcnR5TmFtZV0pIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoc3RhdGUpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zeW5jPFJlcXVlc3RQYXJhbXNUPihwcm9wZXJ0eU5hbWUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXF1aXJlQWxsPFJlcXVlc3RQYXJhbXNUID0gbmV2ZXI+KFxyXG4gICAgICAgIHByb3BlcnR5TmFtZXM6IEFycmF5PGtleW9mIFQ+LFxyXG4gICAgICAgIG9wdGlvbnM/OiBTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8UmVxdWVzdFBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICBpZiAocHJvcGVydHlOYW1lcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUodGFrZSgxKSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3JzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocHJvcGVydHlOYW1lcy5tYXAocHJvcGVydHlOYW1lID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVPbmU8a2V5b2YgVCwgUmVxdWVzdFBhcmFtc1Q+KHByb3BlcnR5TmFtZSwgb3B0aW9ucykucGlwZShcclxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMucHVzaChlcnJvcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KSkucGlwZShcclxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZSQucGlwZSh0YWtlKDEpKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3luY09uZTxQcm9wVCBleHRlbmRzIGtleW9mIFQsIFJlcXVlc3RQYXJhbXNUID0gbmV2ZXI+KFxyXG4gICAgICAgIHByb3BlcnR5TmFtZTogUHJvcFQsXHJcbiAgICAgICAgb3B0aW9ucz86IFN5bmNocm9uaXplci5SZWFkT3B0aW9uczxSZXF1ZXN0UGFyYW1zVD5cclxuICAgICk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG4gICAgICAgIGNvbnN0IGVycm9yUHJlZml4ID0gXCJbTkdYUy1TeW5jaHJvbml6ZXJzXSBDYW5ub3Qgc3luYyBzdGF0ZTpcIjtcclxuXHJcbiAgICAgICAgbGV0IHN5bmNocm9uaXplcjogU3luY2hyb25pemVyPFQsIFByb3BULCBSZXF1ZXN0UGFyYW1zVCwgbmV2ZXI+O1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHN5bmNocm9uaXplciA9IHRoaXMucmVzb2x2ZVN5bmNocm9uaXplcihwcm9wZXJ0eU5hbWUpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENoZWNrIGZvciBjYWNoZWQgdmFsdWVzL3BlbmRpbmcgcmVxdWVzdHMgb25seSBpZiB0aGlzIGlzbid0IGEgZGVwZW5kZW50IHJlcXVlc3RvclxyXG4gICAgICAgIGlmICghc3luY2hyb25pemVyLnByb3h5KSB7XHJcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmNsZWFyU3RvcmUpIHtcclxuICAgICAgICAgICAgICAgIC8vIFRPRE8tU3luY2hyb25pemUgb24gdGhpcz9cclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2gocHJvcGVydHlOYW1lLCB1bmRlZmluZWQpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc3luY2hyb25pemVyLnJlcXVpcmVkUHJvcGVydGllcyAmJiBzeW5jaHJvbml6ZXIucmVxdWlyZWRQcm9wZXJ0aWVzLnNvbWUocmVxdWlyZWRQcm9wZXJ0eU5hbWUgPT4gcmVxdWlyZWRQcm9wZXJ0eU5hbWUgPT09IHByb3BlcnR5TmFtZSkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGAke2Vycm9yUHJlZml4fSBTeW5jaHJvbml6ZXIgZm9yIFwiJHtwcm9wZXJ0eU5hbWV9XCIgcmVxdWlyZXMgYSByZWZlcmVuY2UgdG8gaXRzZWxmLmApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wZW5kaW5nUmVxdWVzdHMkLnBpcGUoXHJcbiAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgIG1lcmdlTWFwKChwZW5kaW5nUmVxdWVzdHMpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBwZW5kaW5nUmVxdWVzdCQgPSBwZW5kaW5nUmVxdWVzdHNbcHJvcGVydHlOYW1lXTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGVuZGluZ1JlcXVlc3QkICYmICFvcHRpb25zLmNsZWFyU3RvcmUpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBVc2UgdGhlIGV4aXN0aW5nIHJlcXVlc3QgaWYgdGhpcyB2YWx1ZSBpcyBjdXJyZW50bHkgYmVpbmcgcmVxdWVzdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBlbmRpbmdSZXF1ZXN0JDtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gRmlyc3QgcmVxdWVzdCBhbnkgcmVxdWlyZWQgZmllbGRzIG5lZWRlZCB0byBmZXRjaCB0aGUgcHJvcGVydHlOYW1lXHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN5bmNocm9uaXplci5wcm94eSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUmVxdWVzdCQgPSB0aGlzLnN5bmNBbGw8UmVxdWVzdFBhcmFtc1Q+KHN5bmNocm9uaXplci5yZXF1aXJlZFByb3BlcnRpZXMsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlbmRpbmdSZXF1ZXN0JCA9IHRoaXMucmVxdWlyZUFsbDxSZXF1ZXN0UGFyYW1zVD4oc3luY2hyb25pemVyLnJlcXVpcmVkUHJvcGVydGllcyB8fCBbXSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgICAgICAvLyBUaGVuIGZldGNoIHRoZSBwcm9wZXJ0eU5hbWVcclxuICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUmVxdWVzdCQgPSBwZW5kaW5nUmVxdWVzdCQucGlwZShcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VNYXAoKHJlcXVpcmVkRGV0YWlsczogYW55KSA9PiBzeW5jaHJvbml6ZXIucmVhZChyZXF1aXJlZERldGFpbHMsIHsgcHJvcGVydHlOYW1lLCAuLi5vcHRpb25zIH0pKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VNYXAoKHZhbHVlOiBhbnkpID0+IHRoaXMuZGlzcGF0Y2gocHJvcGVydHlOYW1lLCB2YWx1ZSkpLCAvLyBVcGRhdGUgdGhlIHN0b3JlIHZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyUHJvcGVydHlVcGRhdGVyKHByb3BlcnR5TmFtZSwgcGVuZGluZ1JlcXVlc3QkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB0aGlzLmNsZWFyUHJvcGVydHlVcGRhdGVyKHByb3BlcnR5TmFtZSwgcGVuZGluZ1JlcXVlc3QkKSksIC8vIFJlbW92ZSB0aGUgcGVuZGluZyByZXF1ZXN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuc3RhdGUkLnBpcGUodGFrZSgxKSkpLCAvLyBHZXQgdGhlIG5ld2x5IHVwZGF0ZWQgc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaFJlcGxheSgxKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmQ291bnQoKVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVuZGluZ1JlcXVlc3RzJC5uZXh0KE9iamVjdC5hc3NpZ24ocGVuZGluZ1JlcXVlc3RzLCB7IFtwcm9wZXJ0eU5hbWVdOiBwZW5kaW5nUmVxdWVzdCQgfSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwZW5kaW5nUmVxdWVzdCQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN5bmNBbGw8UmVxdWVzdFBhcmFtc1QgPSBuZXZlcj4oXHJcbiAgICAgICAgcHJvcGVydHlOYW1lczogQXJyYXk8a2V5b2YgVD4sXHJcbiAgICAgICAgb3B0aW9ucz86IFN5bmNocm9uaXplci5SZWFkT3B0aW9uczxSZXF1ZXN0UGFyYW1zVD5cclxuICAgICk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xyXG5cclxuICAgICAgICBpZiAocHJvcGVydHlOYW1lcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUodGFrZSgxKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBVcGRhdGUgZWFjaCByZXF1aXJlZCBwcm9wZXJ0eU5hbWVcclxuICAgICAgICBjb25zdCBlcnJvcnM6IGFueVtdID0gW107XHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKHByb3BlcnR5TmFtZXMubWFwKG5hbWUgPT4gdGhpcy5zeW5jPFJlcXVlc3RQYXJhbXNUPihuYW1lLCBvcHRpb25zKS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIH0pKSkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9ycy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUkLnBpcGUodGFrZSgxKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoYEVycm9yIHN5bmNpbmcgcHJvcGVydGllczogJHtlcnJvcnMuam9pbihcIiwgXCIpfWApO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBleHBvcnRPbmU8UHJvcFQgZXh0ZW5kcyBrZXlvZiBULCBSZXF1ZXN0UGFyYW1zVCA9IG5ldmVyPihcclxuICAgICAgICBwcm9wZXJ0eU5hbWU6IFByb3BULFxyXG4gICAgICAgIG9wdGlvbnM/OiBTeW5jaHJvbml6ZXIuV3JpdGVPcHRpb25zPFJlcXVlc3RQYXJhbXNUPlxyXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuICAgICAgICBjb25zdCBlcnJvclByZWZpeCA9IFwiW05HWFMtU3luY2hyb25pemVyc10gQ2Fubm90IGV4cG9ydCBzdGF0ZTpcIjtcclxuXHJcbiAgICAgICAgbGV0IHN5bmNocm9uaXplcjogU3luY2hyb25pemVyPFQsIFByb3BULCBuZXZlciwgUmVxdWVzdFBhcmFtc1Q+O1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIHN5bmNocm9uaXplciA9IHRoaXMucmVzb2x2ZVN5bmNocm9uaXplcihwcm9wZXJ0eU5hbWUpO1xyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghc3luY2hyb25pemVyLndyaXRlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGAke2Vycm9yUHJlZml4fSBTeW5jaHJvbml6ZXIgZm9yIFwiJHtwcm9wZXJ0eU5hbWV9XCIgZG9lc24ndCBoYXZlIGEgd3JpdGUgbWV0aG9kIGRlZmluZWQuYCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBXcml0ZSB0aGUgbGF0ZXN0IGRhdGEgaW4gdGhlIHN0b3JlXHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvcGVydHkocHJvcGVydHlOYW1lKS5waXBlKFxyXG4gICAgICAgICAgICB0YWtlKDEpLFxyXG4gICAgICAgICAgICBtZXJnZU1hcChkYXRhID0+IHN5bmNocm9uaXplci53cml0ZShkYXRhLCB7IHByb3BlcnR5TmFtZSwgLi4ub3B0aW9ucyB9KSksXHJcbiAgICAgICAgICAgIHB1Ymxpc2hSZXBsYXkoMSksXHJcbiAgICAgICAgICAgIHJlZkNvdW50KClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZXhwb3J0QWxsPFJlcXVlc3RQYXJhbXNUID0gbmV2ZXI+KFxyXG4gICAgICAgIHByb3BlcnR5TmFtZXM6IEFycmF5PGtleW9mIFQ+LFxyXG4gICAgICAgIG9wdGlvbnM/OiBTeW5jaHJvbml6ZXIuV3JpdGVPcHRpb25zPFJlcXVlc3RQYXJhbXNUPlxyXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcclxuXHJcbiAgICAgICAgaWYgKHByb3BlcnR5TmFtZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBlbXB0eSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gVXBkYXRlIGVhY2ggcmVxdWlyZWQgcHJvcGVydHlOYW1lXHJcbiAgICAgICAgY29uc3QgZXJyb3JzOiBhbnlbXSA9IFtdO1xyXG4gICAgICAgIHJldHVybiBmb3JrSm9pbihwcm9wZXJ0eU5hbWVzLm1hcChuYW1lID0+IHRoaXMuZXhwb3J0PFJlcXVlc3RQYXJhbXNUPihuYW1lLCBvcHRpb25zKS5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgZXJyb3JzLnB1c2goZXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIH0pKSkpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgocmVzdWx0cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihyZXN1bHRzKTtcclxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihgRXJyb3IgZXhwb3J0aW5nIHByb3BlcnRpZXM6ICR7ZXJyb3JzLmpvaW4oXCIsIFwiKX1gKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJvcGVydHlVcGRhdGVyKHByb3BlcnR5TmFtZToga2V5b2YgVCk6IE9ic2VydmFibGU8T2JzZXJ2YWJsZTxUPiB8IHVuZGVmaW5lZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBlbmRpbmdSZXF1ZXN0cyQucGlwZShtYXAocGVuZGluZ1JlcXVlc3RzID0+IHBlbmRpbmdSZXF1ZXN0c1twcm9wZXJ0eU5hbWVdKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjbGVhclByb3BlcnR5VXBkYXRlcihwcm9wZXJ0eU5hbWU6IGtleW9mIFQsIHJlcXVlc3Q6IE9ic2VydmFibGU8VD4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnBlbmRpbmdSZXF1ZXN0cyQucGlwZShcclxuICAgICAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICAgICAgZmlsdGVyKHBlbmRpbmdSZXF1ZXN0cyA9PiBwZW5kaW5nUmVxdWVzdHNbcHJvcGVydHlOYW1lXSA9PT0gcmVxdWVzdClcclxuICAgICAgICApLnN1YnNjcmliZShwZW5kaW5nUmVxdWVzdHMgPT4gdGhpcy5wZW5kaW5nUmVxdWVzdHMkLm5leHQoT2JqZWN0LmFzc2lnbihwZW5kaW5nUmVxdWVzdHMsIHsgW3Byb3BlcnR5TmFtZV06IHVuZGVmaW5lZCB9KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVzb2x2ZVN5bmNocm9uaXplcjxQcm9wVCBleHRlbmRzIGtleW9mIFQsIFJlcXVlc3RQYXJhbXNUPihwcm9wZXJ0eU5hbWU6IFByb3BUKTogU3luY2hyb25pemVyPFQsIFByb3BULCBSZXF1ZXN0UGFyYW1zVCwgUmVxdWVzdFBhcmFtc1Q+IHtcclxuICAgICAgICByZXR1cm4gU3luY2hyb25pemVyRGljdGlvbmFyeS5yZXNvbHZlU3luY2hyb25pemVySW5zdGFuY2UoXHJcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IsXHJcbiAgICAgICAgICAgIHRoaXMuc3luY2hyb25pemVycyxcclxuICAgICAgICAgICAgcHJvcGVydHlOYW1lXHJcbiAgICAgICAgKSBhcyBTeW5jaHJvbml6ZXI8VCwgUHJvcFQsIG5ldmVyLCBSZXF1ZXN0UGFyYW1zVD47XHJcbiAgICB9XHJcbn1cclxuIl19
|
package/esm2015/sync-store.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Injectable, Injector } from "@angular/core";
|
|
2
|
-
import { Store } from "@ngxs/store";
|
|
3
|
-
import { SyncClass } from "./decorators/sync-class";
|
|
4
|
-
import { StateSelector } from "./state-selector";
|
|
5
|
-
export class SyncStore extends Store {
|
|
6
|
-
constructor(injector, store) {
|
|
7
|
-
const internalStore = store;
|
|
8
|
-
super(internalStore._stateStream, internalStore._internalStateOperations, internalStore._config, internalStore._internalExecutionStrategy, internalStore._stateFactory, undefined);
|
|
9
|
-
this.injector = injector;
|
|
10
|
-
this._selectorMap = new Map();
|
|
11
|
-
}
|
|
12
|
-
state(syncState) {
|
|
13
|
-
// If the selector hasn't been created for this state class yet, create it
|
|
14
|
-
if (!this._selectorMap.has(syncState)) {
|
|
15
|
-
const statePath = [...SyncClass.resolveParents(syncState).reverse(), syncState];
|
|
16
|
-
const state$ = this.select(state => statePath.reduce((parentState, childState) => {
|
|
17
|
-
return parentState[SyncClass.getStoreOptions(childState).name];
|
|
18
|
-
}, state));
|
|
19
|
-
// Record each state selector to keep pending requests in sync between state() calls
|
|
20
|
-
this._selectorMap.set(syncState, new StateSelector(this, syncState, state$));
|
|
21
|
-
}
|
|
22
|
-
return this._selectorMap.get(syncState);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
SyncStore.decorators = [
|
|
26
|
-
{ type: Injectable }
|
|
27
|
-
];
|
|
28
|
-
SyncStore.ctorParameters = () => [
|
|
29
|
-
{ type: Injector },
|
|
30
|
-
{ type: Store }
|
|
31
|
-
];
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zeW5jLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQVdqRCxNQUFNLE9BQU8sU0FBVSxTQUFRLEtBQUs7SUFLaEMsWUFBWSxRQUFrQixFQUFFLEtBQVk7UUFDeEMsTUFBTSxhQUFhLEdBQWtCLEtBQVksQ0FBQztRQUVsRCxLQUFLLENBQ0QsYUFBYSxDQUFDLFlBQVksRUFDMUIsYUFBYSxDQUFDLHdCQUF3QixFQUN0QyxhQUFhLENBQUMsT0FBTyxFQUNyQixhQUFhLENBQUMsMEJBQTBCLEVBQ3hDLGFBQWEsQ0FBQyxhQUFhLEVBQzNCLFNBQVMsQ0FDWixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxLQUFLLENBQUksU0FBdUI7UUFDbkMsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNuQyxNQUFNLFNBQVMsR0FBeUIsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdEcsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBSSxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLEVBQUU7Z0JBQ2hGLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFFWCxvRkFBb0Y7WUFDcEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksYUFBYSxDQUFJLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUNuRjtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7O1lBbkNKLFVBQVU7OztZQWJVLFFBQVE7WUFDcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tIFwiQG5neHMvc3RvcmVcIjtcclxuaW1wb3J0IHsgU3luY0NsYXNzIH0gZnJvbSBcIi4vZGVjb3JhdG9ycy9zeW5jLWNsYXNzXCI7XHJcbmltcG9ydCB7IFN0YXRlU2VsZWN0b3IgfSBmcm9tIFwiLi9zdGF0ZS1zZWxlY3RvclwiO1xyXG5cclxuaW50ZXJmYWNlIEludGVybmFsU3RvcmUge1xyXG4gICAgX3N0YXRlU3RyZWFtOiBhbnk7XHJcbiAgICBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IGFueTtcclxuICAgIF9jb25maWc6IGFueTtcclxuICAgIF9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5OiBhbnk7XHJcbiAgICBfc3RhdGVGYWN0b3J5OiBhbnk7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN5bmNTdG9yZSBleHRlbmRzIFN0b3JlIHtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0b3JNYXA6IE1hcDxTeW5jQ2xhc3M8YW55PiwgU3RhdGVTZWxlY3Rvcjxhbnk+PjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHN0b3JlOiBTdG9yZSkge1xyXG4gICAgICAgIGNvbnN0IGludGVybmFsU3RvcmU6IEludGVybmFsU3RvcmUgPSBzdG9yZSBhcyBhbnk7XHJcblxyXG4gICAgICAgIHN1cGVyKFxyXG4gICAgICAgICAgICBpbnRlcm5hbFN0b3JlLl9zdGF0ZVN0cmVhbSxcclxuICAgICAgICAgICAgaW50ZXJuYWxTdG9yZS5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMsXHJcbiAgICAgICAgICAgIGludGVybmFsU3RvcmUuX2NvbmZpZyxcclxuICAgICAgICAgICAgaW50ZXJuYWxTdG9yZS5faW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSxcclxuICAgICAgICAgICAgaW50ZXJuYWxTdG9yZS5fc3RhdGVGYWN0b3J5LFxyXG4gICAgICAgICAgICB1bmRlZmluZWRcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmluamVjdG9yID0gaW5qZWN0b3I7XHJcbiAgICAgICAgdGhpcy5fc2VsZWN0b3JNYXAgPSBuZXcgTWFwKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRlPFQ+KHN5bmNTdGF0ZTogU3luY0NsYXNzPFQ+KTogU3RhdGVTZWxlY3RvcjxUPiB7XHJcbiAgICAgICAgLy8gSWYgdGhlIHNlbGVjdG9yIGhhc24ndCBiZWVuIGNyZWF0ZWQgZm9yIHRoaXMgc3RhdGUgY2xhc3MgeWV0LCBjcmVhdGUgaXRcclxuICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdG9yTWFwLmhhcyhzeW5jU3RhdGUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlUGF0aDogU3luY0NsYXNzPHVua25vd24+W10gPSBbLi4uU3luY0NsYXNzLnJlc29sdmVQYXJlbnRzKHN5bmNTdGF0ZSkucmV2ZXJzZSgpLCBzeW5jU3RhdGVdO1xyXG4gICAgICAgICAgICBjb25zdCBzdGF0ZSQgPSB0aGlzLnNlbGVjdDxUPihzdGF0ZSA9PiBzdGF0ZVBhdGgucmVkdWNlKChwYXJlbnRTdGF0ZSwgY2hpbGRTdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudFN0YXRlW1N5bmNDbGFzcy5nZXRTdG9yZU9wdGlvbnMoY2hpbGRTdGF0ZSkubmFtZV07XHJcbiAgICAgICAgICAgIH0sIHN0YXRlKSk7XHJcblxyXG4gICAgICAgICAgICAvLyBSZWNvcmQgZWFjaCBzdGF0ZSBzZWxlY3RvciB0byBrZWVwIHBlbmRpbmcgcmVxdWVzdHMgaW4gc3luYyBiZXR3ZWVuIHN0YXRlKCkgY2FsbHNcclxuICAgICAgICAgICAgdGhpcy5fc2VsZWN0b3JNYXAuc2V0KHN5bmNTdGF0ZSwgbmV3IFN0YXRlU2VsZWN0b3I8VD4odGhpcywgc3luY1N0YXRlLCBzdGF0ZSQpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rvck1hcC5nZXQoc3luY1N0YXRlKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGlvbi1zeW5jaHJvbml6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc3luY2hyb25pemVyL2NvbGxlY3Rpb24tc3luY2hyb25pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgU3luY2hyb25pemVyIH0gZnJvbSBcIi4vc3luY2hyb25pemVyXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENvbGxlY3Rpb25TeW5jaHJvbml6ZXI8XHJcbiAgICBULFxyXG4gICAgUmVhZFBhcmFtc1QgPSBuZXZlcixcclxuICAgIFdyaXRlUGFyYW1zVCA9IG5ldmVyXHJcbj4gZXh0ZW5kcyBTeW5jaHJvbml6ZXI8VCwga2V5b2YgVCwgUmVhZFBhcmFtc1QsIFdyaXRlUGFyYW1zVD4ge1xyXG5cclxuICAgIHJlYWQoXHJcbiAgICAgICAgcmVxdWlyZWREZXRhaWxzOiBQYXJ0aWFsPFQ+LFxyXG4gICAgICAgIG9wdGlvbnM6IENvbGxlY3Rpb25TeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8VCwgUmVhZFBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPFRba2V5b2YgVF0+O1xyXG5cclxuICAgIHdyaXRlPyhcclxuICAgICAgICB2YWx1ZTogVFtrZXlvZiBUXSxcclxuICAgICAgICBvcHRpb25zOiBDb2xsZWN0aW9uU3luY2hyb25pemVyLldyaXRlT3B0aW9uczxULCBXcml0ZVBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCBuYW1lc3BhY2UgQ29sbGVjdGlvblN5bmNocm9uaXplciB7XHJcblxyXG4gICAgZXhwb3J0IHR5cGUgUmVhZE9wdGlvbnM8XHJcbiAgICAgICAgVCxcclxuICAgICAgICBQYXJhbXNUID0gbmV2ZXJcclxuICAgID4gPSBTeW5jaHJvbml6ZXIuQmFzZU9wdGlvbnM8VCwga2V5b2YgVCwgUGFyYW1zVD4gJiBTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8UGFyYW1zVD47XHJcblxyXG4gICAgZXhwb3J0IHR5cGUgV3JpdGVPcHRpb25zPFxyXG4gICAgICAgIFQsXHJcbiAgICAgICAgUGFyYW1zVCA9IG5ldmVyXHJcbiAgICA+ID0gU3luY2hyb25pemVyLkJhc2VPcHRpb25zPFQsIGtleW9mIFQsIFBhcmFtc1Q+ICYgU3luY2hyb25pemVyLldyaXRlT3B0aW9uczxQYXJhbXNUPjtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHktc3luY2hyb25pemVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3N5bmNocm9uaXplci9wcm9wZXJ0eS1zeW5jaHJvbml6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBTeW5jaHJvbml6ZXIgfSBmcm9tIFwiLi9zeW5jaHJvbml6ZXJcIjtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvcGVydHlTeW5jaHJvbml6ZXI8XHJcbiAgICBULFxyXG4gICAgUHJvcEtleSBleHRlbmRzIGtleW9mIFQsXHJcbiAgICBSZWFkUGFyYW1zVCA9IG5ldmVyLFxyXG4gICAgV3JpdGVQYXJhbXNUID0gbmV2ZXJcclxuPiBleHRlbmRzIFN5bmNocm9uaXplcjxULCBQcm9wS2V5LCBSZWFkUGFyYW1zVCwgV3JpdGVQYXJhbXNUPiB7XHJcblxyXG4gICAgcmVhZChcclxuICAgICAgICByZXF1aXJlZERldGFpbHM6IFBhcnRpYWw8VD4sXHJcbiAgICAgICAgb3B0aW9uczogUHJvcGVydHlTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8VCwgUHJvcEtleSwgUmVhZFBhcmFtc1Q+XHJcbiAgICApOiBPYnNlcnZhYmxlPFRbUHJvcEtleV0+O1xyXG5cclxuICAgIHdyaXRlPyhcclxuICAgICAgICB2YWx1ZTogVFtQcm9wS2V5XSxcclxuICAgICAgICBvcHRpb25zOiBQcm9wZXJ0eVN5bmNocm9uaXplci5Xcml0ZU9wdGlvbnM8VCwgUHJvcEtleSwgV3JpdGVQYXJhbXNUPlxyXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgbmFtZXNwYWNlIFByb3BlcnR5U3luY2hyb25pemVyIHtcclxuXHJcbiAgICBleHBvcnQgdHlwZSBSZWFkT3B0aW9uczxcclxuICAgICAgICBULFxyXG4gICAgICAgIFByb3BLZXkgZXh0ZW5kcyBrZXlvZiBUID0ga2V5b2YgVCxcclxuICAgICAgICBQYXJhbXNUID0gbmV2ZXJcclxuICAgID4gPSBTeW5jaHJvbml6ZXIuQmFzZU9wdGlvbnM8VCwgUHJvcEtleSwgUGFyYW1zVD4gJiBTeW5jaHJvbml6ZXIuUmVhZE9wdGlvbnM8UGFyYW1zVD47XHJcblxyXG4gICAgZXhwb3J0IHR5cGUgV3JpdGVPcHRpb25zPFxyXG4gICAgICAgIFQsXHJcbiAgICAgICAgUHJvcEtleSBleHRlbmRzIGtleW9mIFQgPSBrZXlvZiBULFxyXG4gICAgICAgIFBhcmFtc1QgPSBuZXZlclxyXG4gICAgPiA9IFN5bmNocm9uaXplci5CYXNlT3B0aW9uczxULCBQcm9wS2V5LCBQYXJhbXNUPiAmIFN5bmNocm9uaXplci5Xcml0ZU9wdGlvbnM8UGFyYW1zVD47XHJcbn1cclxuIl19
|