Skip to content

GramIO API Reference / @gramio/storage/dist / Storage

Interface: Storage<Data>

Defined in: storage/index.d.ts:49

Type of base storage which should implement all of storages

Examples

ts
import type { Storage } from "@gramio/storage";
import ThirdPartyStorage, { type ThirdPartyStorageOptions } from "some-library";

export interface MyOwnStorageOptions extends ThirdPartyStorageOptions {
    some?: number;
}

export function myOwnStorage(options: MyOwnStorageOptions = {}): Storage {
    const storage = new ThirdPartyStorage(options);

    return {
        async get(key) {
            const data = await storage.get(key);

            return data ? JSON.parse(data) : undefined;
        },
        async has(key) {
            return storage.has(key);
        },
        async set(key, value) {
            await storage.set(key, JSON.stringify(value));
        },
        async delete(key) {
            return storage.delete(key);
        },
    };
}
ts
type T = Record<`Test${number}`, number> & Record<`Something${number}`, string>;
const storage = inMemoryStorage<T>();
const v1 = storage.get("Test1");   // v1: number | undefined
const v2 = storage.get("Something1");  // v2: string | undefined

Type Parameters

Type ParameterDefault type
Data extends Record<string, any>Record<string, any>

Methods

delete()

delete<K>(key): MaybePromise<boolean>

Defined in: storage/index.d.ts:81

delete value from storage by the key.

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterType
keyK

Returns

MaybePromise<boolean>

Example

ts
await storage.delete("key");

get()

get<K>(key): MaybePromise<Data[K]>

Defined in: storage/index.d.ts:57

get value from a storage.

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterType
keyK

Returns

MaybePromise<Data[K]>

Example

ts
const data = await storage.get("key");

has()

has<K>(key): MaybePromise<boolean>

Defined in: storage/index.d.ts:73

has storage value by the key?

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterType
keyK

Returns

MaybePromise<boolean>

Example

ts
const isKeyExists = await storage.has("key");

set()

set<K>(key, value): MaybePromise<void>

Defined in: storage/index.d.ts:65

set value to a storage by the key.

Type Parameters

Type Parameter
K extends string | number | symbol

Parameters

ParameterType
keyK
valueData[K]

Returns

MaybePromise<void>

Example

ts
await storage.set("key", { value: true });