UNPKG

angular2-hmr

Version:

angular2-hmr: Hot Module Replacement for Webpack and Angular 2

51 lines 1.79 kB
"use strict"; var hmr_store_1 = require('./hmr-store'); // noop in parentNode // TODO: find a better way to noop var _env = typeof process !== 'undefined' && process && process.env && (process.env.ENV || process.env.NODE_ENV); var _dev = ((_env && typeof _env === 'string' && (_env.indexOf('dev') > -1)) || _env === undefined); function setDev(newDev) { if (typeof newDev === 'string') { return _dev = (newDev.indexOf('dev') > -1); } else if (typeof newDev === 'boolean') { return _dev = newDev; } throw new Error('Please provide a string or boolean'); } exports.setDev = setDev; function HmrState(namespaceOrConfig, config) { function decoratorFactory(target, decoratedPropertyName, descriptor) { if (!_dev) { return descriptor; } var key = namespaceOrConfig || target.constructor.name + '#' + decoratedPropertyName; hmr_store_1.HmrStore.select(key, function () { return hmr_store_1.HmrStore.get(key); }); Object.defineProperty(target, decoratedPropertyName, { get: function () { return hmr_store_1.HmrStore.get(key); }, set: function (newValue) { var currentValue = hmr_store_1.HmrStore.get(key); if (!currentValue) { hmr_store_1.HmrStore._initialValues[key] = newValue; } else { newValue = Object.assign(newValue, currentValue); } return hmr_store_1.HmrStore.set(key, newValue); }, enumerable: true, configurable: true }); return descriptor; } return decoratorFactory; } exports.HmrState = HmrState; //# sourceMappingURL=hmr-decorator.js.map