UNPKG

3.38 kBJavaScriptView Raw
1"use strict";
2var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5 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;
6 return c > 3 && r && Object.defineProperty(target, key, r), r;
7};
8var __metadata = (this && this.__metadata) || function (k, v) {
9 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10};
11var __param = (this && this.__param) || function (paramIndex, decorator) {
12 return function (target, key) { decorator(target, key, paramIndex); }
13};
14var core_1 = require('angular2/core');
15exports.WEBPACK_HMR = new core_1.OpaqueToken('$$AppState');
16var WebpackStore = (function () {
17 function WebpackStore(state) {
18 if (state) {
19 console.log('WebpackState initial data', state);
20 }
21 WebpackStore._state = state || WebpackStore._state;
22 }
23 WebpackStore.set = function (prop, value) {
24 WebpackStore._state[prop] = value;
25 return WebpackStore._state[prop];
26 };
27 WebpackStore.get = function (prop) {
28 return WebpackStore._state[prop];
29 };
30 WebpackStore.select = function (name, getState) {
31 WebpackStore._states.push({ name: name, getState: getState });
32 var defaultData = getState();
33 var currentData = WebpackStore.get(name);
34 if (defaultData && !currentData) {
35 return WebpackStore.set(name, defaultData);
36 }
37 else if (defaultData && currentData) {
38 return WebpackStore.set(name, Object.assign({}, defaultData, currentData));
39 }
40 else {
41 return WebpackStore.set(name, currentData || defaultData);
42 }
43 };
44 WebpackStore.dispose = function () {
45 WebpackStore._states = [];
46 WebpackStore._state = {};
47 };
48 WebpackStore.prototype.get = function (prop) {
49 return WebpackStore.get(prop);
50 };
51 WebpackStore.prototype.set = function (prop, value) {
52 return WebpackStore.set(prop, value);
53 };
54 WebpackStore.prototype.select = function (name, getState) {
55 return WebpackStore.select(name, getState);
56 };
57 WebpackStore.prototype.dispose = function () {
58 return WebpackStore.dispose();
59 };
60 WebpackStore.prototype.getState = function () {
61 var initialState = Object.assign({}, WebpackStore._state);
62 return WebpackStore._states
63 .reduce(function (memo, item) {
64 memo[item.name] = item.getState();
65 return memo;
66 }, initialState);
67 };
68 WebpackStore.prototype.toJSON = function () {
69 return this.getState();
70 };
71 WebpackStore._state = {};
72 WebpackStore._states = [];
73 WebpackStore = __decorate([
74 core_1.Injectable(),
75 __param(0, core_1.Optional()),
76 __param(0, core_1.Inject(exports.WEBPACK_HMR)),
77 __metadata('design:paramtypes', [Object])
78 ], WebpackStore);
79 return WebpackStore;
80}());
81exports.WebpackStore = WebpackStore;
82//# sourceMappingURL=webpack-store.js.map
\No newline at end of file