UNPKG

@livepeer/core

Version:

Livepeer UI Kit's core vanilla JS library.

1 lines 2.52 kB
{"version":3,"sources":["../../src/storage.ts","../../src/media/storage.ts"],"sourcesContent":["export { createStorage, noopStorage } from \"./media/storage\";\nexport type { ClientStorage } from \"./media/storage\";\n","interface BaseStorage {\n getItem: (name: string) => string | null | Promise<string | null>;\n setItem: (name: string, value: string) => void | Promise<void>;\n removeItem: (name: string) => void | Promise<void>;\n}\n\nexport type ClientStorage = {\n getItem: <T>(key: string, defaultState?: T | null) => Promise<T | null>;\n setItem: <T>(key: string, value: T | null) => Promise<void>;\n removeItem: (key: string) => Promise<void>;\n};\n\nexport const noopStorage: BaseStorage = {\n getItem: (_key) => \"\",\n setItem: (_key, _value) => {\n //\n },\n removeItem: (_key) => {\n //\n },\n};\n\nexport function createStorage({\n storage = noopStorage,\n key: prefix = \"livepeer\",\n}: {\n storage?: BaseStorage;\n key?: string;\n}): ClientStorage {\n return {\n getItem: async (key, defaultState = null) => {\n try {\n const value = await storage.getItem(`${prefix}.${key}`);\n return value ? JSON.parse(value) : defaultState;\n } catch (error) {\n console.warn(error);\n return defaultState;\n }\n },\n setItem: async (key, value) => {\n if (value === null) {\n await storage.removeItem(`${prefix}.${key}`);\n } else {\n try {\n await storage.setItem(`${prefix}.${key}`, JSON.stringify(value));\n } catch (err) {\n console.error(err);\n }\n }\n },\n removeItem: async (key) => storage.removeItem(`${prefix}.${key}`),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACYO,IAAM,cAA2B;AAAA,EACtC,SAAS,CAAC,SAAS;AAAA,EACnB,SAAS,CAAC,MAAM,WAAW;AAAA,EAE3B;AAAA,EACA,YAAY,CAAC,SAAS;AAAA,EAEtB;AACF;AAEO,SAAS,cAAc;AAAA,EAC5B,UAAU;AAAA,EACV,KAAK,SAAS;AAChB,GAGkB;AAChB,SAAO;AAAA,IACL,SAAS,OAAO,KAAK,eAAe,SAAS;AAC3C,UAAI;AACF,cAAM,QAAQ,MAAM,QAAQ,QAAQ,GAAG,MAAM,IAAI,GAAG,EAAE;AACtD,eAAO,QAAQ,KAAK,MAAM,KAAK,IAAI;AAAA,MACrC,SAAS,OAAO;AACd,gBAAQ,KAAK,KAAK;AAClB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,SAAS,OAAO,KAAK,UAAU;AAC7B,UAAI,UAAU,MAAM;AAClB,cAAM,QAAQ,WAAW,GAAG,MAAM,IAAI,GAAG,EAAE;AAAA,MAC7C,OAAO;AACL,YAAI;AACF,gBAAM,QAAQ,QAAQ,GAAG,MAAM,IAAI,GAAG,IAAI,KAAK,UAAU,KAAK,CAAC;AAAA,QACjE,SAAS,KAAK;AACZ,kBAAQ,MAAM,GAAG;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AAAA,IACA,YAAY,OAAO,QAAQ,QAAQ,WAAW,GAAG,MAAM,IAAI,GAAG,EAAE;AAAA,EAClE;AACF;","names":[]}