ngx-store
Version:
Angular decorators to automagically keep variables in HTML5 LocalStorage, SessionStorage, cookies; injectable services for managing and listening to data changes and a bit more.
31 lines • 4.85 kB
JavaScript
import { ConfigHelper } from './config.helper';
import { Debugger } from 'ts-debug';
// TODO allow to set different config for local and session storage
// TODO check if NGXSTORE_CONFIG implements WebStorageConfigInterface
// TODO allow to set configuration in node-config (`config` on npm)
export { CONFIG_PREFIX } from './config.helper';
const DefaultConfig = {
prefix: 'ngx_',
previousPrefix: 'angular2ws_',
clearType: 'prefix',
mutateObjects: true,
cookiesScope: '',
cookiesCheckInterval: 0,
debugMode: false,
};
let ConfigFills = {};
const localStoragePrefix = ConfigHelper.getItem('prefix');
if (typeof NGXSTORE_CONFIG === 'object') {
ConfigFills = Object.assign({}, NGXSTORE_CONFIG);
}
if (localStoragePrefix !== undefined && localStoragePrefix !== null) {
ConfigFills.previousPrefix = localStoragePrefix;
}
else if (ConfigFills.previousPrefix === undefined) {
ConfigFills.previousPrefix = DefaultConfig.previousPrefix;
}
// merge default config, deprecated config and global config all together
export const Config = Object.assign({}, DefaultConfig, ConfigFills);
export const debug = new Debugger(console, Config.debugMode, '[ngx-store] ');
ConfigHelper.setItem('prefix', Config.prefix);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXN0b3JlL3NyYy9saWIvY29uZmlnL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVwQyxtRUFBbUU7QUFDbkUscUVBQXFFO0FBQ3JFLG1FQUFtRTtBQUVuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFaEQsTUFBTSxhQUFhLEdBQThCO0lBQy9DLE1BQU0sRUFBRSxNQUFNO0lBQ2QsY0FBYyxFQUFFLGFBQWE7SUFDN0IsU0FBUyxFQUFFLFFBQVE7SUFDbkIsYUFBYSxFQUFFLElBQUk7SUFDbkIsWUFBWSxFQUFFLEVBQUU7SUFDaEIsb0JBQW9CLEVBQUUsQ0FBQztJQUN2QixTQUFTLEVBQUUsS0FBSztDQUNqQixDQUFDO0FBS0YsSUFBSSxXQUFXLEdBQThCLEVBQUUsQ0FBQztBQUNoRCxNQUFNLGtCQUFrQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFMUQsSUFBSSxPQUFPLGVBQWUsS0FBSyxRQUFRLEVBQUU7SUFDdkMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0NBQ2xEO0FBRUQsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLElBQUksa0JBQWtCLEtBQUssSUFBSSxFQUFFO0lBQ25FLFdBQVcsQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUM7Q0FDakQ7S0FBTSxJQUFJLFdBQVcsQ0FBQyxjQUFjLEtBQUssU0FBUyxFQUFFO0lBQ25ELFdBQVcsQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDLGNBQWMsQ0FBQztDQUMzRDtBQUVELHlFQUF5RTtBQUN6RSxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQ2pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUVoRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDN0UsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV2ViU3RvcmFnZUNvbmZpZ0ludGVyZmFjZSB9IGZyb20gJy4vY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBDb25maWdIZWxwZXIgfSBmcm9tICcuL2NvbmZpZy5oZWxwZXInO1xuaW1wb3J0IHsgRGVidWdnZXIgfSBmcm9tICd0cy1kZWJ1Zyc7XG5cbi8vIFRPRE8gYWxsb3cgdG8gc2V0IGRpZmZlcmVudCBjb25maWcgZm9yIGxvY2FsIGFuZCBzZXNzaW9uIHN0b3JhZ2Vcbi8vIFRPRE8gY2hlY2sgaWYgTkdYU1RPUkVfQ09ORklHIGltcGxlbWVudHMgV2ViU3RvcmFnZUNvbmZpZ0ludGVyZmFjZVxuLy8gVE9ETyBhbGxvdyB0byBzZXQgY29uZmlndXJhdGlvbiBpbiBub2RlLWNvbmZpZyAoYGNvbmZpZ2Agb24gbnBtKVxuXG5leHBvcnQgeyBDT05GSUdfUFJFRklYIH0gZnJvbSAnLi9jb25maWcuaGVscGVyJztcblxuY29uc3QgRGVmYXVsdENvbmZpZzogV2ViU3RvcmFnZUNvbmZpZ0ludGVyZmFjZSA9IHtcbiAgcHJlZml4OiAnbmd4XycsXG4gIHByZXZpb3VzUHJlZml4OiAnYW5ndWxhcjJ3c18nLFxuICBjbGVhclR5cGU6ICdwcmVmaXgnLFxuICBtdXRhdGVPYmplY3RzOiB0cnVlLFxuICBjb29raWVzU2NvcGU6ICcnLFxuICBjb29raWVzQ2hlY2tJbnRlcnZhbDogMCxcbiAgZGVidWdNb2RlOiBmYWxzZSxcbn07XG5cbi8vIHRha2UgY29uZmlndXJhdGlvbiBwcm92aWRlZCBhcyBhIGdsb2JhbCB2YXJpYWJsZVxuZGVjbGFyZSBjb25zdCBOR1hTVE9SRV9DT05GSUc6IFdlYlN0b3JhZ2VDb25maWdJbnRlcmZhY2U7XG5cbmxldCBDb25maWdGaWxsczogV2ViU3RvcmFnZUNvbmZpZ0ludGVyZmFjZSA9IHt9O1xuY29uc3QgbG9jYWxTdG9yYWdlUHJlZml4ID0gQ29uZmlnSGVscGVyLmdldEl0ZW0oJ3ByZWZpeCcpO1xuXG5pZiAodHlwZW9mIE5HWFNUT1JFX0NPTkZJRyA9PT0gJ29iamVjdCcpIHtcbiAgQ29uZmlnRmlsbHMgPSBPYmplY3QuYXNzaWduKHt9LCBOR1hTVE9SRV9DT05GSUcpO1xufVxuXG5pZiAobG9jYWxTdG9yYWdlUHJlZml4ICE9PSB1bmRlZmluZWQgJiYgbG9jYWxTdG9yYWdlUHJlZml4ICE9PSBudWxsKSB7XG4gIENvbmZpZ0ZpbGxzLnByZXZpb3VzUHJlZml4ID0gbG9jYWxTdG9yYWdlUHJlZml4O1xufSBlbHNlIGlmIChDb25maWdGaWxscy5wcmV2aW91c1ByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gIENvbmZpZ0ZpbGxzLnByZXZpb3VzUHJlZml4ID0gRGVmYXVsdENvbmZpZy5wcmV2aW91c1ByZWZpeDtcbn1cblxuLy8gbWVyZ2UgZGVmYXVsdCBjb25maWcsIGRlcHJlY2F0ZWQgY29uZmlnIGFuZCBnbG9iYWwgY29uZmlnIGFsbCB0b2dldGhlclxuZXhwb3J0IGNvbnN0IENvbmZpZzogV2ViU3RvcmFnZUNvbmZpZ0ludGVyZmFjZSA9XG4gIE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRDb25maWcsIENvbmZpZ0ZpbGxzKTtcblxuZXhwb3J0IGNvbnN0IGRlYnVnID0gbmV3IERlYnVnZ2VyKGNvbnNvbGUsIENvbmZpZy5kZWJ1Z01vZGUsICdbbmd4LXN0b3JlXSAnKTtcbkNvbmZpZ0hlbHBlci5zZXRJdGVtKCdwcmVmaXgnLCBDb25maWcucHJlZml4KTtcbiJdfQ==