Documentation
    Preparing search index...

    Module tachyon-drive-browser

    tachyon-drive-browser

    TypeScript npm version Maintainability Code Coverage github action

    • Uses CacheStorage and LocalStorage Browser APIs.
    • Have peer dependencies on Browserify events packages (for StorageDriver EventEmitter).
    export type DemoData = z.infer<typeof dataSchema>;
    const stringSerializer: IPersistSerializer<DemoData, string> = {
    name: "stringSerializer",
    serialize: (data: DemoData) => JSON.stringify(data),
    deserialize: (buffer: string) => JSON.parse(buffer),
    validator: (data: DemoData) => dataSchema.safeParse(data).success,
    };
    const arrayBufferSerializer: IPersistSerializer<DemoData, ArrayBuffer> = {
    name: "arrayBufferSerializer",
    serialize: (data: DemoData) => new TextEncoder().encode(JSON.stringify(data)),
    deserialize: (buffer: ArrayBuffer) =>
    JSON.parse(new TextDecoder().decode(buffer)),
    validator: (data: DemoData) => dataSchema.safeParse(data).success,
    };

    // local storage driver allows only string values.
    export const localStoreDriver = new LocalStorageDriver(
    "LocalStorageDriver",
    "tachyon",
    stringSerializer,
    undefined,
    console,
    );
    // cache storage driver can handle string and array buffer values.
    export const cacheStoreDriver = new CacheStorageDriver(
    {
    name: "CacheStorageDriver",
    cache: window.caches.open("test-cache"),
    url: new URL("https://example.com/data"),
    },
    stringSerializer,
    undefined,
    console,
    );
    export const cacheStoreDriver = new CacheStorageDriver(
    {
    name: "CacheStorageDriver",
    cache: window.caches.open("test-cache"),
    url: new URL("http://tachyon"),
    },
    arrayBufferSerializer,
    undefined,
    console,
    );
    // WebFS Api driver
    async function getFileHandle() {
    return (await navigator.storage.getDirectory()).getFileHandle("test.file", {
    create: true,
    });
    }
    export const webFsStoreDriver = new WebFsStorageDriver(
    { name: "WebFsStorageDriver", fileHandle: getFileHandle },
    arrayBufferSerializer,
    );
    // encrypted cache storage (ArrayBuffer)
    const processor = new CryptoBufferProcessor(() =>
    new TextEncoder().encode("some-secret-key"),
    );
    export const cacheStoreDriver = new CacheStorageDriver(
    {
    name: "CacheStorageDriver",
    cache: window.caches.open("test-cache"),
    url: new URL("http://tachyon"),
    logger: console,
    },
    arrayBufferSerializer,
    processor,
    );
    export const webFsStoreDriver = new WebFsStorageDriver(
    {
    name: "WebFsStorageDriver",
    fileHandle: getFileHandle,
    logger: console,
    },
    arrayBufferSerializer,
    processor,
    );

    Classes

    CacheStorageDriver
    CryptoBufferProcessor
    LocalStorageDriver
    WebFsStorageDriver

    Type Aliases

    CacheStorageDriverOptions
    LocalStorageDriverOptions
    WebFsStorageDriverOptions