viem 2.47.19 → 2.48.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/CHANGELOG.md +20 -0
- package/_cjs/actions/public/fillTransaction.js +1 -1
- package/_cjs/actions/public/fillTransaction.js.map +1 -1
- package/_cjs/actions/wallet/signTransaction.js +1 -0
- package/_cjs/actions/wallet/signTransaction.js.map +1 -1
- package/_cjs/chains/definitions/ancient8Sepolia.js +1 -0
- package/_cjs/chains/definitions/ancient8Sepolia.js.map +1 -1
- package/_cjs/chains/definitions/artheraTestnet.js +1 -0
- package/_cjs/chains/definitions/artheraTestnet.js.map +1 -1
- package/_cjs/chains/definitions/autheoTestnet.js +1 -0
- package/_cjs/chains/definitions/autheoTestnet.js.map +1 -1
- package/_cjs/chains/definitions/codexTestnet.js +1 -0
- package/_cjs/chains/definitions/codexTestnet.js.map +1 -1
- package/_cjs/chains/definitions/dchainTestnet.js +1 -0
- package/_cjs/chains/definitions/dchainTestnet.js.map +1 -1
- package/_cjs/chains/definitions/edgelessTestnet.js +1 -0
- package/_cjs/chains/definitions/edgelessTestnet.js.map +1 -1
- package/_cjs/chains/definitions/edgewareTestnet.js +1 -0
- package/_cjs/chains/definitions/edgewareTestnet.js.map +1 -1
- package/_cjs/chains/definitions/evmosTestnet.js +1 -0
- package/_cjs/chains/definitions/evmosTestnet.js.map +1 -1
- package/_cjs/chains/definitions/exSatTestnet.js +1 -0
- package/_cjs/chains/definitions/exSatTestnet.js.map +1 -1
- package/_cjs/chains/definitions/flowPreviewnet.js +1 -0
- package/_cjs/chains/definitions/flowPreviewnet.js.map +1 -1
- package/_cjs/chains/definitions/fraxtalTestnet.js +1 -0
- package/_cjs/chains/definitions/fraxtalTestnet.js.map +1 -1
- package/_cjs/chains/definitions/haqqTestedge2.js +1 -0
- package/_cjs/chains/definitions/haqqTestedge2.js.map +1 -1
- package/_cjs/chains/definitions/horizenTestnet.js +2 -2
- package/_cjs/chains/definitions/horizenTestnet.js.map +1 -1
- package/_cjs/chains/definitions/huddle01Testnet.js +1 -0
- package/_cjs/chains/definitions/huddle01Testnet.js.map +1 -1
- package/_cjs/chains/definitions/humanodeTestnet5.js +1 -0
- package/_cjs/chains/definitions/humanodeTestnet5.js.map +1 -1
- package/_cjs/chains/definitions/meterTestnet.js +1 -0
- package/_cjs/chains/definitions/meterTestnet.js.map +1 -1
- package/_cjs/chains/definitions/metisGoerli.js +1 -0
- package/_cjs/chains/definitions/metisGoerli.js.map +1 -1
- package/_cjs/chains/definitions/metisSepolia.js +1 -0
- package/_cjs/chains/definitions/metisSepolia.js.map +1 -1
- package/_cjs/chains/definitions/moonbeam.js +1 -1
- package/_cjs/chains/definitions/moonbeam.js.map +1 -1
- package/_cjs/chains/definitions/moonriver.js +1 -1
- package/_cjs/chains/definitions/moonriver.js.map +1 -1
- package/_cjs/chains/definitions/otimDevnet.js +1 -0
- package/_cjs/chains/definitions/otimDevnet.js.map +1 -1
- package/_cjs/chains/definitions/rolluxTestnet.js +1 -0
- package/_cjs/chains/definitions/rolluxTestnet.js.map +1 -1
- package/_cjs/chains/definitions/swellchainTestnet.js +1 -0
- package/_cjs/chains/definitions/swellchainTestnet.js.map +1 -1
- package/_cjs/chains/definitions/syscoinTestnet.js +1 -0
- package/_cjs/chains/definitions/syscoinTestnet.js.map +1 -1
- package/_cjs/chains/definitions/taikoKatla.js +1 -0
- package/_cjs/chains/definitions/taikoKatla.js.map +1 -1
- package/_cjs/chains/definitions/taikoTestnetSepolia.js +1 -0
- package/_cjs/chains/definitions/taikoTestnetSepolia.js.map +1 -1
- package/_cjs/chains/definitions/tempoDevnet.js +1 -0
- package/_cjs/chains/definitions/tempoDevnet.js.map +1 -1
- package/_cjs/chains/definitions/tempoModerato.js +1 -0
- package/_cjs/chains/definitions/tempoModerato.js.map +1 -1
- package/_cjs/chains/definitions/xdcTestnet.js +1 -0
- package/_cjs/chains/definitions/xdcTestnet.js.map +1 -1
- package/_cjs/chains/definitions/zkLinkNovaSepoliaTestnet.js +1 -0
- package/_cjs/chains/definitions/zkLinkNovaSepoliaTestnet.js.map +1 -1
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/tempo/Addresses.js +2 -1
- package/_cjs/tempo/Addresses.js.map +1 -1
- package/_cjs/tempo/Decorator.js +16 -0
- package/_cjs/tempo/Decorator.js.map +1 -1
- package/_cjs/tempo/Formatters.js +5 -1
- package/_cjs/tempo/Formatters.js.map +1 -1
- package/_cjs/tempo/Storage.js +77 -0
- package/_cjs/tempo/Storage.js.map +1 -0
- package/_cjs/tempo/actions/index.js +2 -1
- package/_cjs/tempo/actions/index.js.map +1 -1
- package/_cjs/tempo/actions/zone.js +432 -0
- package/_cjs/tempo/actions/zone.js.map +1 -0
- package/_cjs/tempo/index.js +2 -1
- package/_cjs/tempo/index.js.map +1 -1
- package/_cjs/tempo/zones/Abis.js +82 -0
- package/_cjs/tempo/zones/Abis.js.map +1 -0
- package/_cjs/tempo/zones/index.js +13 -0
- package/_cjs/tempo/zones/index.js.map +1 -0
- package/_cjs/tempo/zones/transport.js +24 -0
- package/_cjs/tempo/zones/transport.js.map +1 -0
- package/_cjs/tempo/zones/zone.js +53 -0
- package/_cjs/tempo/zones/zone.js.map +1 -0
- package/_esm/actions/public/fillTransaction.js +1 -1
- package/_esm/actions/public/fillTransaction.js.map +1 -1
- package/_esm/actions/wallet/signTransaction.js +1 -0
- package/_esm/actions/wallet/signTransaction.js.map +1 -1
- package/_esm/chains/definitions/ancient8Sepolia.js +1 -0
- package/_esm/chains/definitions/ancient8Sepolia.js.map +1 -1
- package/_esm/chains/definitions/artheraTestnet.js +1 -0
- package/_esm/chains/definitions/artheraTestnet.js.map +1 -1
- package/_esm/chains/definitions/autheoTestnet.js +1 -0
- package/_esm/chains/definitions/autheoTestnet.js.map +1 -1
- package/_esm/chains/definitions/codexTestnet.js +1 -0
- package/_esm/chains/definitions/codexTestnet.js.map +1 -1
- package/_esm/chains/definitions/dchainTestnet.js +1 -0
- package/_esm/chains/definitions/dchainTestnet.js.map +1 -1
- package/_esm/chains/definitions/edgelessTestnet.js +1 -0
- package/_esm/chains/definitions/edgelessTestnet.js.map +1 -1
- package/_esm/chains/definitions/edgewareTestnet.js +1 -0
- package/_esm/chains/definitions/edgewareTestnet.js.map +1 -1
- package/_esm/chains/definitions/evmosTestnet.js +1 -0
- package/_esm/chains/definitions/evmosTestnet.js.map +1 -1
- package/_esm/chains/definitions/exSatTestnet.js +1 -0
- package/_esm/chains/definitions/exSatTestnet.js.map +1 -1
- package/_esm/chains/definitions/flowPreviewnet.js +1 -0
- package/_esm/chains/definitions/flowPreviewnet.js.map +1 -1
- package/_esm/chains/definitions/fraxtalTestnet.js +1 -0
- package/_esm/chains/definitions/fraxtalTestnet.js.map +1 -1
- package/_esm/chains/definitions/haqqTestedge2.js +1 -0
- package/_esm/chains/definitions/haqqTestedge2.js.map +1 -1
- package/_esm/chains/definitions/horizenTestnet.js +2 -2
- package/_esm/chains/definitions/horizenTestnet.js.map +1 -1
- package/_esm/chains/definitions/huddle01Testnet.js +1 -0
- package/_esm/chains/definitions/huddle01Testnet.js.map +1 -1
- package/_esm/chains/definitions/humanodeTestnet5.js +1 -0
- package/_esm/chains/definitions/humanodeTestnet5.js.map +1 -1
- package/_esm/chains/definitions/meterTestnet.js +1 -0
- package/_esm/chains/definitions/meterTestnet.js.map +1 -1
- package/_esm/chains/definitions/metisGoerli.js +1 -0
- package/_esm/chains/definitions/metisGoerli.js.map +1 -1
- package/_esm/chains/definitions/metisSepolia.js +1 -0
- package/_esm/chains/definitions/metisSepolia.js.map +1 -1
- package/_esm/chains/definitions/moonbeam.js +1 -1
- package/_esm/chains/definitions/moonbeam.js.map +1 -1
- package/_esm/chains/definitions/moonriver.js +1 -1
- package/_esm/chains/definitions/moonriver.js.map +1 -1
- package/_esm/chains/definitions/otimDevnet.js +1 -0
- package/_esm/chains/definitions/otimDevnet.js.map +1 -1
- package/_esm/chains/definitions/rolluxTestnet.js +1 -0
- package/_esm/chains/definitions/rolluxTestnet.js.map +1 -1
- package/_esm/chains/definitions/swellchainTestnet.js +1 -0
- package/_esm/chains/definitions/swellchainTestnet.js.map +1 -1
- package/_esm/chains/definitions/syscoinTestnet.js +1 -0
- package/_esm/chains/definitions/syscoinTestnet.js.map +1 -1
- package/_esm/chains/definitions/taikoKatla.js +1 -0
- package/_esm/chains/definitions/taikoKatla.js.map +1 -1
- package/_esm/chains/definitions/taikoTestnetSepolia.js +1 -0
- package/_esm/chains/definitions/taikoTestnetSepolia.js.map +1 -1
- package/_esm/chains/definitions/tempoDevnet.js +1 -0
- package/_esm/chains/definitions/tempoDevnet.js.map +1 -1
- package/_esm/chains/definitions/tempoModerato.js +1 -0
- package/_esm/chains/definitions/tempoModerato.js.map +1 -1
- package/_esm/chains/definitions/xdcTestnet.js +1 -0
- package/_esm/chains/definitions/xdcTestnet.js.map +1 -1
- package/_esm/chains/definitions/zkLinkNovaSepoliaTestnet.js +1 -0
- package/_esm/chains/definitions/zkLinkNovaSepoliaTestnet.js.map +1 -1
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/tempo/Addresses.js +1 -0
- package/_esm/tempo/Addresses.js.map +1 -1
- package/_esm/tempo/Decorator.js +16 -0
- package/_esm/tempo/Decorator.js.map +1 -1
- package/_esm/tempo/Formatters.js +5 -1
- package/_esm/tempo/Formatters.js.map +1 -1
- package/_esm/tempo/Storage.js +96 -0
- package/_esm/tempo/Storage.js.map +1 -0
- package/_esm/tempo/actions/index.js +1 -0
- package/_esm/tempo/actions/index.js.map +1 -1
- package/_esm/tempo/actions/zone.js +786 -0
- package/_esm/tempo/actions/zone.js.map +1 -0
- package/_esm/tempo/index.js +1 -0
- package/_esm/tempo/index.js.map +1 -1
- package/_esm/tempo/zones/Abis.js +79 -0
- package/_esm/tempo/zones/Abis.js.map +1 -0
- package/_esm/tempo/zones/index.js +5 -0
- package/_esm/tempo/zones/index.js.map +1 -0
- package/_esm/tempo/zones/transport.js +39 -0
- package/_esm/tempo/zones/transport.js.map +1 -0
- package/_esm/tempo/zones/zone.js +49 -0
- package/_esm/tempo/zones/zone.js.map +1 -0
- package/_types/actions/wallet/signTransaction.d.ts.map +1 -1
- package/_types/chains/definitions/ancient8Sepolia.d.ts +1 -1
- package/_types/chains/definitions/ancient8Sepolia.d.ts.map +1 -1
- package/_types/chains/definitions/artheraTestnet.d.ts +1 -1
- package/_types/chains/definitions/artheraTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/autheoTestnet.d.ts +1 -1
- package/_types/chains/definitions/autheoTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/codexTestnet.d.ts +1 -1
- package/_types/chains/definitions/codexTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/dchainTestnet.d.ts +1 -1
- package/_types/chains/definitions/dchainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/edgelessTestnet.d.ts +1 -1
- package/_types/chains/definitions/edgelessTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/edgewareTestnet.d.ts +1 -1
- package/_types/chains/definitions/edgewareTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/evmosTestnet.d.ts +1 -1
- package/_types/chains/definitions/evmosTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/exSatTestnet.d.ts +1 -1
- package/_types/chains/definitions/exSatTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/flowPreviewnet.d.ts +1 -1
- package/_types/chains/definitions/flowPreviewnet.d.ts.map +1 -1
- package/_types/chains/definitions/fraxtalTestnet.d.ts +1 -1
- package/_types/chains/definitions/fraxtalTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/haqqTestedge2.d.ts +1 -1
- package/_types/chains/definitions/haqqTestedge2.d.ts.map +1 -1
- package/_types/chains/definitions/horizenTestnet.d.ts +2 -2
- package/_types/chains/definitions/huddle01Testnet.d.ts +1 -1
- package/_types/chains/definitions/huddle01Testnet.d.ts.map +1 -1
- package/_types/chains/definitions/humanodeTestnet5.d.ts +1 -1
- package/_types/chains/definitions/humanodeTestnet5.d.ts.map +1 -1
- package/_types/chains/definitions/meterTestnet.d.ts +1 -1
- package/_types/chains/definitions/meterTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/metisGoerli.d.ts +1 -1
- package/_types/chains/definitions/metisGoerli.d.ts.map +1 -1
- package/_types/chains/definitions/metisSepolia.d.ts +1 -1
- package/_types/chains/definitions/metisSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/moonbeam.d.ts +1 -1
- package/_types/chains/definitions/moonriver.d.ts +1 -1
- package/_types/chains/definitions/otimDevnet.d.ts +1 -1
- package/_types/chains/definitions/otimDevnet.d.ts.map +1 -1
- package/_types/chains/definitions/rolluxTestnet.d.ts +1 -1
- package/_types/chains/definitions/rolluxTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/swellchainTestnet.d.ts +1 -1
- package/_types/chains/definitions/swellchainTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/syscoinTestnet.d.ts +1 -1
- package/_types/chains/definitions/syscoinTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/taikoKatla.d.ts +1 -1
- package/_types/chains/definitions/taikoKatla.d.ts.map +1 -1
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts +1 -1
- package/_types/chains/definitions/taikoTestnetSepolia.d.ts.map +1 -1
- package/_types/chains/definitions/tempoDevnet.d.ts +2 -1
- package/_types/chains/definitions/tempoDevnet.d.ts.map +1 -1
- package/_types/chains/definitions/tempoModerato.d.ts +2 -1
- package/_types/chains/definitions/tempoModerato.d.ts.map +1 -1
- package/_types/chains/definitions/xdcTestnet.d.ts +1 -1
- package/_types/chains/definitions/xdcTestnet.d.ts.map +1 -1
- package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts +1 -1
- package/_types/chains/definitions/zkLinkNovaSepoliaTestnet.d.ts.map +1 -1
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/tempo/Addresses.d.ts +1 -0
- package/_types/tempo/Addresses.d.ts.map +1 -1
- package/_types/tempo/Decorator.d.ts +283 -0
- package/_types/tempo/Decorator.d.ts.map +1 -1
- package/_types/tempo/Formatters.d.ts.map +1 -1
- package/_types/tempo/Storage.d.ts +42 -0
- package/_types/tempo/Storage.d.ts.map +1 -0
- package/_types/tempo/actions/index.d.ts +1 -0
- package/_types/tempo/actions/index.d.ts.map +1 -1
- package/_types/tempo/actions/zone.d.ts +874 -0
- package/_types/tempo/actions/zone.d.ts.map +1 -0
- package/_types/tempo/index.d.ts +1 -0
- package/_types/tempo/index.d.ts.map +1 -1
- package/_types/tempo/zones/Abis.d.ts +124 -0
- package/_types/tempo/zones/Abis.d.ts.map +1 -0
- package/_types/tempo/zones/index.d.ts +4 -0
- package/_types/tempo/zones/index.d.ts.map +1 -0
- package/_types/tempo/zones/transport.d.ts +26 -0
- package/_types/tempo/zones/transport.d.ts.map +1 -0
- package/_types/tempo/zones/zone.d.ts +2775 -0
- package/_types/tempo/zones/zone.d.ts.map +1 -0
- package/actions/public/fillTransaction.ts +1 -1
- package/actions/wallet/signTransaction.ts +1 -0
- package/chains/definitions/ancient8Sepolia.ts +1 -0
- package/chains/definitions/artheraTestnet.ts +1 -0
- package/chains/definitions/autheoTestnet.ts +1 -0
- package/chains/definitions/codexTestnet.ts +1 -0
- package/chains/definitions/dchainTestnet.ts +1 -0
- package/chains/definitions/edgelessTestnet.ts +1 -0
- package/chains/definitions/edgewareTestnet.ts +1 -0
- package/chains/definitions/evmosTestnet.ts +1 -0
- package/chains/definitions/exSatTestnet.ts +1 -0
- package/chains/definitions/flowPreviewnet.ts +1 -0
- package/chains/definitions/fraxtalTestnet.ts +1 -0
- package/chains/definitions/haqqTestedge2.ts +1 -0
- package/chains/definitions/horizenTestnet.ts +2 -2
- package/chains/definitions/huddle01Testnet.ts +1 -0
- package/chains/definitions/humanodeTestnet5.ts +1 -0
- package/chains/definitions/meterTestnet.ts +1 -0
- package/chains/definitions/metisGoerli.ts +1 -0
- package/chains/definitions/metisSepolia.ts +1 -0
- package/chains/definitions/moonbeam.ts +1 -1
- package/chains/definitions/moonriver.ts +1 -1
- package/chains/definitions/otimDevnet.ts +1 -0
- package/chains/definitions/rolluxTestnet.ts +1 -0
- package/chains/definitions/swellchainTestnet.ts +1 -0
- package/chains/definitions/syscoinTestnet.ts +1 -0
- package/chains/definitions/taikoKatla.ts +1 -0
- package/chains/definitions/taikoTestnetSepolia.ts +1 -0
- package/chains/definitions/tempoDevnet.ts +1 -0
- package/chains/definitions/tempoModerato.ts +1 -0
- package/chains/definitions/xdcTestnet.ts +1 -0
- package/chains/definitions/zkLinkNovaSepoliaTestnet.ts +1 -0
- package/errors/version.ts +1 -1
- package/package.json +7 -2
- package/tempo/Addresses.ts +1 -0
- package/tempo/Decorator.ts +337 -0
- package/tempo/Formatters.ts +5 -1
- package/tempo/Storage.ts +118 -0
- package/tempo/actions/index.ts +1 -0
- package/tempo/actions/zone.ts +1317 -0
- package/tempo/index.ts +1 -0
- package/tempo/zones/Abis.ts +79 -0
- package/tempo/zones/index.ts +10 -0
- package/tempo/zones/package.json +6 -0
- package/tempo/zones/transport.ts +58 -0
- package/tempo/zones/zone.ts +70 -0
package/tempo/Storage.ts
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import type { MaybePromise } from '../types/utils.js'
|
|
2
|
+
|
|
3
|
+
export type Storage = {
|
|
4
|
+
getItem(key: string): MaybePromise<string | null | undefined>
|
|
5
|
+
setItem(key: string, value: string): MaybePromise<void>
|
|
6
|
+
removeItem(key: string): MaybePromise<void>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Wraps a base storage with an optional key prefix and request
|
|
11
|
+
* deduplication — concurrent `getItem` calls for the same key share
|
|
12
|
+
* a single in-flight promise.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import * as Storage from 'viem/tempo/zones'
|
|
17
|
+
*
|
|
18
|
+
* const storage = Storage.from(Storage.memory(), { key: 'tempo' })
|
|
19
|
+
* await storage.setItem('foo', 'bar')
|
|
20
|
+
* // stored under "tempo:foo"
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function from(storage: Storage, options: from.Options = {}): Storage {
|
|
24
|
+
const { key } = options
|
|
25
|
+
const prefix = key ? `${key}:` : ''
|
|
26
|
+
const inflight = new Map<string, Promise<string | null | undefined>>()
|
|
27
|
+
return {
|
|
28
|
+
getItem(k) {
|
|
29
|
+
const fullKey = `${prefix}${k}`
|
|
30
|
+
const existing = inflight.get(fullKey)
|
|
31
|
+
if (existing) return existing
|
|
32
|
+
const result = Promise.resolve(storage.getItem(fullKey)).finally(() => {
|
|
33
|
+
inflight.delete(fullKey)
|
|
34
|
+
})
|
|
35
|
+
inflight.set(fullKey, result)
|
|
36
|
+
return result
|
|
37
|
+
},
|
|
38
|
+
setItem(k, value) {
|
|
39
|
+
const fullKey = `${prefix}${k}`
|
|
40
|
+
inflight.delete(fullKey)
|
|
41
|
+
return storage.setItem(fullKey, value)
|
|
42
|
+
},
|
|
43
|
+
removeItem(k) {
|
|
44
|
+
const fullKey = `${prefix}${k}`
|
|
45
|
+
inflight.delete(fullKey)
|
|
46
|
+
return storage.removeItem(fullKey)
|
|
47
|
+
},
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export declare namespace from {
|
|
52
|
+
type Options = {
|
|
53
|
+
/** Key prefix prepended to all storage keys. */
|
|
54
|
+
key?: string | undefined
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Creates an in-memory storage backed by a `Map`. */
|
|
59
|
+
export function memory(options: from.Options = {}): Storage {
|
|
60
|
+
const store = new Map<string, string>()
|
|
61
|
+
return from(
|
|
62
|
+
{
|
|
63
|
+
getItem(key) {
|
|
64
|
+
return store.get(key) ?? null
|
|
65
|
+
},
|
|
66
|
+
setItem(key, value) {
|
|
67
|
+
store.set(key, value)
|
|
68
|
+
},
|
|
69
|
+
removeItem(key) {
|
|
70
|
+
store.delete(key)
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
options,
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** Creates a storage backed by `globalThis.sessionStorage`. */
|
|
78
|
+
export function session(options: from.Options = {}): Storage {
|
|
79
|
+
return from(
|
|
80
|
+
{
|
|
81
|
+
getItem(key) {
|
|
82
|
+
return globalThis.sessionStorage.getItem(key)
|
|
83
|
+
},
|
|
84
|
+
setItem(key, value) {
|
|
85
|
+
try {
|
|
86
|
+
globalThis.sessionStorage.setItem(key, value)
|
|
87
|
+
} catch {}
|
|
88
|
+
},
|
|
89
|
+
removeItem(key) {
|
|
90
|
+
globalThis.sessionStorage.removeItem(key)
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
options,
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
let _default: Storage | undefined
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Returns the default storage for the current environment.
|
|
101
|
+
*
|
|
102
|
+
* Returns a singleton so that the zone transport and actions share the
|
|
103
|
+
* same instance without requiring explicit plumbing.
|
|
104
|
+
*
|
|
105
|
+
* - Browser: `sessionStorage`
|
|
106
|
+
* - Server/unsupported: in-memory `Map`-based storage
|
|
107
|
+
*/
|
|
108
|
+
export function defaultStorage(): Storage {
|
|
109
|
+
if (_default) return _default
|
|
110
|
+
if (
|
|
111
|
+
typeof globalThis !== 'undefined' &&
|
|
112
|
+
'sessionStorage' in globalThis &&
|
|
113
|
+
globalThis.sessionStorage
|
|
114
|
+
)
|
|
115
|
+
_default = session()
|
|
116
|
+
else _default = memory()
|
|
117
|
+
return _default
|
|
118
|
+
}
|
package/tempo/actions/index.ts
CHANGED