fastintear
Version:
Interact with FAST-INT-NEAR Protocol blockchain including transaction signing, utilities, and more.
1 lines • 3.04 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/utils/storage.ts"],"names":[],"mappings":";;;;;;AAAO,MAAM,QAAA,GAAW;AAUjB,MAAM,oBAAA,mBAAuB,MAAA,CAAA,MAClC,OAAO,YAAA,KAAiB,cACpB,YAAA,GACA;AAAA,EACA,yBAAS,MAAA,CAAA,CAAC,GAAA,KAAQ,YAAY,GAAA,CAAI,GAAG,KAAK,IAAA,EAAjC,SAAA,CAAA;AAAA,EACT,OAAA,0BAAU,GAAA,EAAK,KAAA,KAAU,YAAY,GAAA,CAAI,GAAA,EAAK,KAAK,CAAA,EAA1C,SAAA,CAAA;AAAA,EACT,4BAAY,MAAA,CAAA,CAAC,GAAA,KAAQ,WAAA,CAAY,MAAA,CAAO,GAAG,CAAA,EAA/B,YAAA,CAAA;AAAA,EACZ,KAAA,kBAAO,MAAA,CAAA,MAAM,WAAA,CAAY,KAAA,EAAM,EAAxB,OAAA;AACT,CAAA,EARgC,sBAAA;AAU7B,MAAM,WAAA,uBAAkB,GAAA;AAE/B,IAAI,iBAAiC,oBAAA,EAAqB;AAGnD,MAAM,OAAA,GAAU;AAAA,EACrB,UAAA,0BAAa,aAAA,KAAkC;AAC7C,IAAA,cAAA,GAAiB,aAAA;AAAA,EACnB,CAAA,EAFY,YAAA,CAAA;AAAA,EAIZ,GAAA,kBAAK,MAAA,CAAA,CAAC,GAAA,EAAa,KAAA,KAAe;AAChC,IAAA,IAAI,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,EAAW;AACzC,MAAA,cAAA,CAAe,UAAA,CAAW,WAAW,GAAG,CAAA;AAAA,IAC1C,CAAA,MAAO;AACL,MAAA,cAAA,CAAe,QAAQ,QAAA,GAAW,GAAA,EAAK,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,IAC9D;AAAA,EACF,CAAA,EANK,KAAA,CAAA;AAAA,EAQL,GAAA,0BAAM,GAAA,KAAqB;AACzB,IAAA,MAAM,KAAA,GAAQ,cAAA,CAAe,OAAA,CAAQ,QAAA,GAAW,GAAG,CAAA;AACnD,IAAA,IAAI,KAAA,KAAU,MAAM,OAAO,IAAA;AAC3B,IAAA,IAAI;AACF,MAAA,OAAO,IAAA,CAAK,MAAM,KAAK,CAAA;AAAA,IACzB,CAAA,CAAA,MAAQ;AACN,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,EACF,CAAA,EARK,KAAA,CAAA;AAAA,EAUL,wBAAQ,MAAA,CAAA,CAAC,GAAA,KAAgB,cAAA,CAAe,UAAA,CAAW,GAAG,CAAA,EAA9C,QAAA,CAAA;AAAA,EACR,KAAA,kBAAO,MAAA,CAAA,MAAM,cAAA,CAAe,KAAA,EAAM,EAA3B,OAAA;AACT","file":"storage.cjs","sourcesContent":["export const LsPrefix = \"__fastnear_\";\n\nexport interface StorageBackend {\n getItem(key: string): string | null;\n setItem(key: string, value: string): void;\n removeItem(key: string): void;\n clear(): void;\n}\n\n// Default: Use `localStorage` if available, otherwise an in-memory fallback\nexport const createDefaultStorage = (): StorageBackend =>\n typeof localStorage !== \"undefined\"\n ? localStorage\n : {\n getItem: (key) => memoryStore.get(key) || null,\n setItem: (key, value) => memoryStore.set(key, value),\n removeItem: (key) => memoryStore.delete(key),\n clear: () => memoryStore.clear(),\n };\n\nexport const memoryStore = new Map<string, string>(); // Internal memory storage\n\nlet storageBackend: StorageBackend = createDefaultStorage();\n\n// Functional storage module\nexport const storage = {\n setBackend: (customBackend: StorageBackend) => {\n storageBackend = customBackend;\n },\n\n set: (key: string, value: any) => {\n if (value === null || value === undefined) {\n storageBackend.removeItem(LsPrefix + key);\n } else {\n storageBackend.setItem(LsPrefix + key, JSON.stringify(value));\n }\n },\n\n get: (key: string): any => {\n const value = storageBackend.getItem(LsPrefix + key);\n if (value === null) return null;\n try {\n return JSON.parse(value);\n } catch {\n return value; // Return raw string if not JSON\n }\n },\n\n remove: (key: string) => storageBackend.removeItem(key),\n clear: () => storageBackend.clear(),\n};\n"]}