Documentation
    Preparing search index...

    Module tachyon-drive

    tachyon-drive

    TypeScript npm version Maintainability Code Coverage github action

    tachyon-drive is an extendable TypeScript (JavaScript) storage driver implementation that provides a simple interface for storing and retrieving data using a specified storage mechanism.
    It includes a built-in memory storage driver, as well as support for other storage drivers such as file storage and Azure Blob Storage module

    Tachyon-Drive to be solid basic building block for more complex operations which requires storing data to some storage.
    As example, storing Map of verified user JWT token payloads to storage which is shared with multiple backends for cache and validation purposes (and gets store updates via onUpdate callback from driver).

    const dataSchema = zod.object({
    test: zod.string(),
    });

    type Data = zod.infer<typeof dataSchema>;

    // example serializer for Data to Buffer with optional validation
    const bufferSerializer: IPersistSerializer<Data, Buffer> = {
    serialize: (data: Data) => Buffer.from(JSON.stringify(data)),
    deserialize: (buffer: Buffer) => JSON.parse(buffer.toString()),
    validator: (data: Data) => dataSchema.safeParse(data).success, // optional deserialization validation
    };
    const driver = new MemoryStorageDriver(
    { name: "MemoryStorageDriver" },
    bufferSerializer /* externalNotify = null, processor */,
    );
    await driver.init(); // initialize driver early

    await driver.store({ test: "test" }); // store to the file

    const data = await driver.hydrate(); // restore from file

    await driver.clear(); // clear storage

    driver.onUpdate((data: Data) => {
    // listen for updates (if implemeting driver supports this)
    console.log("data updated", data);
    });

    // listen driver state changes
    driver.onHydrate((state: boolean) => {
    console.log("data hydrate state change", state);
    });
    driver.onStore((state: boolean) => {
    console.log("data store state change", state);
    });
    async function doSomethingWithDriver(driver: IStorageDriver<Data>) {
    // await driver.store({test: 'test'});
    // await driver.hydrate();
    // await driver.clear();
    }

    Classes

    MemoryStorageDriver
    StorageDriver

    Interfaces

    IExternalNotify
    IHydrateOptions
    IPersistSerializer
    IStorageDriver
    IStoreProcessor

    Type Aliases

    ExternalNotifyEventsMap
    StorageDriverEventsMap
    StorageDriverJson
    StorageDriverLogMapping
    StorageDriverOptions
    TachyonBandwidth

    Variables

    defaultLogLevels
    TachyonBandwidth

    Functions

    getTachyonBandwidthName
    isValidPersistSerializer
    isValidStoreProcessor
    nextSerializer