UNPKG

1.64 kBJavaScriptView Raw
1"use strict";
2var core_1 = require('@angular/core');
3exports.HMR_STATE = new core_1.OpaqueToken('hmrState');
4var HmrStore = (function () {
5 function HmrStore() {
6 }
7 HmrStore.set = function (prop, value) {
8 HmrStore._state[prop] = value;
9 return HmrStore._state[prop];
10 };
11 HmrStore.get = function (prop) {
12 return HmrStore._state[prop];
13 };
14 HmrStore.select = function (name, getState) {
15 HmrStore._states.push({ name: name, getState: getState });
16 var defaultData = getState();
17 var currentData = HmrStore.get(name);
18 if (defaultData && !currentData) {
19 return HmrStore.set(name, defaultData);
20 }
21 else if (defaultData && currentData) {
22 return HmrStore.set(name, Object.assign({}, defaultData, currentData));
23 }
24 else {
25 return HmrStore.set(name, currentData || defaultData);
26 }
27 };
28 HmrStore.dispose = function () {
29 HmrStore._states = [];
30 HmrStore._state = {};
31 HmrStore._initialValues = {};
32 };
33 HmrStore.getState = function () {
34 var initialState = Object.assign({}, HmrStore._state);
35 return HmrStore._states
36 .reduce(function (memo, item) {
37 memo[item.name] = item.getState();
38 return memo;
39 }, initialState);
40 };
41 HmrStore.toJSON = function () {
42 return HmrStore.getState();
43 };
44 HmrStore.dev = false;
45 HmrStore._state = {};
46 HmrStore._initialValues = {};
47 HmrStore._states = [];
48 return HmrStore;
49}());
50exports.HmrStore = HmrStore;
51//# sourceMappingURL=hmr-store.js.map
\No newline at end of file