angular2-hmr
Version:
angular2-hmr: Hot Module Replacement for Webpack and Angular 2
58 lines • 1.84 kB
JavaScript
var OpaqueToken = (function () {
function OpaqueToken(_desc) {
this._desc = _desc;
}
OpaqueToken.prototype.toString = function () { return "Token " + this._desc; };
return OpaqueToken;
}());
exports.OpaqueToken = OpaqueToken;
exports.HMR_STATE = new OpaqueToken('hmrState');
var HmrStore = (function () {
function HmrStore() {
}
HmrStore.set = function (prop, value) {
HmrStore._state[prop] = value;
return HmrStore._state[prop];
};
HmrStore.get = function (prop) {
return HmrStore._state[prop];
};
HmrStore.select = function (name, getState) {
HmrStore._states.push({ name: name, getState: getState });
var defaultData = getState();
var currentData = HmrStore.get(name);
if (defaultData && !currentData) {
return HmrStore.set(name, defaultData);
}
else if (defaultData && currentData) {
return HmrStore.set(name, Object.assign({}, defaultData, currentData));
}
else {
return HmrStore.set(name, currentData || defaultData);
}
};
HmrStore.dispose = function () {
HmrStore._states = [];
HmrStore._state = {};
HmrStore._initialValues = {};
};
HmrStore.getState = function () {
var initialState = Object.assign({}, HmrStore._state);
return HmrStore._states
.reduce(function (memo, item) {
memo[item.name] = item.getState();
return memo;
}, initialState);
};
HmrStore.toJSON = function () {
return HmrStore.getState();
};
HmrStore.dev = false;
HmrStore._state = {};
HmrStore._initialValues = {};
HmrStore._states = [];
return HmrStore;
}());
exports.HmrStore = HmrStore;
//# sourceMappingURL=hmr-store.js.map
;