import { KyselyCircuitBreakerStorageAdapter } from "@daiso-tech/core/circuit-breaker/kysely-circuit-breaker-storage-adapter";
import { Serde } from "@daiso-tech/core/serde";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/super-json-serde-adapter"
import Sqlite from "better-sqlite3";
import { Kysely, SqliteDialect } from "kysely";
const serde = new Serde(new SuperJsonSerdeAdapter());
const circuitBreakerStorageAdapter = new KyselyCircuitBreakerStorageAdapter({
kysely: new Kysely({
dialect: new SqliteDialect({
database: new Sqlite("local.db"),
}),
}),
serde
});
// You need initialize the adapter once before using it.
await circuitBreakerStorageAdapter.init();
The transaction method runs the fn function inside a transaction.
The fn function is given a ICircuitBreakerStorageAdapterTransaction object.
To utilize the
KyselyCircuitBreakerStorageAdapter, you must install the"kysely"package and configure aKyselyclass instance.Note in order to use
KyselyCircuitBreakerStorageAdaptercorrectly, you need to use a database that has support for transactions. The adapter have been tested withsqlite,postgresandmysqldatabases.IMPORT_PATH:
"@daiso-tech/core/circuit-breaker/kysely-circuit-breaker-storage-adapter"