taon storage

March 21, 2026 ยท View on GitHub

Isomoric storage solution browser and nodejs.

Purpose of project:

I don't want to save/read class properties values when decorators can do that for me!

installation

npm i -g taon-storage

import Stor


import { TaonStor } from 'taon-storage/src' // for taon usage

import { TaonStor } from 'taon-storage/browser' // browser version -> to use outside taon

Storing things in local storage in browser:

import { TaonStor } from 'taon-storage'

export class TaonAdminComponent {
  public editMode = TaonStor.inLocalstorage(
    {
      defaultValue: false,
      key: 'editMode',
    },
    TaonAdminComponent,
  );

  async start() { 
    await TaonAdmin.awaitAll()

    console.log(this.editMode()) // use like signals
  }
}

Storing things in indexddb in browser:

import { TaonStor } from 'taon-storage/src'

export class TaonAdmin {
  myHugeBlobPicture: Blob;

  public myHugeBlobPicture = TaonStor.inIndexedDbStorage(
    {
      defaultValue: null,
      key: 'myHugeBlobPicture',
      transformFrom: (valueFromDb: string) => new Blob([valueFromDb]),
      transformTo: (valueThatGetToDB: Blob) => valueThatGetToDB.text(),
    },
    TaonAdmin,
  );

}

Storing things in file on backend NodeJS:

import { TaonStor } from 'taon-storage/src'

export class TaonAdmin {
   public fileSecretFile = TaonStor.inFile(
    {
      filePath: 'path/to/file',
      defaultValue: null,
      key: 'fileSecretFile',
    },
    TaonAdmin,
  );
}