@esfaenza/extensions 11.2.11 → 11.2.15
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/bundles/esfaenza-extensions.umd.js +499 -63
- package/bundles/esfaenza-extensions.umd.js.map +1 -1
- package/bundles/esfaenza-extensions.umd.min.js +16 -1
- package/bundles/esfaenza-extensions.umd.min.js.map +1 -1
- package/esfaenza-extensions.d.ts +2 -0
- package/esfaenza-extensions.metadata.json +1 -1
- package/esm2015/esfaenza-extensions.js +3 -1
- package/esm2015/lib/models/ExtensionsModuleConfig.js +1 -1
- package/esm2015/lib/models/providers/base/BaseStorageProvider.js +11 -0
- package/esm2015/lib/models/providers/implementation/DefaultStorageProvider.js +68 -0
- package/esm2015/lib/models/session/base/BaseSessionRetriever.js +6 -0
- package/esm2015/lib/models/session/implementation/DefaultSessionRetriever.js +26 -0
- package/esm2015/lib/modules/extensions.full.module.js +11 -2
- package/esm2015/lib/services/extensions.hashing.service.js +14 -21
- package/esm2015/lib/services/extensions.storage.service.js +47 -39
- package/esm2015/public-api.js +3 -1
- package/fesm2015/esfaenza-extensions.js +170 -60
- package/fesm2015/esfaenza-extensions.js.map +1 -1
- package/lib/models/ExtensionsModuleConfig.d.ts +11 -0
- package/lib/models/providers/base/BaseStorageProvider.d.ts +51 -0
- package/lib/models/providers/implementation/DefaultStorageProvider.d.ts +15 -0
- package/lib/models/session/base/BaseSessionRetriever.d.ts +11 -0
- package/lib/models/session/implementation/DefaultSessionRetriever.d.ts +18 -0
- package/lib/modules/extensions.full.module.d.ts +2 -0
- package/lib/services/extensions.hashing.service.d.ts +3 -7
- package/lib/services/extensions.storage.service.d.ts +18 -16
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { Type } from "@angular/core";
|
|
2
|
+
import { BaseStorageProvider } from "./providers/base/BaseStorageProvider";
|
|
3
|
+
import { BaseSessionRetriever } from "./session/base/BaseSessionRetriever";
|
|
1
4
|
/**
|
|
2
5
|
* Classe di configurazione per il modulo di estensione
|
|
3
6
|
*/
|
|
@@ -18,4 +21,12 @@ export declare class ExtensionsModuleConfig {
|
|
|
18
21
|
* Prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot'
|
|
19
22
|
*/
|
|
20
23
|
appsearch_prefix: string;
|
|
24
|
+
/**
|
|
25
|
+
* Classe che si deve occupare per generare un ID univoco di sessione in base al quale verranno salvate le preferenze
|
|
26
|
+
*/
|
|
27
|
+
sessionRetriever?: Type<BaseSessionRetriever>;
|
|
28
|
+
/**
|
|
29
|
+
* Classe che si deve occupare di salvare fisicamente le preferenze su un supporto fisico, sia esso un DB, un localStorage o whatever
|
|
30
|
+
*/
|
|
31
|
+
storageProvider?: Type<BaseStorageProvider>;
|
|
21
32
|
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
/**
|
|
3
|
+
* Classe che gestisce la scrittura delle informazioni nello store locale.
|
|
4
|
+
* Questo store locale potrebbe essere il localStorage (implementazione di default data dal **DefaultStorageProvider**),
|
|
5
|
+
* oppure un'implementazione custom facente capo a un DB esterno.
|
|
6
|
+
*
|
|
7
|
+
* In questo ultimo caso però sarà necessario implementarsi un proprio **BaseSessionRetriever**
|
|
8
|
+
* che generi una chiave univoca di sessione su cui tutte le operazioni di questa classe saranno eseguite
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class BaseStorageProvider {
|
|
11
|
+
/**
|
|
12
|
+
* Imposta un oggetto data una chiave
|
|
13
|
+
*
|
|
14
|
+
* @param {string} identity Chiave che rappresenta la sessione per cui questi dati devono essere gestiti
|
|
15
|
+
* @param {string} key Chiave per cui impostare il valore serializzato dell'oggetto **value**
|
|
16
|
+
* @param {T} value Valore da serializzare e salvare
|
|
17
|
+
*
|
|
18
|
+
* @returns {Observable<boolean>} Observable che viene risolto quando l'operazione di salvataggio termina.
|
|
19
|
+
* Restituisce true se l'operazione è andata a buon fine, false altrimenti
|
|
20
|
+
*/
|
|
21
|
+
abstract setItem<T>(identity: string, key: string, value: T): Observable<boolean>;
|
|
22
|
+
/**
|
|
23
|
+
* Risolve un oggetto data una chiave
|
|
24
|
+
*
|
|
25
|
+
* @param {string} identity Chiave che rappresenta la sessione per cui questi dati devono essere gestiti
|
|
26
|
+
* @param {string} key Chiave per cui risolvere e recuperare l'oggetto
|
|
27
|
+
*
|
|
28
|
+
* @returns {Observable<T>} Observable che viene risolto quando l'oggetto viene trovato e recuperato.
|
|
29
|
+
* Restituisce "null" se l'oggetto non viene trovato o se ci sono problemi a recuperarlo
|
|
30
|
+
*/
|
|
31
|
+
abstract getItem<T>(identity: string, key: string): Observable<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Rimuove un oggetto salvato con una specifica chiave
|
|
34
|
+
*
|
|
35
|
+
* @param {string} identity Chiave che rappresenta la sessione per cui questi dati devono essere gestiti
|
|
36
|
+
* @param {string} key Chiave per cui risolvere e eliminare l'oggetto
|
|
37
|
+
*
|
|
38
|
+
* @returns {Observable<T>} Observable che viene risolto quando l'operazione di eliminazione termina.
|
|
39
|
+
* Restituisce true se l'operazione è andata a buon fine, false altrimenti
|
|
40
|
+
*/
|
|
41
|
+
abstract removeItem(identity: string, key: string): Observable<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Ripulisce completamente lo store locale
|
|
44
|
+
*
|
|
45
|
+
* @param {string} identity Chiave che rappresenta la sessione per cui questi dati devono essere gestiti
|
|
46
|
+
*
|
|
47
|
+
* @returns {Observable<boolean>} Observable che viene risolto quando l'operazione di pulizia termina.
|
|
48
|
+
* Restituisce true se l'operazione è andata a buon fine, false altrimenti
|
|
49
|
+
*/
|
|
50
|
+
abstract clear(identity: string): Observable<boolean>;
|
|
51
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
import { BaseStorageProvider } from "../base/BaseStorageProvider";
|
|
3
|
+
/** Implementazione di default per la classe **BaseStorageProvider** */
|
|
4
|
+
export declare class DefaultStorageProvider extends BaseStorageProvider {
|
|
5
|
+
/** @ignore Costruttore */
|
|
6
|
+
constructor();
|
|
7
|
+
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
8
|
+
setItem<T>(identity: string, key: string, value: T): Observable<boolean>;
|
|
9
|
+
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
10
|
+
getItem<T>(identity: string, key: string): Observable<T>;
|
|
11
|
+
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
12
|
+
removeItem(identity: string, key: string): Observable<boolean>;
|
|
13
|
+
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
14
|
+
clear(identity: string): Observable<boolean>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
|
|
3
|
+
*/
|
|
4
|
+
export declare abstract class BaseSessionRetriever {
|
|
5
|
+
/**
|
|
6
|
+
* Ottiene un ID sessione
|
|
7
|
+
*
|
|
8
|
+
* @returns {string} ID sessione
|
|
9
|
+
*/
|
|
10
|
+
abstract getSessionKey(): string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseSessionRetriever } from "../base/BaseSessionRetriever";
|
|
2
|
+
/**
|
|
3
|
+
* Implementazione di default per la classe **BaseSessionRetriever**
|
|
4
|
+
*/
|
|
5
|
+
export declare class DefaultSessionRetriever extends BaseSessionRetriever {
|
|
6
|
+
/**
|
|
7
|
+
* Costruttore
|
|
8
|
+
*
|
|
9
|
+
* @ignore
|
|
10
|
+
*/
|
|
11
|
+
constructor();
|
|
12
|
+
/**
|
|
13
|
+
* Ottiene un ID sessione
|
|
14
|
+
*
|
|
15
|
+
* @returns {string} ID sessione
|
|
16
|
+
*/
|
|
17
|
+
getSessionKey(): string;
|
|
18
|
+
}
|
|
@@ -9,6 +9,8 @@ import { ExtensionsModuleConfig } from '../models/ExtensionsModuleConfig';
|
|
|
9
9
|
* MessageService,
|
|
10
10
|
* UtilityService,
|
|
11
11
|
* StorageService,
|
|
12
|
+
*
|
|
13
|
+
* con eventuali provider che utilizzano
|
|
12
14
|
*/
|
|
13
15
|
export declare class FullExtensionsModule {
|
|
14
16
|
static forRoot(config?: ExtensionsModuleConfig): ModuleWithProviders<FullExtensionsModule>;
|
|
@@ -19,17 +19,13 @@ export declare class HashingService {
|
|
|
19
19
|
*/
|
|
20
20
|
hashObject(o: any, level?: number, navigateFullDepth?: boolean, precise?: boolean): string;
|
|
21
21
|
/**
|
|
22
|
-
* Hash più semplice e più veloce dell'md5, ma meno sicuro
|
|
22
|
+
* Hash più semplice e più veloce dell'md5, ma meno sicuro
|
|
23
23
|
*
|
|
24
|
-
*
|
|
25
|
-
*/
|
|
26
|
-
private simpleHash;
|
|
27
|
-
/**
|
|
28
|
-
* Hash più semplice e più veloce dell'md5, ma meno sicuro... vediamo come va
|
|
24
|
+
* Vedi https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
|
|
29
25
|
*
|
|
30
26
|
* @param {string} str Stringa di cui calcolare l'hash
|
|
31
27
|
*/
|
|
32
|
-
private
|
|
28
|
+
private simpleHash;
|
|
33
29
|
/**
|
|
34
30
|
* Blacklist dei tipi da ignorare quando si effettua l'hashing degli oggetti
|
|
35
31
|
*/
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
+
import { BaseStorageProvider } from "../models/providers/base/BaseStorageProvider";
|
|
2
|
+
import { BaseSessionRetriever } from "../models/session/base/BaseSessionRetriever";
|
|
3
|
+
import { Observable } from "rxjs";
|
|
1
4
|
/**
|
|
2
|
-
* Service che fornisce funzionalità di base per storicizzazione e recupero oggetti
|
|
5
|
+
* Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dallo Storage Locale
|
|
3
6
|
*/
|
|
4
7
|
export declare class StorageService {
|
|
5
8
|
private APPSEARCH_PREFIX;
|
|
9
|
+
private _session;
|
|
10
|
+
private _storage;
|
|
6
11
|
/**
|
|
7
12
|
* Costruttore
|
|
8
13
|
*
|
|
9
14
|
* @ignore
|
|
10
15
|
*/
|
|
11
|
-
constructor(APPSEARCH_PREFIX: string);
|
|
16
|
+
constructor(APPSEARCH_PREFIX: string, _session: BaseSessionRetriever, _storage: BaseStorageProvider);
|
|
12
17
|
/**
|
|
13
18
|
* Inserisce un oggetto che funga da contenitore di oggetti nel local storage, ripulendone gli oggetti (supponendo che sia una view di ricerca) e marcandolo come
|
|
14
19
|
* salvato, in modo che quando viene recuperato il sistema non pensi che sia un oggetto vuoto ma che sappia che gli oggetti son stati ripuliti per risparmiare spazio
|
|
@@ -16,28 +21,25 @@ export declare class StorageService {
|
|
|
16
21
|
* @param {string} storeName Chiave del localStorage in cui storicizzare l'oggetto **itemsContainer**
|
|
17
22
|
* @param {{ items: any[] }} itemsContainer Oggetto da storicizzare
|
|
18
23
|
*/
|
|
19
|
-
setItem(storeName: string,
|
|
20
|
-
items: any[];
|
|
21
|
-
}): void;
|
|
24
|
+
setItem<T>(storeName: string, item: T): Observable<boolean>;
|
|
22
25
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* @param {string} storeName Chiave del localStorage in cui storicizzare l'oggetto **item**
|
|
26
|
-
* @param {any} item Oggetto da storicizzare
|
|
27
|
-
*/
|
|
28
|
-
setAny(storeName: string, item: any): void;
|
|
29
|
-
/**
|
|
30
|
-
* Recupera un oggetto dal localStorage
|
|
26
|
+
* Recupera un oggetto dallo Storage Locale
|
|
31
27
|
*
|
|
32
28
|
* @param {string} storeName Chiave del localStorage da cui recuperare l'oggetto
|
|
33
29
|
*
|
|
34
30
|
* @returns {any} Oggetto recuperato e deserializzato
|
|
35
31
|
*/
|
|
36
|
-
|
|
32
|
+
getItem<T>(storeName: string): Observable<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Ripulisce lo Storage Locale
|
|
35
|
+
*
|
|
36
|
+
* @param {string} storeName Chiave del localStorage da ripulire
|
|
37
|
+
*/
|
|
38
|
+
removeItem(storeName: string): Observable<boolean>;
|
|
37
39
|
/**
|
|
38
|
-
* Ripulisce
|
|
40
|
+
* Ripulisce lo Storage Locale di ogni cosa salvata
|
|
39
41
|
*
|
|
40
42
|
* @param {string} storeName Chiave del localStorage da ripulire
|
|
41
43
|
*/
|
|
42
|
-
clear(
|
|
44
|
+
clear(): Observable<boolean>;
|
|
43
45
|
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -11,3 +11,5 @@ export * from './lib/tokens';
|
|
|
11
11
|
export * from './lib/models/CallResult';
|
|
12
12
|
export * from './lib/models/CsvHeaders';
|
|
13
13
|
export * from './lib/models/GenericItem';
|
|
14
|
+
export * from './lib/models/providers/base/BaseStorageProvider';
|
|
15
|
+
export * from './lib/models/session/base/BaseSessionRetriever';
|