UNPKG

2.77 kBJavaScriptView Raw
1import { Inject, InjectionToken, NgModule, NgZone, Optional } from '@angular/core';
2import { STORAGE } from './enums/storage';
3import { LocalStorageService, SessionStorageService } from './services/index';
4import { WebStorageHelper } from './helpers/webStorage';
5import { WebstorageConfig } from './interfaces/config';
6import { KeyStorageHelper } from './helpers/keyStorage';
7import { StorageObserverHelper } from './helpers/storageObserver';
8export * from './interfaces/index';
9export * from './decorators/index';
10export * from './services/index';
11export var WEBSTORAGE_CONFIG = new InjectionToken('WEBSTORAGE_CONFIG');
12var Ng2Webstorage = (function () {
13 function Ng2Webstorage(ngZone, config) {
14 this.ngZone = ngZone;
15 if (config) {
16 KeyStorageHelper.setStorageKeyPrefix(config.prefix);
17 KeyStorageHelper.setStorageKeySeparator(config.separator);
18 KeyStorageHelper.setCaseSensitivity(config.caseSensitive);
19 }
20 this.initStorageListener();
21 StorageObserverHelper.initStorage();
22 }
23 Ng2Webstorage.forRoot = function (config) {
24 return {
25 ngModule: Ng2Webstorage,
26 providers: [
27 {
28 provide: WEBSTORAGE_CONFIG,
29 useValue: config
30 },
31 {
32 provide: WebstorageConfig,
33 useFactory: provideConfig,
34 deps: [
35 WEBSTORAGE_CONFIG
36 ]
37 }
38 ]
39 };
40 };
41 Ng2Webstorage.prototype.initStorageListener = function () {
42 var _this = this;
43 if (typeof window !== 'undefined') {
44 window.addEventListener('storage', function (event) {
45 return _this.ngZone.run(function () {
46 var storage = window.sessionStorage === event.storageArea ? STORAGE.session : STORAGE.local;
47 WebStorageHelper.refresh(storage, event.key);
48 });
49 });
50 }
51 };
52 Ng2Webstorage.decorators = [
53 { type: NgModule, args: [{
54 declarations: [],
55 providers: [SessionStorageService, LocalStorageService],
56 imports: []
57 },] },
58 ];
59 /** @nocollapse */
60 Ng2Webstorage.ctorParameters = function () { return [
61 { type: NgZone, },
62 { type: WebstorageConfig, decorators: [{ type: Optional }, { type: Inject, args: [WebstorageConfig,] },] },
63 ]; };
64 return Ng2Webstorage;
65}());
66export { Ng2Webstorage };
67export function provideConfig(config) {
68 return new WebstorageConfig(config);
69}
70//# sourceMappingURL=app.js.map
\No newline at end of file