0.5.0 • Published 7 months ago

@stash-it/core v0.5.0

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

@stash-it/core

logo-stash-it-color-dark 2x

Set of interfaces and types for @stash-it, for main class, adapters and plugins (and some other things).

The main ones you'll be interested in are:

  • StashItAdapter - base class used to create your own adapters
  • StashItPlugin type to create your own plugins

See usage for examples.

Installation

npm

npx jsr add @stash-it/core

deno

deno add @stash-it/core

yarn

yarn dlx jsr add @stash-it/core

pnpm

pnpm dlx jsr add @stash-it/core

bun

bunx jsr add @stash-it/core

Usage

StashItAdapter

import { StashItAdapter } from "@stash-it/core";

// Your adapter class should extend from the base abstract class.
class MyAdapter extends StashItAdapter {
  // Your implementation here.
}

The base class contains two methods, that you should implement if your adapter requires establishing a connection and/or disconnecting from a storage.

For instance:

import { StashItAdapter } from "@stash-it/core";

// Your adapter class should extend from the base abstract class.
class MyAdapter extends StashItAdapter {
  override async connect(): Promise<void> {
    // Depending on the storage, it can look different.
    // For example:
    this.#database.connect();
  }

  override async disconnect(): Promise<void> {
    this.#database.connect();
  }
}

StashItPlugin

import { type StashItPlugin } from "@stash-it/core";

// Your plugin can be a function that returns StashItPlugin:
const myPlugin = (someArgsIfNeedBe): StashItPlugin => {
  // Your implementation here.
};

// It can also be an object, depends on what your plugin needs:
const myPlugin2: StashItPlugin = {
  // Your implementation here.
};

License

MIT

Contribution

Feel free to open an issue or a pull request.