@quadrel-enterprise-ui/persistence 19.0.13 → 19.0.15-beta.53.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -37
- package/fesm2022/quadrel-enterprise-ui-persistence.mjs +25 -52
- package/fesm2022/quadrel-enterprise-ui-persistence.mjs.map +1 -1
- package/index.d.ts +41 -5
- package/package.json +2 -2
- package/lib/model/persistence-config.d.ts +0 -18
- package/lib/model/persistence-types.d.ts +0 -2
- package/lib/persistence-config.token.d.ts +0 -3
- package/lib/persistence.module.d.ts +0 -9
- package/lib/persistence.service.d.ts +0 -12
- package/lib/strategy/cookie-strategy/cookie-strategy.d.ts +0 -26
- package/lib/strategy/cookie-strategy/cookie-strategy.factory.d.ts +0 -15
- package/lib/strategy/persist-strategy.d.ts +0 -22
- package/lib/strategy/strategy-resolver.service.d.ts +0 -13
- package/lib/utils/stringifyer.d.ts +0 -3
- package/public-api.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,39 +1,40 @@
|
|
|
1
1
|
# qd-persistence
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
3
|
+
Cookie-based key-value persistence for Angular. Cookies are stored under `.bazg.admin.ch` (or `localhost` in development).
|
|
4
|
+
|
|
5
|
+
## Scopes
|
|
6
|
+
|
|
7
|
+
| Scope | Cookie name |
|
|
8
|
+
|---|---|
|
|
9
|
+
| `bazg` (default) | `QD-BAZG` |
|
|
10
|
+
| `application` | `QD-APPLICATION_{appId}` |
|
|
11
|
+
| `private` | `QD-PRIVATE_{appId}_{frontendId}` |
|
|
12
|
+
|
|
13
|
+
## Setup
|
|
14
|
+
|
|
15
|
+
```typescript
|
|
16
|
+
@NgModule({
|
|
17
|
+
imports: [
|
|
18
|
+
QdPersistenceModule.forRoot({
|
|
19
|
+
applicationIdentifier: 'my-app',
|
|
20
|
+
frontendIdentifier: 'my-frontend'
|
|
21
|
+
})
|
|
22
|
+
]
|
|
23
|
+
})
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## API
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
persistence.write('theme', 'dark');
|
|
30
|
+
persistence.read<string>('theme'); // 'dark'
|
|
31
|
+
persistence.delete('theme');
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### With scope
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
persistence.write('token', 'abc', 'private');
|
|
38
|
+
persistence.read<string>('token', 'private'); // 'abc'
|
|
39
|
+
persistence.delete('token', 'private');
|
|
40
|
+
```
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Optional, Inject, Injectable, NgModule } from '@angular/core';
|
|
3
|
-
import { DOCUMENT } from '@angular/common';
|
|
4
|
-
import * as i1 from 'ngx-cookie-service';
|
|
2
|
+
import { InjectionToken, Optional, Inject, DOCUMENT, inject, Injectable, NgModule } from '@angular/core';
|
|
5
3
|
import { CookieService } from 'ngx-cookie-service';
|
|
6
4
|
import { __decorate, __param, __metadata } from 'tslib';
|
|
7
5
|
|
|
@@ -10,12 +8,10 @@ const QD_PERSISTENCE_CONFIG = new InjectionToken('QD_PERSISTENCE_CONFIG');
|
|
|
10
8
|
class QdStringifyer {
|
|
11
9
|
static tryStringify(value) {
|
|
12
10
|
let data = '';
|
|
13
|
-
if (['object', 'boolean', 'number'].includes(typeof value))
|
|
11
|
+
if (['object', 'boolean', 'number'].includes(typeof value))
|
|
14
12
|
data = JSON.stringify(value);
|
|
15
|
-
|
|
16
|
-
if (typeof value === 'string') {
|
|
13
|
+
if (typeof value === 'string')
|
|
17
14
|
data = value;
|
|
18
|
-
}
|
|
19
15
|
return data;
|
|
20
16
|
}
|
|
21
17
|
}
|
|
@@ -83,14 +79,9 @@ QdCookieStrategy = __decorate([
|
|
|
83
79
|
], QdCookieStrategy);
|
|
84
80
|
|
|
85
81
|
class QdCookieStrategyFactory {
|
|
86
|
-
config;
|
|
87
|
-
cookieService;
|
|
88
|
-
document;
|
|
89
|
-
constructor(config, cookieService, document) {
|
|
90
|
-
this.config = config;
|
|
91
|
-
this.cookieService = cookieService;
|
|
92
|
-
this.document = document;
|
|
93
|
-
}
|
|
82
|
+
config = inject(QD_PERSISTENCE_CONFIG);
|
|
83
|
+
cookieService = inject(CookieService);
|
|
84
|
+
document = inject(DOCUMENT, { optional: true });
|
|
94
85
|
getCookieStrategy(scope) {
|
|
95
86
|
return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);
|
|
96
87
|
}
|
|
@@ -104,28 +95,16 @@ class QdCookieStrategyFactory {
|
|
|
104
95
|
return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;
|
|
105
96
|
}
|
|
106
97
|
}
|
|
107
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
108
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
98
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
99
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory });
|
|
109
100
|
}
|
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdCookieStrategyFactory, decorators: [{
|
|
111
102
|
type: Injectable
|
|
112
|
-
}]
|
|
113
|
-
type: Inject,
|
|
114
|
-
args: [QD_PERSISTENCE_CONFIG]
|
|
115
|
-
}] }, { type: i1.CookieService }, { type: Document, decorators: [{
|
|
116
|
-
type: Optional
|
|
117
|
-
}, {
|
|
118
|
-
type: Inject,
|
|
119
|
-
args: [DOCUMENT]
|
|
120
|
-
}] }] });
|
|
103
|
+
}] });
|
|
121
104
|
|
|
122
105
|
class QdStrategyResolverService {
|
|
123
|
-
config;
|
|
124
|
-
cookieStrategyFactory;
|
|
125
|
-
constructor(config, cookieStrategyFactory) {
|
|
126
|
-
this.config = config;
|
|
127
|
-
this.cookieStrategyFactory = cookieStrategyFactory;
|
|
128
|
-
}
|
|
106
|
+
config = inject(QD_PERSISTENCE_CONFIG);
|
|
107
|
+
cookieStrategyFactory = inject(QdCookieStrategyFactory);
|
|
129
108
|
resolve(scope) {
|
|
130
109
|
/* istanbul ignore next (remove comment when another strategy is added) */
|
|
131
110
|
switch (this.config.persistStrategy) {
|
|
@@ -134,21 +113,15 @@ class QdStrategyResolverService {
|
|
|
134
113
|
return this.cookieStrategyFactory.getCookieStrategy(scope);
|
|
135
114
|
}
|
|
136
115
|
}
|
|
137
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
138
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
116
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
117
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService });
|
|
139
118
|
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdStrategyResolverService, decorators: [{
|
|
141
120
|
type: Injectable
|
|
142
|
-
}]
|
|
143
|
-
type: Inject,
|
|
144
|
-
args: [QD_PERSISTENCE_CONFIG]
|
|
145
|
-
}] }, { type: QdCookieStrategyFactory }] });
|
|
121
|
+
}] });
|
|
146
122
|
|
|
147
123
|
class QdPersistenceService {
|
|
148
|
-
strategyResolverService;
|
|
149
|
-
constructor(strategyResolverService) {
|
|
150
|
-
this.strategyResolverService = strategyResolverService;
|
|
151
|
-
}
|
|
124
|
+
strategyResolverService = inject(QdStrategyResolverService);
|
|
152
125
|
write(key, data, scope = 'bazg') {
|
|
153
126
|
const strategy = this.strategyResolverService.resolve(scope);
|
|
154
127
|
strategy.setItem(key, data);
|
|
@@ -161,12 +134,12 @@ class QdPersistenceService {
|
|
|
161
134
|
const strategy = this.strategyResolverService.resolve(scope);
|
|
162
135
|
strategy.removeItem(key);
|
|
163
136
|
}
|
|
164
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
165
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
137
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
138
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService });
|
|
166
139
|
}
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
140
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceService, decorators: [{
|
|
168
141
|
type: Injectable
|
|
169
|
-
}]
|
|
142
|
+
}] });
|
|
170
143
|
|
|
171
144
|
class QdPersistenceModule {
|
|
172
145
|
static forRoot(config) {
|
|
@@ -175,11 +148,11 @@ class QdPersistenceModule {
|
|
|
175
148
|
providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]
|
|
176
149
|
};
|
|
177
150
|
}
|
|
178
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
179
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
180
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
151
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
152
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule });
|
|
153
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory] });
|
|
181
154
|
}
|
|
182
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.17", ngImport: i0, type: QdPersistenceModule, decorators: [{
|
|
183
156
|
type: NgModule,
|
|
184
157
|
args: [{
|
|
185
158
|
providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quadrel-enterprise-ui-persistence.mjs","sources":["../../../../libs/qd-persistence/src/lib/persistence-config.token.ts","../../../../libs/qd-persistence/src/lib/utils/stringifyer.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.factory.ts","../../../../libs/qd-persistence/src/lib/strategy/strategy-resolver.service.ts","../../../../libs/qd-persistence/src/lib/persistence.service.ts","../../../../libs/qd-persistence/src/lib/persistence.module.ts","../../../../libs/qd-persistence/src/quadrel-enterprise-ui-persistence.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\n\nexport const QD_PERSISTENCE_CONFIG = new InjectionToken<QdPersistenceConfig>('QD_PERSISTENCE_CONFIG');\n","export class QdStringifyer {\n static tryStringify<T>(value: T): string {\n let data = '';\n\n if (['object', 'boolean', 'number'].includes(typeof value)) {\n data = JSON.stringify(value);\n }\n\n if (typeof value === 'string') {\n data = value;\n }\n\n return data;\n }\n}\n","import { Inject, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdStringifyer } from '../../utils/stringifyer';\nimport { QdPersistStrategy } from '../persist-strategy';\n\ntype QdPersistedData = { [key: string]: unknown };\n\n/**\n * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.\n * In contrast, local storage would make the data only visible for a specific subdomain.\n * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.\n * For the future another strategy is planned that saves the data in a backend service and that will also allow data\n * to be shared between websites with different hosts.\n */\nexport class QdCookieStrategy implements QdPersistStrategy {\n private cookieExpiresDays = 365 * 10;\n\n constructor(\n private cookieName: string,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n private get cookieDomain(): string {\n if (this.document?.location?.hostname === 'localhost') return 'localhost';\n return '.bazg.admin.ch';\n }\n\n get persistedData(): QdPersistedData {\n try {\n const parsed = JSON.parse(this.cookieService.get(this.cookieName));\n\n if (typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n\n return parsed ?? {};\n } catch {\n return {};\n }\n }\n\n private persistData(data: QdPersistedData) {\n this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);\n }\n\n setItem<T>(key: string, value: T): void {\n const data = this.persistedData;\n data[key] = QdStringifyer.tryStringify<T>(value);\n\n this.persistData(data);\n }\n\n getItem<T>(key: string): T | null {\n try {\n return JSON.parse(<string>this.persistedData[key]);\n } catch {\n return (this.persistedData[key] as T) ?? null;\n }\n }\n\n removeItem(key: string): void {\n const data = this.persistedData;\n delete data[key];\n\n this.persistData(data);\n }\n}\n","import { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdCookieStrategy } from './cookie-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../../persistence-config.token';\nimport { QdPersistenceConfig } from '../../model/persistence-config';\nimport { QdPersistScope } from '../../model/persistence-types';\nimport { QdPersistStrategy } from '../persist-strategy';\n\n@Injectable()\nexport class QdCookieStrategyFactory {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n getCookieStrategy(scope: QdPersistScope): QdPersistStrategy {\n return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);\n }\n\n private getCookieName(scope: QdPersistScope): string {\n switch (scope) {\n case 'bazg':\n return 'QD-BAZG';\n case 'application':\n return `QD-APPLICATION_${this.config.applicationIdentifier}`;\n case 'private':\n return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { QdPersistScope } from '../model/persistence-types';\nimport { QdPersistStrategy } from './persist-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../persistence-config.token';\nimport { QdPersistenceConfig } from '../model/persistence-config';\nimport { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';\n\n@Injectable()\nexport class QdStrategyResolverService {\n constructor(\n @Inject(QD_PERSISTENCE_CONFIG) private config: QdPersistenceConfig,\n private cookieStrategyFactory: QdCookieStrategyFactory\n ) {}\n\n resolve(scope: QdPersistScope): QdPersistStrategy {\n /* istanbul ignore next (remove comment when another strategy is added) */\n switch (this.config.persistStrategy) {\n case 'cookie':\n default:\n return this.cookieStrategyFactory.getCookieStrategy(scope);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdPersistScope } from './model/persistence-types';\n\n@Injectable()\nexport class QdPersistenceService {\n constructor(private strategyResolverService: QdStrategyResolverService) {}\n\n write<T>(key: string, data: T, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.setItem<T>(key, data);\n }\n\n read<T>(key: string, scope: QdPersistScope = 'bazg'): T | null {\n const strategy = this.strategyResolverService.resolve(scope);\n\n return strategy.getItem<T>(key);\n }\n\n delete(key: string, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.removeItem(key);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\nimport { QD_PERSISTENCE_CONFIG } from './persistence-config.token';\nimport { QdPersistenceService } from './persistence.service';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdCookieStrategyFactory } from './strategy/cookie-strategy/cookie-strategy.factory';\n\n@NgModule({\n providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]\n})\nexport class QdPersistenceModule {\n static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule> {\n return {\n ngModule: QdPersistenceModule,\n providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.QdCookieStrategyFactory","i1.QdStrategyResolverService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"quadrel-enterprise-ui-persistence.mjs","sources":["../../../../libs/qd-persistence/src/lib/persistence-config.token.ts","../../../../libs/qd-persistence/src/lib/utils/stringifyer.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.ts","../../../../libs/qd-persistence/src/lib/strategy/cookie-strategy/cookie-strategy.factory.ts","../../../../libs/qd-persistence/src/lib/strategy/strategy-resolver.service.ts","../../../../libs/qd-persistence/src/lib/persistence.service.ts","../../../../libs/qd-persistence/src/lib/persistence.module.ts","../../../../libs/qd-persistence/src/quadrel-enterprise-ui-persistence.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\n\nexport const QD_PERSISTENCE_CONFIG = new InjectionToken<QdPersistenceConfig>('QD_PERSISTENCE_CONFIG');\n","export class QdStringifyer {\n static tryStringify<T>(value: T): string {\n let data = '';\n\n if (['object', 'boolean', 'number'].includes(typeof value)) data = JSON.stringify(value);\n\n if (typeof value === 'string') data = value;\n\n return data;\n }\n}\n","import { Inject, Optional, DOCUMENT } from '@angular/core';\n\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdStringifyer } from '../../utils/stringifyer';\nimport { QdPersistStrategy } from '../persist-strategy';\n\ntype QdPersistedData = { [key: string]: unknown };\n\n/**\n * This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.\n * In contrast, local storage would make the data only visible for a specific subdomain.\n * If this strategy is used locally, the cookies will be saved for the domain 'localhost'.\n * For the future another strategy is planned that saves the data in a backend service and that will also allow data\n * to be shared between websites with different hosts.\n */\nexport class QdCookieStrategy implements QdPersistStrategy {\n private cookieExpiresDays = 365 * 10;\n\n constructor(\n private cookieName: string,\n private cookieService: CookieService,\n @Optional() @Inject(DOCUMENT) private document?: Document\n ) {}\n\n private get cookieDomain(): string {\n if (this.document?.location?.hostname === 'localhost') return 'localhost';\n return '.bazg.admin.ch';\n }\n\n get persistedData(): QdPersistedData {\n try {\n const parsed = JSON.parse(this.cookieService.get(this.cookieName));\n\n if (typeof parsed !== 'object' || Array.isArray(parsed)) return {};\n\n return parsed ?? {};\n } catch {\n return {};\n }\n }\n\n private persistData(data: QdPersistedData) {\n this.cookieService.set(this.cookieName, JSON.stringify(data), this.cookieExpiresDays, '/', this.cookieDomain);\n }\n\n setItem<T>(key: string, value: T): void {\n const data = this.persistedData;\n data[key] = QdStringifyer.tryStringify<T>(value);\n\n this.persistData(data);\n }\n\n getItem<T>(key: string): T | null {\n try {\n return JSON.parse(<string>this.persistedData[key]);\n } catch {\n return (this.persistedData[key] as T) ?? null;\n }\n }\n\n removeItem(key: string): void {\n const data = this.persistedData;\n delete data[key];\n\n this.persistData(data);\n }\n}\n","import { Injectable, DOCUMENT, inject } from '@angular/core';\n\nimport { CookieService } from 'ngx-cookie-service';\nimport { QdCookieStrategy } from './cookie-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../../persistence-config.token';\nimport { QdPersistenceConfig } from '../../model/persistence-config';\nimport { QdPersistScope } from '../../model/persistence-types';\nimport { QdPersistStrategy } from '../persist-strategy';\n\n@Injectable()\nexport class QdCookieStrategyFactory {\n private config = inject<QdPersistenceConfig>(QD_PERSISTENCE_CONFIG);\n private cookieService = inject(CookieService);\n private document = inject<Document>(DOCUMENT, { optional: true });\n\n getCookieStrategy(scope: QdPersistScope): QdPersistStrategy {\n return new QdCookieStrategy(this.getCookieName(scope), this.cookieService, document);\n }\n\n private getCookieName(scope: QdPersistScope): string {\n switch (scope) {\n case 'bazg':\n return 'QD-BAZG';\n case 'application':\n return `QD-APPLICATION_${this.config.applicationIdentifier}`;\n case 'private':\n return `QD-PRIVATE_${this.config.applicationIdentifier}_${this.config.frontendIdentifier}`;\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { QdPersistScope } from '../model/persistence-types';\nimport { QdPersistStrategy } from './persist-strategy';\nimport { QD_PERSISTENCE_CONFIG } from '../persistence-config.token';\nimport { QdPersistenceConfig } from '../model/persistence-config';\nimport { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';\n\n@Injectable()\nexport class QdStrategyResolverService {\n private config = inject<QdPersistenceConfig>(QD_PERSISTENCE_CONFIG);\n private cookieStrategyFactory = inject(QdCookieStrategyFactory);\n\n resolve(scope: QdPersistScope): QdPersistStrategy {\n /* istanbul ignore next (remove comment when another strategy is added) */\n switch (this.config.persistStrategy) {\n case 'cookie':\n default:\n return this.cookieStrategyFactory.getCookieStrategy(scope);\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdPersistScope } from './model/persistence-types';\n\n@Injectable()\nexport class QdPersistenceService {\n private strategyResolverService = inject(QdStrategyResolverService);\n\n write<T>(key: string, data: T, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.setItem<T>(key, data);\n }\n\n read<T>(key: string, scope: QdPersistScope = 'bazg'): T | null {\n const strategy = this.strategyResolverService.resolve(scope);\n\n return strategy.getItem<T>(key);\n }\n\n delete(key: string, scope: QdPersistScope = 'bazg'): void {\n const strategy = this.strategyResolverService.resolve(scope);\n\n strategy.removeItem(key);\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { QdPersistenceConfig } from './model/persistence-config';\nimport { QD_PERSISTENCE_CONFIG } from './persistence-config.token';\nimport { QdPersistenceService } from './persistence.service';\nimport { QdStrategyResolverService } from './strategy/strategy-resolver.service';\nimport { QdCookieStrategyFactory } from './strategy/cookie-strategy/cookie-strategy.factory';\n\n@NgModule({\n providers: [QdPersistenceService, QdStrategyResolverService, QdCookieStrategyFactory]\n})\nexport class QdPersistenceModule {\n static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule> {\n return {\n ngModule: QdPersistenceModule,\n providers: [{ provide: QD_PERSISTENCE_CONFIG, useValue: config }]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAGO,MAAM,qBAAqB,GAAG,IAAI,cAAc,CAAsB,uBAAuB,CAAC;;MCHxF,aAAa,CAAA;IACxB,OAAO,YAAY,CAAI,KAAQ,EAAA;QAC7B,IAAI,IAAI,GAAG,EAAE;AAEb,QAAA,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC;AAAE,YAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAExF,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,IAAI,GAAG,KAAK;AAE3C,QAAA,OAAO,IAAI;IACb;AACD;;ACFD;;;;;;AAMG;AACH,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB,CAAA;AAIjB,IAAA,UAAA;AACA,IAAA,aAAA;AAC8B,IAAA,QAAA;AALhC,IAAA,iBAAiB,GAAG,GAAG,GAAG,EAAE;AAEpC,IAAA,WAAA,CACU,UAAkB,EAClB,aAA4B,EACE,QAAmB,EAAA;QAFjD,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,aAAa,GAAb,aAAa;QACiB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IAC7C;AAEH,IAAA,IAAY,YAAY,GAAA;QACtB,IAAI,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK,WAAW;AAAE,YAAA,OAAO,WAAW;AACzE,QAAA,OAAO,gBAAgB;IACzB;AAEA,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAElE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AAAE,gBAAA,OAAO,EAAE;YAElE,OAAO,MAAM,IAAI,EAAE;QACrB;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,EAAE;QACX;IACF;AAEQ,IAAA,WAAW,CAAC,IAAqB,EAAA;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC;IAC/G;IAEA,OAAO,CAAI,GAAW,EAAE,KAAQ,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;QAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,YAAY,CAAI,KAAK,CAAC;AAEhD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACxB;AAEA,IAAA,OAAO,CAAI,GAAW,EAAA;AACpB,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAS,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACpD;AAAE,QAAA,MAAM;YACN,OAAQ,IAAI,CAAC,aAAa,CAAC,GAAG,CAAO,IAAI,IAAI;QAC/C;IACF;AAEA,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa;AAC/B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC;AAEhB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACxB;CACD;AAnDY,gBAAgB,GAAA,UAAA,CAAA;IAMxB,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAAE,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;6CADN,aAAa;QACa,QAAQ,CAAA;AANhD,CAAA,EAAA,gBAAgB,CAmD5B;;MCxDY,uBAAuB,CAAA;AAC1B,IAAA,MAAM,GAAG,MAAM,CAAsB,qBAAqB,CAAC;AAC3D,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACrC,QAAQ,GAAG,MAAM,CAAW,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEjE,IAAA,iBAAiB,CAAC,KAAqB,EAAA;AACrC,QAAA,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC;IACtF;AAEQ,IAAA,aAAa,CAAC,KAAqB,EAAA;QACzC,QAAQ,KAAK;AACX,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,SAAS;AAClB,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,kBAAkB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAC9D,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,CAAA,WAAA,EAAc,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;;IAEhG;wGAlBW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAvB,uBAAuB,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;MCDY,yBAAyB,CAAA;AAC5B,IAAA,MAAM,GAAG,MAAM,CAAsB,qBAAqB,CAAC;AAC3D,IAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAE/D,IAAA,OAAO,CAAC,KAAqB,EAAA;;AAE3B,QAAA,QAAQ,IAAI,CAAC,MAAM,CAAC,eAAe;AACjC,YAAA,KAAK,QAAQ;AACb,YAAA;gBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC;;IAEhE;wGAXW,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAzB,yBAAyB,EAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC;;;MCFY,oBAAoB,CAAA;AACvB,IAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC;AAEnE,IAAA,KAAK,CAAI,GAAW,EAAE,IAAO,EAAE,QAAwB,MAAM,EAAA;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;AAE5D,QAAA,QAAQ,CAAC,OAAO,CAAI,GAAG,EAAE,IAAI,CAAC;IAChC;AAEA,IAAA,IAAI,CAAI,GAAW,EAAE,KAAA,GAAwB,MAAM,EAAA;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;AAE5D,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAI,GAAG,CAAC;IACjC;AAEA,IAAA,MAAM,CAAC,GAAW,EAAE,KAAA,GAAwB,MAAM,EAAA;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC;AAE5D,QAAA,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;IAC1B;wGAnBW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAApB,oBAAoB,EAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;MCMY,mBAAmB,CAAA;IAC9B,OAAO,OAAO,CAAC,MAA2B,EAAA;QACxC,OAAO;AACL,YAAA,QAAQ,EAAE,mBAAmB;YAC7B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE;SACjE;IACH;wGANW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAnB,mBAAmB,EAAA,CAAA;AAAnB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,aAFnB,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB,CAAC,EAAA,CAAA;;4FAE1E,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,EAAE,uBAAuB;AACrF,iBAAA;;;ACTD;;AAEG;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ModuleWithProviders } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
type QdPersistScope = 'private' | 'application' | 'bazg';
|
|
5
|
+
type QdPersistStrategy = 'cookie';
|
|
6
|
+
|
|
7
|
+
interface QdPersistenceConfig {
|
|
8
|
+
/**
|
|
9
|
+
* Application Identifier
|
|
10
|
+
* @example Passar
|
|
11
|
+
*/
|
|
12
|
+
applicationIdentifier: string;
|
|
13
|
+
/**
|
|
14
|
+
* Frontend Identifier (Unique identifier for a frontend project)
|
|
15
|
+
* @example Warenverkehr
|
|
16
|
+
*/
|
|
17
|
+
frontendIdentifier: string;
|
|
18
|
+
/**
|
|
19
|
+
* Persist Strategy
|
|
20
|
+
* * @default: cookie
|
|
21
|
+
*/
|
|
22
|
+
persistStrategy?: QdPersistStrategy;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
declare class QdPersistenceModule {
|
|
26
|
+
static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule>;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceModule, never>;
|
|
28
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<QdPersistenceModule, never, never, never>;
|
|
29
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<QdPersistenceModule>;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
declare class QdPersistenceService {
|
|
33
|
+
private strategyResolverService;
|
|
34
|
+
write<T>(key: string, data: T, scope?: QdPersistScope): void;
|
|
35
|
+
read<T>(key: string, scope?: QdPersistScope): T | null;
|
|
36
|
+
delete(key: string, scope?: QdPersistScope): void;
|
|
37
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceService, never>;
|
|
38
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<QdPersistenceService>;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { QdPersistenceModule, QdPersistenceService };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quadrel-enterprise-ui/persistence",
|
|
3
|
-
"version": "19.0.
|
|
3
|
+
"version": "19.0.15-beta.53.1",
|
|
4
4
|
"description": "Library for the persistence of data",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^19.2.9",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"tslib": "^2.6.3",
|
|
11
|
-
"ngx-cookie-service": "^
|
|
11
|
+
"ngx-cookie-service": "^19.1.2"
|
|
12
12
|
},
|
|
13
13
|
"jestSonar": {
|
|
14
14
|
"reportPath": "../../coverage/libs/qd-persistence/",
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { QdPersistStrategy } from './persistence-types';
|
|
2
|
-
export interface QdPersistenceConfig {
|
|
3
|
-
/**
|
|
4
|
-
* Application Identifier
|
|
5
|
-
* @example Passar
|
|
6
|
-
*/
|
|
7
|
-
applicationIdentifier: string;
|
|
8
|
-
/**
|
|
9
|
-
* Frontend Identifier (Unique identifier for a frontend project)
|
|
10
|
-
* @example Warenverkehr
|
|
11
|
-
*/
|
|
12
|
-
frontendIdentifier: string;
|
|
13
|
-
/**
|
|
14
|
-
* Persist Strategy
|
|
15
|
-
* * @default: cookie
|
|
16
|
-
*/
|
|
17
|
-
persistStrategy?: QdPersistStrategy;
|
|
18
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { ModuleWithProviders } from '@angular/core';
|
|
2
|
-
import { QdPersistenceConfig } from './model/persistence-config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class QdPersistenceModule {
|
|
5
|
-
static forRoot(config: QdPersistenceConfig): ModuleWithProviders<QdPersistenceModule>;
|
|
6
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceModule, never>;
|
|
7
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<QdPersistenceModule, never, never, never>;
|
|
8
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<QdPersistenceModule>;
|
|
9
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { QdStrategyResolverService } from './strategy/strategy-resolver.service';
|
|
2
|
-
import { QdPersistScope } from './model/persistence-types';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class QdPersistenceService {
|
|
5
|
-
private strategyResolverService;
|
|
6
|
-
constructor(strategyResolverService: QdStrategyResolverService);
|
|
7
|
-
write<T>(key: string, data: T, scope?: QdPersistScope): void;
|
|
8
|
-
read<T>(key: string, scope?: QdPersistScope): T | null;
|
|
9
|
-
delete(key: string, scope?: QdPersistScope): void;
|
|
10
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<QdPersistenceService, never>;
|
|
11
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<QdPersistenceService>;
|
|
12
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { CookieService } from 'ngx-cookie-service';
|
|
2
|
-
import { QdPersistStrategy } from '../persist-strategy';
|
|
3
|
-
type QdPersistedData = {
|
|
4
|
-
[key: string]: unknown;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* This strategy uses cookies to make the data visible between different subdomains of the host 'bazg.admin.ch'.
|
|
8
|
-
* In contrast, local storage would make the data only visible for a specific subdomain.
|
|
9
|
-
* If this strategy is used locally, the cookies will be saved for the domain 'localhost'.
|
|
10
|
-
* For the future another strategy is planned that saves the data in a backend service and that will also allow data
|
|
11
|
-
* to be shared between websites with different hosts.
|
|
12
|
-
*/
|
|
13
|
-
export declare class QdCookieStrategy implements QdPersistStrategy {
|
|
14
|
-
private cookieName;
|
|
15
|
-
private cookieService;
|
|
16
|
-
private document?;
|
|
17
|
-
private cookieExpiresDays;
|
|
18
|
-
constructor(cookieName: string, cookieService: CookieService, document?: Document | undefined);
|
|
19
|
-
private get cookieDomain();
|
|
20
|
-
get persistedData(): QdPersistedData;
|
|
21
|
-
private persistData;
|
|
22
|
-
setItem<T>(key: string, value: T): void;
|
|
23
|
-
getItem<T>(key: string): T | null;
|
|
24
|
-
removeItem(key: string): void;
|
|
25
|
-
}
|
|
26
|
-
export {};
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { CookieService } from 'ngx-cookie-service';
|
|
2
|
-
import { QdPersistenceConfig } from '../../model/persistence-config';
|
|
3
|
-
import { QdPersistScope } from '../../model/persistence-types';
|
|
4
|
-
import { QdPersistStrategy } from '../persist-strategy';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class QdCookieStrategyFactory {
|
|
7
|
-
private config;
|
|
8
|
-
private cookieService;
|
|
9
|
-
private document?;
|
|
10
|
-
constructor(config: QdPersistenceConfig, cookieService: CookieService, document?: Document | undefined);
|
|
11
|
-
getCookieStrategy(scope: QdPersistScope): QdPersistStrategy;
|
|
12
|
-
private getCookieName;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<QdCookieStrategyFactory, [null, null, { optional: true; }]>;
|
|
14
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<QdCookieStrategyFactory>;
|
|
15
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A strategy for persisting data.
|
|
3
|
-
*/
|
|
4
|
-
export interface QdPersistStrategy {
|
|
5
|
-
/**
|
|
6
|
-
* Set data.
|
|
7
|
-
* @param key Key for the data
|
|
8
|
-
* @param value The data itself
|
|
9
|
-
*/
|
|
10
|
-
setItem<T>(key: string, value: T): void;
|
|
11
|
-
/**
|
|
12
|
-
* Gets data for a specific key.
|
|
13
|
-
* @param key Key of the data
|
|
14
|
-
* @returns Returns the data or null if not found.
|
|
15
|
-
*/
|
|
16
|
-
getItem<T>(key: string): T | null;
|
|
17
|
-
/**
|
|
18
|
-
* Removes the entry with the given key.
|
|
19
|
-
* @param key Key of the entry
|
|
20
|
-
*/
|
|
21
|
-
removeItem(key: string): void;
|
|
22
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { QdPersistScope } from '../model/persistence-types';
|
|
2
|
-
import { QdPersistStrategy } from './persist-strategy';
|
|
3
|
-
import { QdPersistenceConfig } from '../model/persistence-config';
|
|
4
|
-
import { QdCookieStrategyFactory } from './cookie-strategy/cookie-strategy.factory';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export declare class QdStrategyResolverService {
|
|
7
|
-
private config;
|
|
8
|
-
private cookieStrategyFactory;
|
|
9
|
-
constructor(config: QdPersistenceConfig, cookieStrategyFactory: QdCookieStrategyFactory);
|
|
10
|
-
resolve(scope: QdPersistScope): QdPersistStrategy;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<QdStrategyResolverService, never>;
|
|
12
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<QdStrategyResolverService>;
|
|
13
|
-
}
|
package/public-api.d.ts
DELETED