{ "version": 3, "sources": ["../javascripts/utils/indexedDb.ts"], "sourcesContent": ["const dbName = 'wayke-db';\nlet db: IDBDatabase | undefined;\n\nexport const indexedDbInitialize = async (version = 1) => {\n if (db) return db;\n\n const _db = await new Promise((resolve, reject) => {\n const openRequest = indexedDB.open(dbName, version);\n openRequest.onerror = () => {\n reject(false);\n };\n openRequest.onsuccess = () => {\n resolve(openRequest.result);\n };\n openRequest.onupgradeneeded = () => {\n if (!openRequest.result.objectStoreNames.contains('assignment')) {\n openRequest.result.createObjectStore('assignment', { autoIncrement: true });\n }\n };\n });\n db = _db;\n return db;\n};\n\nexport const indexedDbSet = async (store: string, value: any, key: string) => {\n if (!db) throw 'Db not initialized';\n\n await new Promise((resolve, reject) => {\n const transaction = db!.transaction(store, 'readwrite');\n\n const userObjectStore = transaction.objectStore(store);\n\n const request = userObjectStore.put(value, key);\n\n request.onsuccess = () => {\n resolve(true);\n };\n\n request.onerror = () => {\n reject(true);\n };\n });\n};\n\nexport const indexedDbGet = async (store: string, key: string) => {\n if (!db) throw 'Db not initialized';\n\n const result = await new Promise((resolve, reject) => {\n const transaction = db!.transaction(store, 'readonly');\n const userObjectStore = transaction.objectStore(store);\n\n const request = userObjectStore.get(key);\n\n request.onsuccess = () => {\n resolve(request.result);\n };\n\n request.onerror = () => {\n reject(false);\n };\n });\n return result;\n};\n\nexport const indexedDbDelete = async (store: string, key: string) => {\n if (!db) throw 'Db not initialized';\n\n const result = await new Promise((resolve, reject) => {\n const transaction = db!.transaction(store, 'readwrite');\n const userObjectStore = transaction.objectStore(store);\n\n const request = userObjectStore.delete(key);\n\n request.onsuccess = () => {\n resolve(request.result);\n };\n\n request.onerror = () => {\n reject(false);\n };\n });\n return result;\n};\n\nexport const indexedDbAssignmentSet = async (value: any) => {\n await indexedDbInitialize();\n await indexedDbSet('assignment', value, '1');\n};\n\nexport const indexedDbAssignmentGet = async () => {\n await indexedDbInitialize();\n return await indexedDbGet('assignment', '1');\n};\n\nexport const indexedDbAssignmentClear = async () => {\n await indexedDbInitialize();\n return await indexedDbDelete('assignment', '1');\n};\n"], "mappings": "AAAA,IAAMA,EAAS,WACXC,EAESC,EAAsB,MAAOC,EAAU,IAC9CF,IAgBJA,EAdY,MAAM,IAAI,QAAqB,CAACG,EAASC,IAAW,CAC9D,IAAMC,EAAc,UAAU,KAAKN,EAAQG,CAAO,EAClDG,EAAY,QAAU,IAAM,CAC1BD,EAAO,EAAK,CACd,EACAC,EAAY,UAAY,IAAM,CAC5BF,EAAQE,EAAY,MAAM,CAC5B,EACAA,EAAY,gBAAkB,IAAM,CAC7BA,EAAY,OAAO,iBAAiB,SAAS,YAAY,GAC5DA,EAAY,OAAO,kBAAkB,aAAc,CAAE,cAAe,EAAK,CAAC,CAE9E,CACF,CAAC,EAEML,GAGIM,EAAe,MAAOC,EAAeC,EAAYC,IAAgB,CAC5E,GAAI,CAACT,EAAI,KAAM,qBAEf,MAAM,IAAI,QAAQ,CAACG,EAASC,IAAW,CAKrC,IAAMM,EAJcV,EAAI,YAAYO,EAAO,WAAW,EAElB,YAAYA,CAAK,EAErB,IAAIC,EAAOC,CAAG,EAE9CC,EAAQ,UAAY,IAAM,CACxBP,EAAQ,EAAI,CACd,EAEAO,EAAQ,QAAU,IAAM,CACtBN,EAAO,EAAI,CACb,CACF,CAAC,CACH,EAEaO,EAAe,MAAOJ,EAAeE,IAAgB,CAChE,GAAI,CAACT,EAAI,KAAM,qBAgBf,OAde,MAAM,IAAI,QAAQ,CAACG,EAASC,IAAW,CAIpD,IAAMM,EAHcV,EAAI,YAAYO,EAAO,UAAU,EACjB,YAAYA,CAAK,EAErB,IAAIE,CAAG,EAEvCC,EAAQ,UAAY,IAAM,CACxBP,EAAQO,EAAQ,MAAM,CACxB,EAEAA,EAAQ,QAAU,IAAM,CACtBN,EAAO,EAAK,CACd,CACF,CAAC,CAEH,EAEaQ,EAAkB,MAAOL,EAAeE,IAAgB,CACnE,GAAI,CAACT,EAAI,KAAM,qBAgBf,OAde,MAAM,IAAI,QAAQ,CAACG,EAASC,IAAW,CAIpD,IAAMM,EAHcV,EAAI,YAAYO,EAAO,WAAW,EAClB,YAAYA,CAAK,EAErB,OAAOE,CAAG,EAE1CC,EAAQ,UAAY,IAAM,CACxBP,EAAQO,EAAQ,MAAM,CACxB,EAEAA,EAAQ,QAAU,IAAM,CACtBN,EAAO,EAAK,CACd,CACF,CAAC,CAEH,EAEaS,EAAyB,MAAOL,GAAe,CAC1D,MAAMP,EAAoB,EAC1B,MAAMK,EAAa,aAAcE,EAAO,GAAG,CAC7C,EAEaM,EAAyB,UACpC,MAAMb,EAAoB,EACnB,MAAMU,EAAa,aAAc,GAAG,GAGhCI,EAA2B,UACtC,MAAMd,EAAoB,EACnB,MAAMW,EAAgB,aAAc,GAAG", "names": ["dbName", "db", "indexedDbInitialize", "version", "resolve", "reject", "openRequest", "indexedDbSet", "store", "value", "key", "request", "indexedDbGet", "indexedDbDelete", "indexedDbAssignmentSet", "indexedDbAssignmentGet", "indexedDbAssignmentClear"] }