UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 2.83 kB
{"version":3,"file":"keyValue.js","names":[],"sources":["esm/platform/database/keyValue.js"],"sourcesContent":["import {\n assertOpen,\n requireKey,\n requireName,\n requireValue\n} from \"./keyValueValidate\";\nfunction storagePrefix(name) {\n return `One.Database.kv|${name}|`;\n}\nfunction openKeyValue(options) {\n const name = requireName(options?.name);\n if (typeof localStorage === \"undefined\") {\n throw new Error(\"Database.openKeyValue requires localStorage in this runtime\");\n }\n const prefix = storagePrefix(name);\n let closed = false;\n function matchingKeys() {\n const keys = [];\n for (let index = 0; index < localStorage.length; index++) {\n const stored = localStorage.key(index);\n if (stored?.startsWith(prefix)) keys.push(stored);\n }\n return keys;\n }\n return Object.freeze({\n getItem(key) {\n assertOpen(\"Database.getItem\", closed);\n requireKey(\"Database.getItem\", key);\n return localStorage.getItem(prefix + key);\n },\n setItem(key, value) {\n assertOpen(\"Database.setItem\", closed);\n requireKey(\"Database.setItem\", key);\n requireValue(\"Database.setItem\", value);\n localStorage.setItem(prefix + key, value);\n },\n removeItem(key) {\n assertOpen(\"Database.removeItem\", closed);\n requireKey(\"Database.removeItem\", key);\n localStorage.removeItem(prefix + key);\n },\n getAllKeys() {\n assertOpen(\"Database.getAllKeys\", closed);\n return matchingKeys().map((stored) => stored.slice(prefix.length)).sort();\n },\n clear() {\n assertOpen(\"Database.clear\", closed);\n for (const stored of matchingKeys()) localStorage.removeItem(stored);\n },\n close() {\n closed = true;\n }\n });\n}\nexport {\n openKeyValue\n};\n//# sourceMappingURL=keyValue.js.map\n"],"mappings":";;;AAMA,SAAS,cAAc,MAAM;CAC3B,OAAO,mBAAmB,KAAK;AACjC;AACA,SAAS,aAAa,SAAS;CAC7B,MAAM,OAAO,YAAY,SAAS,IAAI;CACtC,IAAI,OAAO,iBAAiB,aAAa;EACvC,MAAM,IAAI,MAAM,6DAA6D;CAC/E;CACA,MAAM,SAAS,cAAc,IAAI;CACjC,IAAI,SAAS;CACb,SAAS,eAAe;EACtB,MAAM,OAAO,CAAC;EACd,KAAK,IAAI,QAAQ,GAAG,QAAQ,aAAa,QAAQ,SAAS;GACxD,MAAM,SAAS,aAAa,IAAI,KAAK;GACrC,IAAI,QAAQ,WAAW,MAAM,GAAG,KAAK,KAAK,MAAM;EAClD;EACA,OAAO;CACT;CACA,OAAO,OAAO,OAAO;EACnB,QAAQ,KAAK;GACX,WAAW,oBAAoB,MAAM;GACrC,WAAW,oBAAoB,GAAG;GAClC,OAAO,aAAa,QAAQ,SAAS,GAAG;EAC1C;EACA,QAAQ,KAAK,OAAO;GAClB,WAAW,oBAAoB,MAAM;GACrC,WAAW,oBAAoB,GAAG;GAClC,aAAa,oBAAoB,KAAK;GACtC,aAAa,QAAQ,SAAS,KAAK,KAAK;EAC1C;EACA,WAAW,KAAK;GACd,WAAW,uBAAuB,MAAM;GACxC,WAAW,uBAAuB,GAAG;GACrC,aAAa,WAAW,SAAS,GAAG;EACtC;EACA,aAAa;GACX,WAAW,uBAAuB,MAAM;GACxC,OAAO,aAAa,CAAC,CAAC,KAAK,WAAW,OAAO,MAAM,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK;EAC1E;EACA,QAAQ;GACN,WAAW,kBAAkB,MAAM;GACnC,KAAK,MAAM,UAAU,aAAa,GAAG,aAAa,WAAW,MAAM;EACrE;EACA,QAAQ;GACN,SAAS;EACX;CACF,CAAC;AACH"}