1 | "use strict";
|
2 | var core_1 = require('@angular/core');
|
3 | exports.HMR_STATE = new core_1.OpaqueToken('hmrState');
|
4 | var 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 | }());
|
50 | exports.HmrStore = HmrStore;
|
51 |
|
\ | No newline at end of file |