Function initStorage

  • Initialize a storage instance for a given context, name, and scope

    Type Parameters

    • T extends Record<string, any>

      Type of the data to be stored.

    Parameters

    • ctx: Context

      The context for which storage should be initialized.

    • name: string

      Name for the storage instance.

    • scope: "user" | "org" | "skill"

      Desired storage scope.

    Returns {
        get: (<K>(key: K) => Promise<T[K]>);
        getAll: (() => Promise<T>);
        name: string;
        path: string;
        remove: (<K>(key: K) => Promise<void>);
        removeAll: (() => Promise<void>);
        set: (<K>(key: K, val: T[K]) => Promise<void>);
        setAll: ((val: T) => Promise<void>);
        update: (<K>(key: K, callback: ((data: T[K]) => Promise<T[K]>)) => Promise<void>);
        updateAll: ((callback: ((data: T) => Promise<T>)) => Promise<void>);
    }

    A storage instance.

    • get: (<K>(key: K) => Promise<T[K]>)

      Get a value from storage

      const userName = await userStorage.get('name');
      
        • <K>(key): Promise<T[K]>
        • Type Parameters

          • K extends string

          Parameters

          • key: K

            The key to retrieve

          Returns Promise<T[K]>

          A promise resolving to the value

    • getAll: (() => Promise<T>)

      Get all values from storage

      const allUserData = await userStorage.getAll();
      
        • (): Promise<T>
        • Returns Promise<T>

          A promise resolving to all stored data

    • name: string
    • path: string
    • remove: (<K>(key: K) => Promise<void>)

      Remove a key and its value from storage

      await userStorage.remove('name');
      
        • <K>(key): Promise<void>
        • Type Parameters

          • K extends string

          Parameters

          • key: K

            The key to remove

          Returns Promise<void>

    • removeAll: (() => Promise<void>)

      Remove all data from storage

      await userStorage.removeAll();
      
        • (): Promise<void>
        • Returns Promise<void>

    • set: (<K>(key: K, val: T[K]) => Promise<void>)

      Set a value in storage

      await userStorage.set('name', 'Mr. Anderson');
      
        • <K>(key, val): Promise<void>
        • Type Parameters

          • K extends string

          Parameters

          • key: K

            The key to update

          • val: T[K]

            Value to set

          Returns Promise<void>

          A promise resolving once the set is complete

    • setAll: ((val: T) => Promise<void>)

      Set all values in storage

      await userStorage.setAll(async { name: 'Neo', updated: true });
      
        • (val): Promise<void>
        • Parameters

          • val: T

            Value to set

          Returns Promise<void>

          A promise resolving once the set is complete

    • update: (<K>(key: K, callback: ((data: T[K]) => Promise<T[K]>)) => Promise<void>)

      Update a value in storage

      await userStorage.set('name', async (prevName) => `Dr. ${prevName}`);
      
        • <K>(key, callback): Promise<void>
        • Type Parameters

          • K extends string

          Parameters

          • key: K

            The key to update

          • callback: ((data: T[K]) => Promise<T[K]>)

            Takes the current value and returns the updated value

              • (data): Promise<T[K]>
              • Parameters

                • data: T[K]

                Returns Promise<T[K]>

          Returns Promise<void>

          A promise resolving once the update is complete

    • updateAll: ((callback: ((data: T) => Promise<T>)) => Promise<void>)

      Update all values in storage

      await userStorage.setAll(async (data) => ({ ...data, updated: true }));
      
        • (callback): Promise<void>
        • Parameters

          • callback: ((data: T) => Promise<T>)

            Takes the current value and returns the updated value

              • (data): Promise<T>
              • Parameters

                • data: T

                Returns Promise<T>

          Returns Promise<void>

          A promise resolving once the update is complete

    const userStorage = initStorage<UserData>(ctx, 'userData', 'user');