implentado local valor
This commit is contained in:
parent
4637042883
commit
4a319bef73
8 changed files with 392 additions and 290 deletions
38
src/local/index.ts
Normal file
38
src/local/index.ts
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
/**
|
||||
* LocalStorage Tipado
|
||||
* Lê ou grava um valor no localStorage, mantendo o tipo genérico <T>.
|
||||
*/
|
||||
export const localValor = <T>(
|
||||
chave_: string | any,
|
||||
valor?: T | null,
|
||||
): T | null => {
|
||||
const localStorage = globalThis.localStorage
|
||||
|
||||
if (typeof localStorage == "undefined") return null
|
||||
|
||||
const chave =
|
||||
typeof chave_ === "string"
|
||||
? chave_
|
||||
: encodeURIComponent(JSON.stringify(chave_))
|
||||
|
||||
try {
|
||||
// Grava valor se fornecido
|
||||
if (valor !== undefined) {
|
||||
localStorage.setItem(chave, JSON.stringify(valor))
|
||||
}
|
||||
|
||||
// Lê valor
|
||||
const v2 = localStorage.getItem(chave)
|
||||
if (v2 === null) return null
|
||||
|
||||
try {
|
||||
return JSON.parse(v2) as T
|
||||
} catch {
|
||||
// Caso o valor não seja JSON válido
|
||||
return v2 as unknown as T
|
||||
}
|
||||
} catch {
|
||||
// Em caso de erro de acesso ao localStorage
|
||||
return null
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue