@stash-it/core
v0.2.0
Published
Core package for @stash-it ecosystem, containing interfaces and types for main class, adapters and plugins (and some other things).
Downloads
70
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 adaptersStashItPlugin
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.