mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-19 04:57:52 +00:00
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
|
|
import { AES, SHA1, enc } from "crypto-js";
|
||
|
|
import { environment } from 'src/environments/environment'
|
||
|
|
|
||
|
|
|
||
|
|
function prefix() {
|
||
|
|
return environment.version.lastCommitNumber + environment.id+"-";
|
||
|
|
}
|
||
|
|
|
||
|
|
export function GET({key, localStorage, instance}) {
|
||
|
|
if(environment.storageProduction) {
|
||
|
|
|
||
|
|
try {
|
||
|
|
const newKey = prefix() + SHA1(key).toString()
|
||
|
|
const cipherText = localStorage.getItem(newKey)
|
||
|
|
const bytes = AES.decrypt(cipherText, newKey)
|
||
|
|
var decryptedData = bytes.toString(enc.Utf8);
|
||
|
|
const restoredData = JSON.parse(decryptedData)
|
||
|
|
|
||
|
|
Object.assign(instance, restoredData);
|
||
|
|
|
||
|
|
return restoredData
|
||
|
|
|
||
|
|
} catch(error) {
|
||
|
|
console.log(error)
|
||
|
|
return {}
|
||
|
|
}
|
||
|
|
|
||
|
|
} else {
|
||
|
|
return JSON.parse(localStorage.getItem(prefix() + key))
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
export function SAVE({key, localStorage, instance, dataToSave}) {
|
||
|
|
if(environment.storageProduction) {
|
||
|
|
const newKey = prefix() + SHA1(key).toString()
|
||
|
|
const stringifyData = JSON.stringify(dataToSave)
|
||
|
|
|
||
|
|
const cipherText = AES.encrypt(stringifyData, newKey).toString();
|
||
|
|
|
||
|
|
localStorage.setItem(newKey, cipherText)
|
||
|
|
|
||
|
|
} else {
|
||
|
|
localStorage.setItem(prefix() + key, dataToSave)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export function DELETE({key, localStorage, instance}) {
|
||
|
|
if(environment.storageProduction) {
|
||
|
|
const newKey = prefix() + SHA1(key).toString()
|
||
|
|
localStorage.removeItem(newKey)
|
||
|
|
|
||
|
|
} else {
|
||
|
|
localStorage.removeItem(prefix() + key)
|
||
|
|
}
|
||
|
|
}
|