@flighthq/storage 0.4.0-next.1898.266773a → 0.4.0-next.1908.751021c
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/storage.d.ts +5 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +75 -14
- package/dist/storage.js.map +1 -1
- package/package.json +3 -3
- package/src/storage.test.ts +81 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
|
|
1
|
+
export { explainStorageBackend, clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
|
|
1
|
+
export { explainStorageBackend, clearStorage, clearStorageNamespace, createStorageNamespace, disableStorageSignals, enableStorageSignals, getNamespacedStorageByteSize, getNamespacedStorageEntries, getNamespacedStorageItem, getNamespacedStorageKeys, getStorageBoolean, getStorageBooleanOr, getStorageByteSize, getStorageEntries, getStorageItem, getStorageItemCount, getStorageItemOr, getStorageItems, getStorageJSON, getStorageJSONOr, getStorageKeys, getStorageNumber, getStorageNumberOr, getStorageQuotaEstimate, getStorageSignals, hasNamespacedStorageItem, hasStorageItem, migrateStorage, removeNamespacedStorageItem, removeStorageItem, removeStorageItems, setNamespacedStorageItem, setStorageBoolean, setStorageItem, setStorageItems, setStorageJSON, setStorageNumber, } from './contract';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
package/dist/storage.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { StorageBackend, StorageMigration, StorageNamespace, StorageQuota, StorageSignals } from '@flighthq/types/contract';
|
|
1
|
+
import type { BackendExplanation, StorageBackend, StorageMigration, StorageNamespace, StorageQuota, StorageSignals } from '@flighthq/types/contract';
|
|
2
2
|
export declare function clearStorage(): boolean;
|
|
3
3
|
export declare function clearStorageNamespace(namespace: Readonly<StorageNamespace>): boolean;
|
|
4
4
|
export declare function createStorageNamespace(prefix: string): StorageNamespace;
|
|
5
5
|
export declare function createWebStorageBackend(): StorageBackend;
|
|
6
6
|
export declare function disableStorageSignals(): void;
|
|
7
7
|
export declare function enableStorageSignals(): StorageSignals;
|
|
8
|
+
export declare function explainStorageBackend(): BackendExplanation;
|
|
8
9
|
export declare function getNamespacedStorageByteSize(namespace: Readonly<StorageNamespace>): number;
|
|
9
10
|
export declare function getNamespacedStorageEntries(namespace: Readonly<StorageNamespace>): readonly (readonly [string, string])[];
|
|
10
11
|
export declare function getNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string): string | null;
|
|
@@ -27,10 +28,13 @@ export declare function getStorageQuotaEstimate(): Promise<StorageQuota | null>;
|
|
|
27
28
|
export declare function getStorageSignals(): StorageSignals | null;
|
|
28
29
|
export declare function hasNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string): boolean;
|
|
29
30
|
export declare function hasStorageItem(key: string): boolean;
|
|
31
|
+
export declare function installStorageHostBackend(backend: StorageBackend): void;
|
|
30
32
|
export declare function migrateStorage(namespace: Readonly<StorageNamespace> | null, migrations: readonly Readonly<StorageMigration>[]): number;
|
|
33
|
+
export declare function observeStorageHostResult(operation: string, succeeded: boolean): void;
|
|
31
34
|
export declare function removeNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string): boolean;
|
|
32
35
|
export declare function removeStorageItem(key: string): boolean;
|
|
33
36
|
export declare function removeStorageItems(keys: readonly string[]): boolean;
|
|
37
|
+
export declare function resetStorageBackendForTest(): void;
|
|
34
38
|
export declare function setNamespacedStorageItem(namespace: Readonly<StorageNamespace>, key: string, value: string): boolean;
|
|
35
39
|
export declare function setStorageBackend(backend: StorageBackend | null): void;
|
|
36
40
|
export declare function setStorageBoolean(key: string, value: boolean): boolean;
|
package/dist/storage.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,cAAc,EAEd,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,YAAY,IAAI,OAAO,CAMtC;AAGD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAAG,OAAO,CASpF;AAID,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAEvE;AAKD,wBAAgB,uBAAuB,IAAI,cAAc,
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.js
CHANGED
|
@@ -31,54 +31,63 @@ export function createStorageNamespace(prefix) {
|
|
|
31
31
|
export function createWebStorageBackend() {
|
|
32
32
|
return {
|
|
33
33
|
getItem(key) {
|
|
34
|
-
const ls =
|
|
34
|
+
const ls = _getWebStorage();
|
|
35
35
|
if (ls === null)
|
|
36
36
|
return null;
|
|
37
37
|
try {
|
|
38
|
-
|
|
38
|
+
const result = ls.getItem(key);
|
|
39
|
+
observeStorageHostResult('getItem', true);
|
|
40
|
+
return result;
|
|
39
41
|
}
|
|
40
42
|
catch {
|
|
43
|
+
observeStorageHostResult('getItem', false);
|
|
41
44
|
return null;
|
|
42
45
|
}
|
|
43
46
|
},
|
|
44
47
|
setItem(key, value) {
|
|
45
|
-
const ls =
|
|
48
|
+
const ls = _getWebStorage();
|
|
46
49
|
if (ls === null)
|
|
47
50
|
return false;
|
|
48
51
|
try {
|
|
49
52
|
ls.setItem(key, value);
|
|
53
|
+
observeStorageHostResult('setItem', true);
|
|
50
54
|
return true;
|
|
51
55
|
}
|
|
52
56
|
catch {
|
|
57
|
+
observeStorageHostResult('setItem', false);
|
|
53
58
|
return false;
|
|
54
59
|
}
|
|
55
60
|
},
|
|
56
61
|
removeItem(key) {
|
|
57
|
-
const ls =
|
|
62
|
+
const ls = _getWebStorage();
|
|
58
63
|
if (ls === null)
|
|
59
64
|
return false;
|
|
60
65
|
try {
|
|
61
66
|
ls.removeItem(key);
|
|
67
|
+
observeStorageHostResult('removeItem', true);
|
|
62
68
|
return true;
|
|
63
69
|
}
|
|
64
70
|
catch {
|
|
71
|
+
observeStorageHostResult('removeItem', false);
|
|
65
72
|
return false;
|
|
66
73
|
}
|
|
67
74
|
},
|
|
68
75
|
clear() {
|
|
69
|
-
const ls =
|
|
76
|
+
const ls = _getWebStorage();
|
|
70
77
|
if (ls === null)
|
|
71
78
|
return false;
|
|
72
79
|
try {
|
|
73
80
|
ls.clear();
|
|
81
|
+
observeStorageHostResult('clear', true);
|
|
74
82
|
return true;
|
|
75
83
|
}
|
|
76
84
|
catch {
|
|
85
|
+
observeStorageHostResult('clear', false);
|
|
77
86
|
return false;
|
|
78
87
|
}
|
|
79
88
|
},
|
|
80
89
|
keys() {
|
|
81
|
-
const ls =
|
|
90
|
+
const ls = _getWebStorage();
|
|
82
91
|
if (ls === null)
|
|
83
92
|
return [];
|
|
84
93
|
try {
|
|
@@ -136,6 +145,20 @@ export function enableStorageSignals() {
|
|
|
136
145
|
}
|
|
137
146
|
return _signals;
|
|
138
147
|
}
|
|
148
|
+
export function explainStorageBackend() {
|
|
149
|
+
if (_custom !== null) {
|
|
150
|
+
return { conflict: _hostConflict, layer: 'custom', operation: null, viability: 'unobserved' };
|
|
151
|
+
}
|
|
152
|
+
if (_host !== null) {
|
|
153
|
+
return {
|
|
154
|
+
conflict: _hostConflict,
|
|
155
|
+
layer: 'host',
|
|
156
|
+
operation: _hostObservation !== null ? _hostObservation.operation : null,
|
|
157
|
+
viability: _hostObservation !== null ? _hostObservation.viability : 'unobserved',
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return { conflict: false, layer: 'host-not-enabled', operation: null, viability: 'unobserved' };
|
|
161
|
+
}
|
|
139
162
|
// Returns the estimated UTF-16 byte cost of all keys under the namespace. Returns -1 on denial.
|
|
140
163
|
export function getNamespacedStorageByteSize(namespace) {
|
|
141
164
|
const prefix = namespace.prefix + '.';
|
|
@@ -185,11 +208,9 @@ export function getNamespacedStorageKeys(namespace) {
|
|
|
185
208
|
}
|
|
186
209
|
return out;
|
|
187
210
|
}
|
|
188
|
-
// The active storage backend
|
|
211
|
+
// The active storage backend. Precedence: custom > host > sentinel.
|
|
189
212
|
export function getStorageBackend() {
|
|
190
|
-
|
|
191
|
-
_backend = createWebStorageBackend();
|
|
192
|
-
return _backend;
|
|
213
|
+
return _custom ?? _host ?? _sentinel;
|
|
193
214
|
}
|
|
194
215
|
// Reads the stored value as a stored boolean ('true'/'false'). Returns null on absent key,
|
|
195
216
|
// access denial, or unrecognized value.
|
|
@@ -334,6 +355,14 @@ export function hasNamespacedStorageItem(namespace, key) {
|
|
|
334
355
|
export function hasStorageItem(key) {
|
|
335
356
|
return getStorageBackend().getItem(key) !== null;
|
|
336
357
|
}
|
|
358
|
+
export function installStorageHostBackend(backend) {
|
|
359
|
+
if (_host !== null) {
|
|
360
|
+
if (_host !== backend)
|
|
361
|
+
_hostConflict = true;
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
_host = backend;
|
|
365
|
+
}
|
|
337
366
|
// Applies a sequence of versioned migrations to the given namespace (or global keyspace when null).
|
|
338
367
|
// Migrations are run in ascending version order, starting from the stored version + 1. Stores the
|
|
339
368
|
// resulting version under the reserved key `__flight_storage_version` (namespaced or global).
|
|
@@ -364,6 +393,12 @@ export function migrateStorage(namespace, migrations) {
|
|
|
364
393
|
}
|
|
365
394
|
return newVersion;
|
|
366
395
|
}
|
|
396
|
+
export function observeStorageHostResult(operation, succeeded) {
|
|
397
|
+
_hostObservation = {
|
|
398
|
+
operation,
|
|
399
|
+
viability: succeeded ? 'available' : 'runtime-api-unavailable',
|
|
400
|
+
};
|
|
401
|
+
}
|
|
367
402
|
// Removes a key from the namespace. Returns false on denial.
|
|
368
403
|
export function removeNamespacedStorageItem(namespace, key) {
|
|
369
404
|
return getStorageBackend().removeItem(_namespacedKey(namespace, key));
|
|
@@ -387,17 +422,23 @@ export function removeStorageItems(keys) {
|
|
|
387
422
|
}
|
|
388
423
|
return success;
|
|
389
424
|
}
|
|
425
|
+
export function resetStorageBackendForTest() {
|
|
426
|
+
_custom = null;
|
|
427
|
+
_host = null;
|
|
428
|
+
_hostConflict = false;
|
|
429
|
+
_hostObservation = null;
|
|
430
|
+
}
|
|
390
431
|
// Writes a namespaced value. Returns false on denial/quota.
|
|
391
432
|
export function setNamespacedStorageItem(namespace, key, value) {
|
|
392
433
|
return getStorageBackend().setItem(_namespacedKey(namespace, key), value);
|
|
393
434
|
}
|
|
394
|
-
// Installs a
|
|
435
|
+
// Installs a custom storage backend; pass null to clear the custom override.
|
|
395
436
|
export function setStorageBackend(backend) {
|
|
396
437
|
if (_signalsActive && _crossTabUnsubscribe !== null) {
|
|
397
438
|
_crossTabUnsubscribe();
|
|
398
439
|
_crossTabUnsubscribe = null;
|
|
399
440
|
}
|
|
400
|
-
|
|
441
|
+
_custom = backend;
|
|
401
442
|
if (_signalsActive) {
|
|
402
443
|
const b = getStorageBackend();
|
|
403
444
|
if (b.subscribeChanges !== undefined) {
|
|
@@ -446,7 +487,27 @@ export function setStorageJSON(key, value) {
|
|
|
446
487
|
export function setStorageNumber(key, value) {
|
|
447
488
|
return setStorageItem(key, String(value));
|
|
448
489
|
}
|
|
449
|
-
|
|
490
|
+
const _sentinel = {
|
|
491
|
+
getItem() {
|
|
492
|
+
return null;
|
|
493
|
+
},
|
|
494
|
+
setItem() {
|
|
495
|
+
return false;
|
|
496
|
+
},
|
|
497
|
+
removeItem() {
|
|
498
|
+
return false;
|
|
499
|
+
},
|
|
500
|
+
clear() {
|
|
501
|
+
return false;
|
|
502
|
+
},
|
|
503
|
+
keys() {
|
|
504
|
+
return [];
|
|
505
|
+
},
|
|
506
|
+
};
|
|
507
|
+
let _custom = null;
|
|
508
|
+
let _host = null;
|
|
509
|
+
let _hostConflict = false;
|
|
510
|
+
let _hostObservation = null;
|
|
450
511
|
let _signals = null;
|
|
451
512
|
let _signalsActive = false;
|
|
452
513
|
let _crossTabUnsubscribe = null;
|
|
@@ -457,7 +518,7 @@ function _emitStorageChange(change) {
|
|
|
457
518
|
function _namespacedKey(namespace, key) {
|
|
458
519
|
return namespace.prefix + '.' + key;
|
|
459
520
|
}
|
|
460
|
-
function
|
|
521
|
+
function _getWebStorage() {
|
|
461
522
|
if (typeof window === 'undefined')
|
|
462
523
|
return null;
|
|
463
524
|
try {
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/storage",
|
|
3
|
-
"version": "0.4.0-next.
|
|
3
|
+
"version": "0.4.0-next.1908.751021c",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/signals": "0.4.0-next.
|
|
42
|
-
"@flighthq/types": "0.4.0-next.
|
|
41
|
+
"@flighthq/signals": "0.4.0-next.1908.751021c",
|
|
42
|
+
"@flighthq/types": "0.4.0-next.1908.751021c"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
45
|
"typescript": "^5.3.0"
|
package/src/storage.test.ts
CHANGED
|
@@ -40,6 +40,10 @@ import {
|
|
|
40
40
|
setStorageItems,
|
|
41
41
|
setStorageJSON,
|
|
42
42
|
setStorageNumber,
|
|
43
|
+
explainStorageBackend,
|
|
44
|
+
installStorageHostBackend,
|
|
45
|
+
observeStorageHostResult,
|
|
46
|
+
resetStorageBackendForTest,
|
|
43
47
|
} from './storage';
|
|
44
48
|
|
|
45
49
|
function fakeBackend(): StorageBackend {
|
|
@@ -207,6 +211,34 @@ describe('enableStorageSignals', () => {
|
|
|
207
211
|
});
|
|
208
212
|
});
|
|
209
213
|
|
|
214
|
+
describe('explainStorageBackend', () => {
|
|
215
|
+
afterEach(() => resetStorageBackendForTest());
|
|
216
|
+
|
|
217
|
+
it('reports host-not-enabled when no backend is installed', () => {
|
|
218
|
+
resetStorageBackendForTest();
|
|
219
|
+
const explanation = explainStorageBackend();
|
|
220
|
+
expect(explanation.layer).toBe('host-not-enabled');
|
|
221
|
+
expect(explanation.conflict).toBe(false);
|
|
222
|
+
expect(explanation.viability).toBe('unobserved');
|
|
223
|
+
});
|
|
224
|
+
|
|
225
|
+
it('reports custom layer when a custom backend is set', () => {
|
|
226
|
+
setStorageBackend(fakeBackend());
|
|
227
|
+
expect(explainStorageBackend().layer).toBe('custom');
|
|
228
|
+
});
|
|
229
|
+
|
|
230
|
+
it('reports host layer when a host backend is installed', () => {
|
|
231
|
+
installStorageHostBackend(fakeBackend());
|
|
232
|
+
expect(explainStorageBackend().layer).toBe('host');
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
it('reports conflict when two different host backends are installed', () => {
|
|
236
|
+
installStorageHostBackend(fakeBackend());
|
|
237
|
+
installStorageHostBackend(fakeBackend());
|
|
238
|
+
expect(explainStorageBackend().conflict).toBe(true);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
|
|
210
242
|
describe('getNamespacedStorageByteSize', () => {
|
|
211
243
|
it('counts only namespaced keys', () => {
|
|
212
244
|
setStorageBackend(fakeBackend());
|
|
@@ -565,6 +597,25 @@ describe('hasStorageItem', () => {
|
|
|
565
597
|
});
|
|
566
598
|
});
|
|
567
599
|
|
|
600
|
+
describe('installStorageHostBackend', () => {
|
|
601
|
+
afterEach(() => resetStorageBackendForTest());
|
|
602
|
+
|
|
603
|
+
it('installs a host backend that getStorageBackend returns', () => {
|
|
604
|
+
const backend = fakeBackend();
|
|
605
|
+
installStorageHostBackend(backend);
|
|
606
|
+
expect(getStorageBackend()).toBe(backend);
|
|
607
|
+
});
|
|
608
|
+
|
|
609
|
+
it('is first-host-wins: a second different backend sets conflict', () => {
|
|
610
|
+
const first = fakeBackend();
|
|
611
|
+
const second = fakeBackend();
|
|
612
|
+
installStorageHostBackend(first);
|
|
613
|
+
installStorageHostBackend(second);
|
|
614
|
+
expect(getStorageBackend()).toBe(first);
|
|
615
|
+
expect(explainStorageBackend().conflict).toBe(true);
|
|
616
|
+
});
|
|
617
|
+
});
|
|
618
|
+
|
|
568
619
|
describe('migrateStorage', () => {
|
|
569
620
|
it('runs migrations in version order', () => {
|
|
570
621
|
setStorageBackend(fakeBackend());
|
|
@@ -649,6 +700,24 @@ describe('migrateStorage', () => {
|
|
|
649
700
|
});
|
|
650
701
|
});
|
|
651
702
|
|
|
703
|
+
describe('observeStorageHostResult', () => {
|
|
704
|
+
afterEach(() => resetStorageBackendForTest());
|
|
705
|
+
|
|
706
|
+
it('records a successful observation', () => {
|
|
707
|
+
installStorageHostBackend(fakeBackend());
|
|
708
|
+
observeStorageHostResult('getItem', true);
|
|
709
|
+
const explanation = explainStorageBackend();
|
|
710
|
+
expect(explanation.operation).toBe('getItem');
|
|
711
|
+
expect(explanation.viability).toBe('available');
|
|
712
|
+
});
|
|
713
|
+
|
|
714
|
+
it('records a failed observation', () => {
|
|
715
|
+
installStorageHostBackend(fakeBackend());
|
|
716
|
+
observeStorageHostResult('getItem', false);
|
|
717
|
+
expect(explainStorageBackend().viability).toBe('runtime-api-unavailable');
|
|
718
|
+
});
|
|
719
|
+
});
|
|
720
|
+
|
|
652
721
|
describe('removeNamespacedStorageItem', () => {
|
|
653
722
|
it('removes a namespaced key', () => {
|
|
654
723
|
setStorageBackend(fakeBackend());
|
|
@@ -684,6 +753,18 @@ describe('removeStorageItems', () => {
|
|
|
684
753
|
});
|
|
685
754
|
});
|
|
686
755
|
|
|
756
|
+
describe('resetStorageBackendForTest', () => {
|
|
757
|
+
it('clears all backend slots', () => {
|
|
758
|
+
setStorageBackend(fakeBackend());
|
|
759
|
+
installStorageHostBackend(fakeBackend());
|
|
760
|
+
observeStorageHostResult('getItem', true);
|
|
761
|
+
resetStorageBackendForTest();
|
|
762
|
+
expect(explainStorageBackend().layer).toBe('host-not-enabled');
|
|
763
|
+
expect(explainStorageBackend().conflict).toBe(false);
|
|
764
|
+
expect(explainStorageBackend().viability).toBe('unobserved');
|
|
765
|
+
});
|
|
766
|
+
});
|
|
767
|
+
|
|
687
768
|
describe('setNamespacedStorageItem', () => {
|
|
688
769
|
it('stores under the prefixed key', () => {
|
|
689
770
|
setStorageBackend(fakeBackend());
|