@jsverse/transloco-persist-translations 7.0.0 → 8.0.0
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/LICENSE +1 -1
- package/README.md +1 -1
- package/esm2022/lib/helpers.mjs +5 -5
- package/esm2022/lib/transloco-persist-translations.config.mjs +2 -2
- package/esm2022/lib/transloco-persist-translations.providers.mjs +1 -1
- package/esm2022/lib/transloco-persist-translations.service.mjs +5 -5
- package/fesm2022/jsverse-transloco-persist-translations.mjs +8 -7
- package/fesm2022/jsverse-transloco-persist-translations.mjs.map +1 -1
- package/lib/helpers.d.ts +2 -2
- package/package.json +12 -11
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2019-
|
|
3
|
+
Copyright (c) 2019-2024 Netanel Basal, Shahar Kazaz, and Itay Oded.
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
# Transloco Persist Translations
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Discover more about this plugin and how it can enhance your workflow in the [official Transloco documentation](https://jsverse.gitbook.io/transloco/plugins/persist-translations).
|
package/esm2022/lib/helpers.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { isFunction } from '@jsverse/
|
|
3
|
-
export function isPromise(
|
|
4
|
-
return
|
|
1
|
+
import { from, isObservable, of } from 'rxjs';
|
|
2
|
+
import { isFunction } from '@jsverse/utils';
|
|
3
|
+
export function isPromise(value) {
|
|
4
|
+
return isFunction(value?.then);
|
|
5
5
|
}
|
|
6
6
|
export function observify(asyncOrValue) {
|
|
7
7
|
if (isPromise(asyncOrValue) || isObservable(asyncOrValue)) {
|
|
@@ -9,4 +9,4 @@ export function observify(asyncOrValue) {
|
|
|
9
9
|
}
|
|
10
10
|
return of(asyncOrValue);
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zL3NyYy9saWIvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBVTtJQUNsQyxPQUFPLFVBQVUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLFlBQWdEO0lBRWhELElBQUksU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZnJvbSwgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ0Bqc3ZlcnNlL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvbWlzZSh2YWx1ZTogYW55KTogdmFsdWUgaXMgUHJvbWlzZUxpa2U8dW5rbm93bj4ge1xuICByZXR1cm4gaXNGdW5jdGlvbih2YWx1ZT8udGhlbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvYnNlcnZpZnk8VD4oXG4gIGFzeW5jT3JWYWx1ZTogUHJvbWlzZUxpa2U8VD4gfCBPYnNlcnZhYmxlPFQ+IHwgVCxcbik6IE9ic2VydmFibGU8VD4ge1xuICBpZiAoaXNQcm9taXNlKGFzeW5jT3JWYWx1ZSkgfHwgaXNPYnNlcnZhYmxlKGFzeW5jT3JWYWx1ZSkpIHtcbiAgICByZXR1cm4gZnJvbShhc3luY09yVmFsdWUpO1xuICB9XG5cbiAgcmV0dXJuIG9mKGFzeW5jT3JWYWx1ZSk7XG59XG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InjectionToken, } from '@angular/core';
|
|
2
|
-
const dayInMilliseconds =
|
|
2
|
+
const dayInMilliseconds = 86_400;
|
|
3
3
|
export const defaultConfig = {
|
|
4
4
|
ttl: dayInMilliseconds,
|
|
5
5
|
storageKey: '@transloco/translations',
|
|
@@ -7,4 +7,4 @@ export const defaultConfig = {
|
|
|
7
7
|
export const TRANSLOCO_PERSIST_TRANSLATIONS_LOADER = new InjectionToken('TRANSLOCO_PERSIST_TRANSLATIONS_LOADER');
|
|
8
8
|
export const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE = new InjectionToken('The storage to use for the persistance behavior');
|
|
9
9
|
export const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG = new InjectionToken('Configuration for the storage behavior');
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zL3NyYy9saWIvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUwsY0FBYyxHQUdmLE1BQU0sZUFBZSxDQUFDO0FBcUJ2QixNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztBQUNqQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWtCO0lBQzFDLEdBQUcsRUFBRSxpQkFBaUI7SUFDdEIsVUFBVSxFQUFFLHlCQUF5QjtDQUN0QyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQ2hELElBQUksY0FBYyxDQUFrQix1Q0FBdUMsQ0FBQyxDQUFDO0FBRS9FLE1BQU0sQ0FBQyxNQUFNLHNDQUFzQyxHQUNqRCxJQUFJLGNBQWMsQ0FDaEIsaURBQWlELENBQ2xELENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSw2Q0FBNkMsR0FDeEQsSUFBSSxjQUFjLENBQWdCLHdDQUF3QyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDbGFzc1Byb3ZpZGVyLFxuICBFeGlzdGluZ1Byb3ZpZGVyLFxuICBGYWN0b3J5UHJvdmlkZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBUeXBlLFxuICBWYWx1ZVByb3ZpZGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbG9jb0xvYWRlciB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IE1heWJlQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi90cmFuc2xvY28uc3RvcmFnZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUNvbmZpZyB7XG4gIHR0bDogbnVtYmVyO1xuICBzdG9yYWdlS2V5OiBzdHJpbmc7XG59XG5cbnR5cGUgcHJvdmlkZXJWYWx1ZSA9XG4gIHwgUGljazxWYWx1ZVByb3ZpZGVyLCAndXNlVmFsdWUnPlxuICB8IFBpY2s8Q2xhc3NQcm92aWRlciwgJ3VzZUNsYXNzJz5cbiAgfCBQaWNrPEV4aXN0aW5nUHJvdmlkZXIsICd1c2VFeGlzdGluZyc+XG4gIHwgUGljazxGYWN0b3J5UHJvdmlkZXIsICd1c2VGYWN0b3J5JyB8ICdkZXBzJz47XG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnNDb25maWdcbiAgZXh0ZW5kcyBQYXJ0aWFsPFN0b3JhZ2VDb25maWc+IHtcbiAgbG9hZGVyOiBUeXBlPFRyYW5zbG9jb0xvYWRlcj47XG4gIHN0b3JhZ2U6IHByb3ZpZGVyVmFsdWU7XG59XG5cbmNvbnN0IGRheUluTWlsbGlzZWNvbmRzID0gODZfNDAwO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRDb25maWc6IFN0b3JhZ2VDb25maWcgPSB7XG4gIHR0bDogZGF5SW5NaWxsaXNlY29uZHMsXG4gIHN0b3JhZ2VLZXk6ICdAdHJhbnNsb2NvL3RyYW5zbGF0aW9ucycsXG59O1xuXG5leHBvcnQgY29uc3QgVFJBTlNMT0NPX1BFUlNJU1RfVFJBTlNMQVRJT05TX0xPQURFUiA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxUcmFuc2xvY29Mb2FkZXI+KCdUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfTE9BREVSJyk7XG5cbmV4cG9ydCBjb25zdCBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRSA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxNYXliZUFzeW5jU3RvcmFnZT4oXG4gICAgJ1RoZSBzdG9yYWdlIHRvIHVzZSBmb3IgdGhlIHBlcnNpc3RhbmNlIGJlaGF2aW9yJyxcbiAgKTtcblxuZXhwb3J0IGNvbnN0IFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19TVE9SQUdFX0NPTkZJRyA9XG4gIG5ldyBJbmplY3Rpb25Ub2tlbjxTdG9yYWdlQ29uZmlnPignQ29uZmlndXJhdGlvbiBmb3IgdGhlIHN0b3JhZ2UgYmVoYXZpb3InKTtcbiJdfQ==
|
|
@@ -19,4 +19,4 @@ export function provideTranslocoPersistTranslationsConfig(config) {
|
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zL3NyYy9saWIvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUNMLGFBQWEsRUFFYixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLDZDQUE2QyxHQUU5QyxNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE1BQU0sVUFBVSxtQ0FBbUMsQ0FBQyxFQUNsRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEdBQUcsYUFBYSxFQUNtQjtJQUNuQyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRTtRQUNyRSx5Q0FBeUMsQ0FBQyxhQUFhLENBQUM7UUFDeEQsRUFBRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxHQUFHLE9BQU8sRUFBRTtLQUNoRSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlDQUF5QyxDQUN2RCxNQUErQjtJQUUvQixPQUFPO1FBQ0wsT0FBTyxFQUFFLDZDQUE2QztRQUN0RCxRQUFRLEVBQUU7WUFDUixHQUFHLGFBQWE7WUFDaEIsR0FBRyxNQUFNO1NBQ1Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFJBTlNMT0NPX0xPQURFUiB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IFRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnMgfSBmcm9tICcuL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGRlZmF1bHRDb25maWcsXG4gIFN0b3JhZ2VDb25maWcsXG4gIFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19MT0FERVIsXG4gIFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19TVE9SQUdFLFxuICBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRV9DT05GSUcsXG4gIFRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnNDb25maWcsXG59IGZyb20gJy4vdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLmNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVHJhbnNsb2NvUGVyc2lzdFRyYW5zbGF0aW9ucyh7XG4gIHN0b3JhZ2UsXG4gIGxvYWRlcixcbiAgLi4uc3RvcmFnZUNvbmZpZ1xufTogVHJhbnNsb2NvUGVyc2lzdFRyYW5zbGF0aW9uc0NvbmZpZykge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7IHByb3ZpZGU6IFRSQU5TTE9DT19MT0FERVIsIHVzZUNsYXNzOiBUcmFuc2xvY29QZXJzaXN0VHJhbnNsYXRpb25zIH0sXG4gICAgcHJvdmlkZVRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnNDb25maWcoc3RvcmFnZUNvbmZpZyksXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfTE9BREVSLCB1c2VDbGFzczogbG9hZGVyIH0sXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRSwgLi4uc3RvcmFnZSB9LFxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY29QZXJzaXN0VHJhbnNsYXRpb25zQ29uZmlnKFxuICBjb25maWc/OiBQYXJ0aWFsPFN0b3JhZ2VDb25maWc+
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLnByb3ZpZGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zL3NyYy9saWIvdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFdEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUNMLGFBQWEsRUFFYixxQ0FBcUMsRUFDckMsc0NBQXNDLEVBQ3RDLDZDQUE2QyxHQUU5QyxNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE1BQU0sVUFBVSxtQ0FBbUMsQ0FBQyxFQUNsRCxPQUFPLEVBQ1AsTUFBTSxFQUNOLEdBQUcsYUFBYSxFQUNtQjtJQUNuQyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFBRTtRQUNyRSx5Q0FBeUMsQ0FBQyxhQUFhLENBQUM7UUFDeEQsRUFBRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRTtRQUNwRSxFQUFFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxHQUFHLE9BQU8sRUFBRTtLQUNoRSxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlDQUF5QyxDQUN2RCxNQUErQjtJQUUvQixPQUFPO1FBQ0wsT0FBTyxFQUFFLDZDQUE2QztRQUN0RCxRQUFRLEVBQUU7WUFDUixHQUFHLGFBQWE7WUFDaEIsR0FBRyxNQUFNO1NBQ1Y7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVFJBTlNMT0NPX0xPQURFUiB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IFRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnMgfSBmcm9tICcuL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIGRlZmF1bHRDb25maWcsXG4gIFN0b3JhZ2VDb25maWcsXG4gIFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19MT0FERVIsXG4gIFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19TVE9SQUdFLFxuICBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRV9DT05GSUcsXG4gIFRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnNDb25maWcsXG59IGZyb20gJy4vdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLmNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlVHJhbnNsb2NvUGVyc2lzdFRyYW5zbGF0aW9ucyh7XG4gIHN0b3JhZ2UsXG4gIGxvYWRlcixcbiAgLi4uc3RvcmFnZUNvbmZpZ1xufTogVHJhbnNsb2NvUGVyc2lzdFRyYW5zbGF0aW9uc0NvbmZpZykge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICB7IHByb3ZpZGU6IFRSQU5TTE9DT19MT0FERVIsIHVzZUNsYXNzOiBUcmFuc2xvY29QZXJzaXN0VHJhbnNsYXRpb25zIH0sXG4gICAgcHJvdmlkZVRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnNDb25maWcoc3RvcmFnZUNvbmZpZyksXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfTE9BREVSLCB1c2VDbGFzczogbG9hZGVyIH0sXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRSwgLi4uc3RvcmFnZSB9LFxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVUcmFuc2xvY29QZXJzaXN0VHJhbnNsYXRpb25zQ29uZmlnKFxuICBjb25maWc/OiBQYXJ0aWFsPFN0b3JhZ2VDb25maWc+LFxuKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogVFJBTlNMT0NPX1BFUlNJU1RfVFJBTlNMQVRJT05TX1NUT1JBR0VfQ09ORklHLFxuICAgIHVzZVZhbHVlOiB7XG4gICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0sXG4gIH07XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isObject, isString
|
|
1
|
+
import { isObject, isString } from '@jsverse/utils';
|
|
2
2
|
import { from, of } from 'rxjs';
|
|
3
3
|
import { filter, map, switchMap, take, tap } from 'rxjs/operators';
|
|
4
4
|
import { inject, Injectable } from '@angular/core';
|
|
@@ -89,10 +89,10 @@ export class TranslocoPersistTranslations {
|
|
|
89
89
|
// callback within its `destination` property, preventing classes from being GC'd.
|
|
90
90
|
this.subscription = null;
|
|
91
91
|
}
|
|
92
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
93
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
92
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistTranslations, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
93
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistTranslations });
|
|
94
94
|
}
|
|
95
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistTranslations, decorators: [{
|
|
96
96
|
type: Injectable
|
|
97
97
|
}] });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy9zcmMvbGliL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1IsUUFBUSxHQUdULE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQ0wscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0Qyw2Q0FBNkMsR0FDOUMsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFakQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQztBQUM1QixDQUFDO0FBR0QsTUFBTSxPQUFPLDRCQUE0QjtJQUcvQixNQUFNLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdkQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sR0FBRyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUUvRCxZQUFZLEdBQ2xCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLEtBQUssR0FBdUIsSUFBSSxDQUFDO0lBRXpDLGNBQWMsQ0FBQyxJQUFZ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QUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO3VHQTlHVSw0QkFBNEI7MkdBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzT2JqZWN0LFxuICBpc1N0cmluZyxcbiAgVHJhbnNsYXRpb24sXG4gIFRyYW5zbG9jb0xvYWRlcixcbn0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IG9ic2VydmlmeSB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQge1xuICBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfTE9BREVSLFxuICBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRSxcbiAgVFJBTlNMT0NPX1BFUlNJU1RfVFJBTlNMQVRJT05TX1NUT1JBR0VfQ09ORklHLFxufSBmcm9tICcuL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy5jb25maWcnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZXN0YW1wS2V5KGtleTogc3RyaW5nKSB7XG4gIHJldHVybiBgJHtrZXl9L3RpbWVzdGFtcGA7XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2xvY29QZXJzaXN0VHJhbnNsYXRpb25zXG4gIGltcGxlbWVudHMgVHJhbnNsb2NvTG9hZGVyLCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBsb2FkZXIgPSBpbmplY3QoVFJBTlNMT0NPX1BFUlNJU1RfVFJBTlNMQVRJT05TX0xPQURFUik7XG4gIHByaXZhdGUgc3RvcmFnZSA9IGluamVjdChUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRSk7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19TVE9SQUdFX0NPTkZJRyk7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPVxuICAgIHRoaXMuY2xlYXJDdXJyZW50U3RvcmFnZSgpLnN1YnNjcmliZSgpO1xuICBwcml2YXRlIGNhY2hlOiBUcmFuc2xhdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb24+IHtcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gdGhpcy5jb25maWcuc3RvcmFnZUtleTtcblxuICAgIHJldHVybiB0aGlzLmdldENhY2hlZChzdG9yYWdlS2V5KS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0cmFuc2xhdGlvbnMpID0+IHtcbiAgICAgICAgaWYgKHRyYW5zbGF0aW9ucz8uW2xhbmddKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHRyYW5zbGF0aW9uc1tsYW5nXSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZnJvbSh0aGlzLmxvYWRlci5nZXRUcmFuc2xhdGlvbihsYW5nKSkucGlwZShcbiAgICAgICAgICB0YXAoKHRyYW5zbGF0aW9uKSA9PiB0aGlzLnNldENhY2hlKHN0b3JhZ2VLZXksIGxhbmcsIHRyYW5zbGF0aW9uKSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsZWFyQ2FjaGUoKSB7XG4gICAgdGhpcy5jbGVhclRpbWVzdGFtcCh0aGlzLmNvbmZpZy5zdG9yYWdlS2V5KTtcbiAgICB0aGlzLmNsZWFyVHJhbnNsYXRpb25zKCk7XG4gICAgdGhpcy5jYWNoZSA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldENhY2hlZChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb24gfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVcbiAgICAgID8gb2YodGhpcy5jYWNoZSlcbiAgICAgIDogb2JzZXJ2aWZ5KHRoaXMuc3RvcmFnZS5nZXRJdGVtKGtleSkpLnBpcGUoXG4gICAgICAgICAgbWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbSA/IHRoaXMuZGVjb2RlPFRyYW5zbGF0aW9uPihrZXksIGl0ZW0pIDogbnVsbDtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2FjaGUgPSBpdGVtO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FjaGUoa2V5OiBzdHJpbmcsIGxhbmc6IHN0cmluZywgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25zID0gdGhpcy5jYWNoZSB8fCB7fTtcbiAgICB0cmFuc2xhdGlvbnNbbGFuZ10gPSB0cmFuc2xhdGlvbjtcbiAgICB0aGlzLnNldFRpbWVzdGFtcChrZXkpO1xuICAgIHRoaXMuc3RvcmFnZS5zZXRJdGVtKGtleSwgdGhpcy5lbmNvZGUodHJhbnNsYXRpb25zKSk7XG4gICAgdGhpcy5jYWNoZSA9IHRyYW5zbGF0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZW5jb2RlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGU8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IGFueSk6IFQgfCBudWxsIHtcbiAgICBpZiAoaXNPYmplY3QoaXRlbSkpIHtcbiAgICAgIHJldHVybiBpdGVtO1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcoaXRlbSkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBKU09OLnBhcnNlKGl0ZW0pO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBzdG9yYWdlIGtleTogJHtrZXl9IGlzIG5vdCBzZXJpYWxpemFibGVgKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRUaW1lc3RhbXAoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JhZ2Uuc2V0SXRlbShnZXRUaW1lc3RhbXBLZXkoa2V5KSwgRGF0ZS5ub3coKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFRpbWVzdGFtcChrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIG9ic2VydmlmeSh0aGlzLnN0b3JhZ2UuZ2V0SXRlbShnZXRUaW1lc3RhbXBLZXkoa2V5KSkpLnBpcGUoXG4gICAgICBtYXAocGFyc2VJbnQpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJUaW1lc3RhbXAoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbShnZXRUaW1lc3RhbXBLZXkoa2V5KSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyVHJhbnNsYXRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuY29uZmlnLnN0b3JhZ2VLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckN1cnJlbnRTdG9yYWdlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgY29uc3Qgc3RvcmFnZUtleSA9IHRoaXMuY29uZmlnLnN0b3JhZ2VLZXk7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRUaW1lc3RhbXAoc3RvcmFnZUtleSkucGlwZShcbiAgICAgIGZpbHRlcihCb29sZWFuKSxcbiAgICAgIHRhcCgodGltZSkgPT4ge1xuICAgICAgICBjb25zdCBpc0V4cGlyZWQgPSBEYXRlLm5vdygpIC0gdGltZSA+PSB0aGlzLmNvbmZpZy50dGw7XG4gICAgICAgIGlmIChpc0V4cGlyZWQpIHtcbiAgICAgICAgICB0aGlzLnN0b3JhZ2UucmVtb3ZlSXRlbShzdG9yYWdlS2V5KTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gc3Vic2NyaXB0aW9ucyBzaW5jZSB0aGV5IHNhdmUgdGhlIGBuZXh0YFxuICAgIC8vIGNhbGxiYWNrIHdpdGhpbiBpdHMgYGRlc3RpbmF0aW9uYCBwcm9wZXJ0eSwgcHJldmVudGluZyBjbGFzc2VzIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy9zcmMvbGliL3RyYW5zbG9jby1wZXJzaXN0LXRyYW5zbGF0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0QyxPQUFPLEVBQ0wscUNBQXFDLEVBQ3JDLHNDQUFzQyxFQUN0Qyw2Q0FBNkMsR0FDOUMsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFakQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFXO0lBQ3pDLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQztBQUM1QixDQUFDO0FBR0QsTUFBTSxPQUFPLDRCQUE0QjtJQUcvQixNQUFNLEdBQUcsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUM7SUFDdkQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQ3pELE1BQU0sR0FBRyxNQUFNLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUUvRCxZQUFZLEdBQ2xCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2pDLEtBQUssR0FBdUIsSUFBSSxDQUFDO0lBRXpDLGNBQWMsQ0FBQyxJQUFZ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LEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsb0dBQW9HO1FBQ3BHLGtGQUFrRjtRQUNsRixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO3VHQTlHVSw0QkFBNEI7MkdBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0aW9uLCBUcmFuc2xvY29Mb2FkZXIgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzU3RyaW5nIH0gZnJvbSAnQGpzdmVyc2UvdXRpbHMnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgb2JzZXJ2aWZ5IH0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7XG4gIFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19MT0FERVIsXG4gIFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19TVE9SQUdFLFxuICBUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfU1RPUkFHRV9DT05GSUcsXG59IGZyb20gJy4vdHJhbnNsb2NvLXBlcnNpc3QtdHJhbnNsYXRpb25zLmNvbmZpZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lc3RhbXBLZXkoa2V5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGAke2tleX0vdGltZXN0YW1wYDtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyYW5zbG9jb1BlcnNpc3RUcmFuc2xhdGlvbnNcbiAgaW1wbGVtZW50cyBUcmFuc2xvY29Mb2FkZXIsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGxvYWRlciA9IGluamVjdChUUkFOU0xPQ09fUEVSU0lTVF9UUkFOU0xBVElPTlNfTE9BREVSKTtcbiAgcHJpdmF0ZSBzdG9yYWdlID0gaW5qZWN0KFRSQU5TTE9DT19QRVJTSVNUX1RSQU5TTEFUSU9OU19TVE9SQUdFKTtcbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoVFJBTlNMT0NPX1BFUlNJU1RfVFJBTlNMQVRJT05TX1NUT1JBR0VfQ09ORklHKTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9XG4gICAgdGhpcy5jbGVhckN1cnJlbnRTdG9yYWdlKCkuc3Vic2NyaWJlKCk7XG4gIHByaXZhdGUgY2FjaGU6IFRyYW5zbGF0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbj4ge1xuICAgIGNvbnN0IHN0b3JhZ2VLZXkgPSB0aGlzLmNvbmZpZy5zdG9yYWdlS2V5O1xuXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2FjaGVkKHN0b3JhZ2VLZXkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xuICAgICAgICBpZiAodHJhbnNsYXRpb25zPy5bbGFuZ10pIHtcbiAgICAgICAgICByZXR1cm4gb2YodHJhbnNsYXRpb25zW2xhbmddKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMubG9hZGVyLmdldFRyYW5zbGF0aW9uKGxhbmcpKS5waXBlKFxuICAgICAgICAgIHRhcCgodHJhbnNsYXRpb24pID0+IHRoaXMuc2V0Q2FjaGUoc3RvcmFnZUtleSwgbGFuZywgdHJhbnNsYXRpb24pKSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBjbGVhckNhY2hlKCkge1xuICAgIHRoaXMuY2xlYXJUaW1lc3RhbXAodGhpcy5jb25maWcuc3RvcmFnZUtleSk7XG4gICAgdGhpcy5jbGVhclRyYW5zbGF0aW9ucygpO1xuICAgIHRoaXMuY2FjaGUgPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWNoZWQoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlXG4gICAgICA/IG9mKHRoaXMuY2FjaGUpXG4gICAgICA6IG9ic2VydmlmeSh0aGlzLnN0b3JhZ2UuZ2V0SXRlbShrZXkpKS5waXBlKFxuICAgICAgICAgIG1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0gPyB0aGlzLmRlY29kZTxUcmFuc2xhdGlvbj4oa2V5LCBpdGVtKSA6IG51bGw7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNhY2hlID0gaXRlbTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRDYWNoZShrZXk6IHN0cmluZywgbGFuZzogc3RyaW5nLCB0cmFuc2xhdGlvbjogVHJhbnNsYXRpb24pIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbnMgPSB0aGlzLmNhY2hlIHx8IHt9O1xuICAgIHRyYW5zbGF0aW9uc1tsYW5nXSA9IHRyYW5zbGF0aW9uO1xuICAgIHRoaXMuc2V0VGltZXN0YW1wKGtleSk7XG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oa2V5LCB0aGlzLmVuY29kZSh0cmFuc2xhdGlvbnMpKTtcbiAgICB0aGlzLmNhY2hlID0gdHJhbnNsYXRpb25zO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmNvZGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZTxUPihrZXk6IHN0cmluZywgaXRlbTogYW55KTogVCB8IG51bGwge1xuICAgIGlmIChpc09iamVjdChpdGVtKSBhcyBUKSB7XG4gICAgICByZXR1cm4gaXRlbTtcbiAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKGl0ZW0pKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShpdGVtKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgc3RvcmFnZSBrZXk6ICR7a2V5fSBpcyBub3Qgc2VyaWFsaXphYmxlYCk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VGltZXN0YW1wKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlLnNldEl0ZW0oZ2V0VGltZXN0YW1wS2V5KGtleSksIERhdGUubm93KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUaW1lc3RhbXAoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiBvYnNlcnZpZnkodGhpcy5zdG9yYWdlLmdldEl0ZW0oZ2V0VGltZXN0YW1wS2V5KGtleSkpKS5waXBlKFxuICAgICAgbWFwKHBhcnNlSW50KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhclRpbWVzdGFtcChrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKGdldFRpbWVzdGFtcEtleShrZXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJUcmFuc2xhdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5jb25maWcuc3RvcmFnZUtleSk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQ3VycmVudFN0b3JhZ2UoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICBjb25zdCBzdG9yYWdlS2V5ID0gdGhpcy5jb25maWcuc3RvcmFnZUtleTtcblxuICAgIHJldHVybiB0aGlzLmdldFRpbWVzdGFtcChzdG9yYWdlS2V5KS5waXBlKFxuICAgICAgZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgdGFwKCh0aW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IERhdGUubm93KCkgLSB0aW1lID49IHRoaXMuY29uZmlnLnR0bDtcbiAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgIHRoaXMuc3RvcmFnZS5yZW1vdmVJdGVtKHN0b3JhZ2VLZXkpO1xuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgLy8gQ2FyZXRha2VyIG5vdGU6IGl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHJlZmVyZW5jZXMgdG8gc3Vic2NyaXB0aW9ucyBzaW5jZSB0aGV5IHNhdmUgdGhlIGBuZXh0YFxuICAgIC8vIGNhbGxiYWNrIHdpdGhpbiBpdHMgYGRlc3RpbmF0aW9uYCBwcm9wZXJ0eSwgcHJldmVudGluZyBjbGFzc2VzIGZyb20gYmVpbmcgR0MnZC5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, Injectable, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
-
import { isFunction, isObject, isString
|
|
3
|
+
import { isFunction, isObject, isString } from '@jsverse/utils';
|
|
4
4
|
import { isObservable, from, of } from 'rxjs';
|
|
5
5
|
import { switchMap, tap, map, take, filter } from 'rxjs/operators';
|
|
6
|
+
import { TRANSLOCO_LOADER } from '@jsverse/transloco';
|
|
6
7
|
|
|
7
|
-
const dayInMilliseconds =
|
|
8
|
+
const dayInMilliseconds = 86_400;
|
|
8
9
|
const defaultConfig = {
|
|
9
10
|
ttl: dayInMilliseconds,
|
|
10
11
|
storageKey: '@transloco/translations',
|
|
@@ -13,8 +14,8 @@ const TRANSLOCO_PERSIST_TRANSLATIONS_LOADER = new InjectionToken('TRANSLOCO_PERS
|
|
|
13
14
|
const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE = new InjectionToken('The storage to use for the persistance behavior');
|
|
14
15
|
const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG = new InjectionToken('Configuration for the storage behavior');
|
|
15
16
|
|
|
16
|
-
function isPromise(
|
|
17
|
-
return
|
|
17
|
+
function isPromise(value) {
|
|
18
|
+
return isFunction(value?.then);
|
|
18
19
|
}
|
|
19
20
|
function observify(asyncOrValue) {
|
|
20
21
|
if (isPromise(asyncOrValue) || isObservable(asyncOrValue)) {
|
|
@@ -107,10 +108,10 @@ class TranslocoPersistTranslations {
|
|
|
107
108
|
// callback within its `destination` property, preventing classes from being GC'd.
|
|
108
109
|
this.subscription = null;
|
|
109
110
|
}
|
|
110
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
111
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistTranslations, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
112
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistTranslations });
|
|
112
113
|
}
|
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: TranslocoPersistTranslations, decorators: [{
|
|
114
115
|
type: Injectable
|
|
115
116
|
}] });
|
|
116
117
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsverse-transloco-persist-translations.mjs","sources":["../../../../libs/transloco-persist-translations/src/lib/transloco-persist-translations.config.ts","../../../../libs/transloco-persist-translations/src/lib/helpers.ts","../../../../libs/transloco-persist-translations/src/lib/transloco-persist-translations.service.ts","../../../../libs/transloco-persist-translations/src/lib/transloco-persist-translations.providers.ts","../../../../libs/transloco-persist-translations/src/jsverse-transloco-persist-translations.ts"],"sourcesContent":["import {\n ClassProvider,\n ExistingProvider,\n FactoryProvider,\n InjectionToken,\n Type,\n ValueProvider,\n} from '@angular/core';\nimport { TranslocoLoader } from '@jsverse/transloco';\n\nimport { MaybeAsyncStorage } from './transloco.storage';\n\nexport interface StorageConfig {\n ttl: number;\n storageKey: string;\n}\n\ntype providerValue =\n | Pick<ValueProvider, 'useValue'>\n | Pick<ClassProvider, 'useClass'>\n | Pick<ExistingProvider, 'useExisting'>\n | Pick<FactoryProvider, 'useFactory' | 'deps'>;\nexport interface TranslocoPersistTranslationsConfig\n extends Partial<StorageConfig> {\n loader: Type<TranslocoLoader>;\n storage: providerValue;\n}\n\nconst dayInMilliseconds = 86_400;\nexport const defaultConfig: StorageConfig = {\n ttl: dayInMilliseconds,\n storageKey: '@transloco/translations',\n};\n\nexport const TRANSLOCO_PERSIST_TRANSLATIONS_LOADER =\n new InjectionToken<TranslocoLoader>('TRANSLOCO_PERSIST_TRANSLATIONS_LOADER');\n\nexport const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE =\n new InjectionToken<MaybeAsyncStorage>(\n 'The storage to use for the persistance behavior'\n );\n\nexport const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG =\n new InjectionToken<StorageConfig>('Configuration for the storage behavior');\n","import { isObservable, from, of, Observable } from 'rxjs';\nimport { isFunction } from '@jsverse/transloco';\n\nexport function isPromise(v: any): v is Promise<any> {\n return v && isFunction(v.then);\n}\n\nexport function observify(asyncOrValue: any): Observable<any> {\n if (isPromise(asyncOrValue) || isObservable(asyncOrValue)) {\n return from(asyncOrValue);\n }\n\n return of(asyncOrValue);\n}\n","import {\n isObject,\n isString,\n Translation,\n TranslocoLoader,\n} from '@jsverse/transloco';\nimport { from, Observable, of, Subscription } from 'rxjs';\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\n\nimport { observify } from './helpers';\nimport {\n TRANSLOCO_PERSIST_TRANSLATIONS_LOADER,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG,\n} from './transloco-persist-translations.config';\n\nexport function getTimestampKey(key: string) {\n return `${key}/timestamp`;\n}\n\n@Injectable()\nexport class TranslocoPersistTranslations\n implements TranslocoLoader, OnDestroy\n{\n private loader = inject(TRANSLOCO_PERSIST_TRANSLATIONS_LOADER);\n private storage = inject(TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE);\n private config = inject(TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG);\n\n private subscription: Subscription | null =\n this.clearCurrentStorage().subscribe();\n private cache: Translation | null = null;\n\n getTranslation(lang: string): Observable<Translation> {\n const storageKey = this.config.storageKey;\n\n return this.getCached(storageKey).pipe(\n switchMap((translations) => {\n if (translations?.[lang]) {\n return of(translations[lang]);\n }\n\n return from(this.loader.getTranslation(lang)).pipe(\n tap((translation) => this.setCache(storageKey, lang, translation))\n );\n })\n );\n }\n\n clearCache() {\n this.clearTimestamp(this.config.storageKey);\n this.clearTranslations();\n this.cache = null;\n }\n\n private getCached(key: string): Observable<Translation | null> {\n return this.cache\n ? of(this.cache)\n : observify(this.storage.getItem(key)).pipe(\n map((item) => {\n return item ? this.decode<Translation>(key, item) : null;\n }),\n tap((item) => {\n this.cache = item;\n }),\n take(1)\n );\n }\n\n private setCache(key: string, lang: string, translation: Translation) {\n const translations = this.cache || {};\n translations[lang] = translation;\n this.setTimestamp(key);\n this.storage.setItem(key, this.encode(translations));\n this.cache = translations;\n }\n\n private encode(value: unknown): string {\n return JSON.stringify(value);\n }\n\n private decode<T>(key: string, item: any): T | null {\n if (isObject(item)) {\n return item;\n } else if (isString(item)) {\n try {\n return JSON.parse(item);\n } catch (e) {\n console.error(`storage key: ${key} is not serializable`);\n return null;\n }\n }\n return null;\n }\n\n private setTimestamp(key: string): void {\n this.storage.setItem(getTimestampKey(key), Date.now());\n }\n\n private getTimestamp(key: string): Observable<number> {\n return observify(this.storage.getItem(getTimestampKey(key))).pipe(\n map(parseInt)\n );\n }\n\n private clearTimestamp(key: string): void {\n this.storage.removeItem(getTimestampKey(key));\n }\n\n private clearTranslations(): void {\n this.storage.removeItem(this.config.storageKey);\n }\n\n private clearCurrentStorage(): Observable<number> {\n const storageKey = this.config.storageKey;\n\n return this.getTimestamp(storageKey).pipe(\n filter(Boolean),\n tap((time) => {\n const isExpired = Date.now() - time >= this.config.ttl;\n if (isExpired) {\n this.storage.removeItem(storageKey);\n }\n })\n );\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n // Caretaker note: it's important to clean up references to subscriptions since they save the `next`\n // callback within its `destination` property, preventing classes from being GC'd.\n this.subscription = null;\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { TRANSLOCO_LOADER } from '@jsverse/transloco';\n\nimport { TranslocoPersistTranslations } from './transloco-persist-translations.service';\nimport {\n defaultConfig,\n StorageConfig,\n TRANSLOCO_PERSIST_TRANSLATIONS_LOADER,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG,\n TranslocoPersistTranslationsConfig,\n} from './transloco-persist-translations.config';\n\nexport function provideTranslocoPersistTranslations({\n storage,\n loader,\n ...storageConfig\n}: TranslocoPersistTranslationsConfig) {\n return makeEnvironmentProviders([\n { provide: TRANSLOCO_LOADER, useClass: TranslocoPersistTranslations },\n provideTranslocoPersistTranslationsConfig(storageConfig),\n { provide: TRANSLOCO_PERSIST_TRANSLATIONS_LOADER, useClass: loader },\n { provide: TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE, ...storage },\n ]);\n}\n\nexport function provideTranslocoPersistTranslationsConfig(\n config?: Partial<StorageConfig>\n) {\n return {\n provide: TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG,\n useValue: {\n ...defaultConfig,\n ...config,\n },\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsverse-transloco-persist-translations.mjs","sources":["../../../../libs/transloco-persist-translations/src/lib/transloco-persist-translations.config.ts","../../../../libs/transloco-persist-translations/src/lib/helpers.ts","../../../../libs/transloco-persist-translations/src/lib/transloco-persist-translations.service.ts","../../../../libs/transloco-persist-translations/src/lib/transloco-persist-translations.providers.ts","../../../../libs/transloco-persist-translations/src/jsverse-transloco-persist-translations.ts"],"sourcesContent":["import {\n ClassProvider,\n ExistingProvider,\n FactoryProvider,\n InjectionToken,\n Type,\n ValueProvider,\n} from '@angular/core';\nimport { TranslocoLoader } from '@jsverse/transloco';\n\nimport { MaybeAsyncStorage } from './transloco.storage';\n\nexport interface StorageConfig {\n ttl: number;\n storageKey: string;\n}\n\ntype providerValue =\n | Pick<ValueProvider, 'useValue'>\n | Pick<ClassProvider, 'useClass'>\n | Pick<ExistingProvider, 'useExisting'>\n | Pick<FactoryProvider, 'useFactory' | 'deps'>;\nexport interface TranslocoPersistTranslationsConfig\n extends Partial<StorageConfig> {\n loader: Type<TranslocoLoader>;\n storage: providerValue;\n}\n\nconst dayInMilliseconds = 86_400;\nexport const defaultConfig: StorageConfig = {\n ttl: dayInMilliseconds,\n storageKey: '@transloco/translations',\n};\n\nexport const TRANSLOCO_PERSIST_TRANSLATIONS_LOADER =\n new InjectionToken<TranslocoLoader>('TRANSLOCO_PERSIST_TRANSLATIONS_LOADER');\n\nexport const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE =\n new InjectionToken<MaybeAsyncStorage>(\n 'The storage to use for the persistance behavior',\n );\n\nexport const TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG =\n new InjectionToken<StorageConfig>('Configuration for the storage behavior');\n","import { from, isObservable, Observable, of } from 'rxjs';\nimport { isFunction } from '@jsverse/utils';\n\nexport function isPromise(value: any): value is PromiseLike<unknown> {\n return isFunction(value?.then);\n}\n\nexport function observify<T>(\n asyncOrValue: PromiseLike<T> | Observable<T> | T,\n): Observable<T> {\n if (isPromise(asyncOrValue) || isObservable(asyncOrValue)) {\n return from(asyncOrValue);\n }\n\n return of(asyncOrValue);\n}\n","import { Translation, TranslocoLoader } from '@jsverse/transloco';\nimport { isObject, isString } from '@jsverse/utils';\nimport { from, Observable, of, Subscription } from 'rxjs';\nimport { filter, map, switchMap, take, tap } from 'rxjs/operators';\nimport { inject, Injectable, OnDestroy } from '@angular/core';\n\nimport { observify } from './helpers';\nimport {\n TRANSLOCO_PERSIST_TRANSLATIONS_LOADER,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG,\n} from './transloco-persist-translations.config';\n\nexport function getTimestampKey(key: string) {\n return `${key}/timestamp`;\n}\n\n@Injectable()\nexport class TranslocoPersistTranslations\n implements TranslocoLoader, OnDestroy\n{\n private loader = inject(TRANSLOCO_PERSIST_TRANSLATIONS_LOADER);\n private storage = inject(TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE);\n private config = inject(TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG);\n\n private subscription: Subscription | null =\n this.clearCurrentStorage().subscribe();\n private cache: Translation | null = null;\n\n getTranslation(lang: string): Observable<Translation> {\n const storageKey = this.config.storageKey;\n\n return this.getCached(storageKey).pipe(\n switchMap((translations) => {\n if (translations?.[lang]) {\n return of(translations[lang]);\n }\n\n return from(this.loader.getTranslation(lang)).pipe(\n tap((translation) => this.setCache(storageKey, lang, translation)),\n );\n }),\n );\n }\n\n clearCache() {\n this.clearTimestamp(this.config.storageKey);\n this.clearTranslations();\n this.cache = null;\n }\n\n private getCached(key: string): Observable<Translation | null> {\n return this.cache\n ? of(this.cache)\n : observify(this.storage.getItem(key)).pipe(\n map((item) => {\n return item ? this.decode<Translation>(key, item) : null;\n }),\n tap((item) => {\n this.cache = item;\n }),\n take(1),\n );\n }\n\n private setCache(key: string, lang: string, translation: Translation) {\n const translations = this.cache || {};\n translations[lang] = translation;\n this.setTimestamp(key);\n this.storage.setItem(key, this.encode(translations));\n this.cache = translations;\n }\n\n private encode(value: unknown): string {\n return JSON.stringify(value);\n }\n\n private decode<T>(key: string, item: any): T | null {\n if (isObject(item) as T) {\n return item;\n } else if (isString(item)) {\n try {\n return JSON.parse(item);\n } catch (e) {\n console.error(`storage key: ${key} is not serializable`);\n return null;\n }\n }\n return null;\n }\n\n private setTimestamp(key: string): void {\n this.storage.setItem(getTimestampKey(key), Date.now());\n }\n\n private getTimestamp(key: string): Observable<number> {\n return observify(this.storage.getItem(getTimestampKey(key))).pipe(\n map(parseInt),\n );\n }\n\n private clearTimestamp(key: string): void {\n this.storage.removeItem(getTimestampKey(key));\n }\n\n private clearTranslations(): void {\n this.storage.removeItem(this.config.storageKey);\n }\n\n private clearCurrentStorage(): Observable<number> {\n const storageKey = this.config.storageKey;\n\n return this.getTimestamp(storageKey).pipe(\n filter(Boolean),\n tap((time) => {\n const isExpired = Date.now() - time >= this.config.ttl;\n if (isExpired) {\n this.storage.removeItem(storageKey);\n }\n }),\n );\n }\n\n ngOnDestroy() {\n this.subscription?.unsubscribe();\n // Caretaker note: it's important to clean up references to subscriptions since they save the `next`\n // callback within its `destination` property, preventing classes from being GC'd.\n this.subscription = null;\n }\n}\n","import { makeEnvironmentProviders } from '@angular/core';\nimport { TRANSLOCO_LOADER } from '@jsverse/transloco';\n\nimport { TranslocoPersistTranslations } from './transloco-persist-translations.service';\nimport {\n defaultConfig,\n StorageConfig,\n TRANSLOCO_PERSIST_TRANSLATIONS_LOADER,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE,\n TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG,\n TranslocoPersistTranslationsConfig,\n} from './transloco-persist-translations.config';\n\nexport function provideTranslocoPersistTranslations({\n storage,\n loader,\n ...storageConfig\n}: TranslocoPersistTranslationsConfig) {\n return makeEnvironmentProviders([\n { provide: TRANSLOCO_LOADER, useClass: TranslocoPersistTranslations },\n provideTranslocoPersistTranslationsConfig(storageConfig),\n { provide: TRANSLOCO_PERSIST_TRANSLATIONS_LOADER, useClass: loader },\n { provide: TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE, ...storage },\n ]);\n}\n\nexport function provideTranslocoPersistTranslationsConfig(\n config?: Partial<StorageConfig>,\n) {\n return {\n provide: TRANSLOCO_PERSIST_TRANSLATIONS_STORAGE_CONFIG,\n useValue: {\n ...defaultConfig,\n ...config,\n },\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/lib/helpers.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
export declare function isPromise(
|
|
3
|
-
export declare function observify(asyncOrValue:
|
|
2
|
+
export declare function isPromise(value: any): value is PromiseLike<unknown>;
|
|
3
|
+
export declare function observify<T>(asyncOrValue: PromiseLike<T> | Observable<T> | T): Observable<T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jsverse/transloco-persist-translations",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Transloco persist translations",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -8,28 +8,30 @@
|
|
|
8
8
|
"bugs": {
|
|
9
9
|
"url": "https://github.com/jsverse/transloco/issues"
|
|
10
10
|
},
|
|
11
|
-
"homepage": "https://jsverse.
|
|
11
|
+
"homepage": "https://jsverse.gitbook.io/transloco/plugins/persist-translations",
|
|
12
12
|
"repository": {
|
|
13
13
|
"type": "git",
|
|
14
14
|
"url": "https://github.com/jsverse/transloco"
|
|
15
15
|
},
|
|
16
16
|
"keywords": [
|
|
17
|
-
"
|
|
18
|
-
"angular 2",
|
|
17
|
+
"Angular",
|
|
19
18
|
"i18n",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
19
|
+
"Translate",
|
|
20
|
+
"Angular Translate",
|
|
21
|
+
"Transloco",
|
|
22
|
+
"Persist",
|
|
23
|
+
"Storage"
|
|
24
24
|
],
|
|
25
25
|
"license": "MIT",
|
|
26
26
|
"peerDependencies": {
|
|
27
27
|
"@angular/core": ">=16.0.0",
|
|
28
|
-
"@jsverse/transloco": ">=7.0.0"
|
|
28
|
+
"@jsverse/transloco": ">=7.0.0",
|
|
29
|
+
"@jsverse/utils": "^1.0.0"
|
|
29
30
|
},
|
|
30
31
|
"dependencies": {
|
|
31
32
|
"tslib": "^2.2.0"
|
|
32
33
|
},
|
|
34
|
+
"sideEffects": false,
|
|
33
35
|
"module": "fesm2022/jsverse-transloco-persist-translations.mjs",
|
|
34
36
|
"typings": "index.d.ts",
|
|
35
37
|
"exports": {
|
|
@@ -42,6 +44,5 @@
|
|
|
42
44
|
"esm": "./esm2022/jsverse-transloco-persist-translations.mjs",
|
|
43
45
|
"default": "./fesm2022/jsverse-transloco-persist-translations.mjs"
|
|
44
46
|
}
|
|
45
|
-
}
|
|
46
|
-
"sideEffects": false
|
|
47
|
+
}
|
|
47
48
|
}
|