Persistable
Persistable
gestiona el almacenamiento de datos no estructurados asociados a un elemento de la escena.
static use(name: string): Persistable
Devuelve una instancia de Persistable
conectada a un objeto específico de la escena para operaciones de persistencia.
Parámetros:
name
: El nombre del objeto a asociar con este almacenamiento persistente.
Ejemplo:
const store = Persistable.use('player');
inspect(): Promise<any>
Devuelve el estado actual de todos los datos persistidos.
Retorna:
- Una promesa que se resuelve con los datos del objeto, o
null
en caso de fallo.
Ejemplo:
const data = await store.inspect();
console.log(data);
get(key: string, defaultValue?: any): Promise<any>
Obtiene un valor del almacenamiento persistente por su clave.
Parámetros:
key
: El nombre de la propiedad a recuperar.defaultValue
(opcional): El valor por defecto si no se encuentra la propiedad o ocurre un error.
Ejemplo:
const score = await store.get('score', 0);
set(key: string, value: any): Promise<any>
Almacena un valor bajo la clave dada, reemplazando cualquier valor existente.
Parámetros:
key
: El nombre de la propiedad a establecer.value
: El valor a almacenar.
Retorna:
- Una promesa que se resuelve con los datos actualizados del objeto, o
null
en caso de fallo.
Ejemplo:
await store.set('score', 100);
delete(key: string): Promise<any>
Elimina un par clave–valor específico del almacenamiento persistente.
Parámetros:
key
: El nombre de la propiedad a eliminar.
Ejemplo:
await store.delete('score');
clear(): Promise<boolean>
Elimina todos los datos almacenados asociados al objeto conectado, restableciéndolo a un objeto vacío.
Retorna:
- Una promesa que se resuelve en
true
en caso de éxito,false
en caso de fallo.
Ejemplo:
await store.clear();
inc(key: string, value: number): Promise<any>
Incrementa un valor numérico almacenado en la cantidad especificada.
Parámetros:
key
: La clave del valor numérico a incrementar.value
: La cantidad a sumar.
Ejemplo:
await store.inc('score', 10);
mult(key: string, value: number): Promise<any>
Multiplica un valor numérico almacenado por el factor dado.
Parámetros:
key
: La clave del valor numérico a multiplicar.value
: El multiplicador.
Ejemplo:
await store.mult('score', 2);
arrPush(key: string, item: any): Promise<any>
Agrega un elemento al final de un arreglo en el almacenamiento persistente.
Parámetros:
key
: El nombre de la propiedad del arreglo.item
: El elemento a añadir.
Ejemplo:
await store.arrPush('items', 'sword');
arrInsertAt(key: string, index: number, item: any): Promise<any>
Inserta un elemento en una posición específica de un arreglo almacenado.
Parámetros:
key
: El nombre de la propiedad del arreglo.index
: La posición en la que insertar el elemento.item
: El elemento a insertar.
Ejemplo:
await store.arrInsertAt('items', 1, 'shield');
arrPull(key: string, value: any): Promise<any>
Elimina todas las ocurrencias de un valor en el arreglo del almacenamiento persistente.
Parámetros:
key
: El nombre de la propiedad del arreglo.value
: El valor a eliminar del arreglo.
Ejemplo:
await store.arrPull('items', 'sword');
arrPullAt(key: string, index: number): Promise<any>
Elimina un elemento en un índice específico de un arreglo almacenado.
Parámetros:
key
: El nombre de la propiedad del arreglo.index
: La posición del elemento a eliminar.
Ejemplo:
await store.arrPullAt('items', 0);
lock(timeoutInMilliseconds: number): Promise<boolean>
Bloquea el objeto persistente para evitar otras operaciones durante una duración determinada.
Parámetros:
timeoutInMilliseconds
: Duración en milisegundos para mantener el bloqueo.
Ejemplo:
await store.lock(5000);
unlock(): Promise<boolean>
Desbloquea manualmente el objeto persistente, habilitando más operaciones.
Ejemplo:
await store.unlock();
ttl(timestampInMilliseconds: number): Promise<boolean>
Establece un tiempo de vida (TTL) para los datos almacenados.
Parámetros:
timestampInMilliseconds
: Una marca de tiempo Unix (en milisegundos) después de la cual los datos deben expirar.
Ejemplo:
await store.ttl(Date.now() + 3600000); // expira en 1 hora
drop(): Promise<boolean>
Elimina completamente el objeto persistente del almacenamiento; todos los datos se perderán de forma irreversible.
Ejemplo:
await store.drop();