@stash-it/core
v0.5.0
Published
Core package for @stash-it ecosystem, containing interfaces and types for main class, adapters and plugins (and some other things).
Downloads
63
Maintainers
Readme
@stash-it/core

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 adaptersStashItPlugintype to create your own plugins
See usage for examples.
Installation
npm
npx jsr add @stash-it/coredeno
deno add @stash-it/coreyarn
yarn dlx jsr add @stash-it/corepnpm
pnpm dlx jsr add @stash-it/corebun
bunx jsr add @stash-it/coreUsage
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.
