import { KyselyLockAdapter } from "@daiso-tech/core/lock/kysely-lock-adapter";
import { LockProvider } from "@daiso-tech/core/lock";
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 lockAdapter = new KyselyLockAdapter({
kysely: new Kysely({
dialect: new SqliteDialect({
database: new Sqlite("local.db"),
}),
});
});
// You need initialize the adapter once before using it.
await lockAdapter.init();
const serde = new Serde(new SuperJsonSerdeAdapter())
const lockProvider = new LockProvider({
serde,
adapter: lockAdapter,
});
You can listen to the following LockEventMap of all ILock instances created by the ILockProvider.
To understand how this method works, refer to IEventListenable .
You can listen to the following LockEventMap of all ILock instances created by the ILockProvider.
To understand how this method works, refer to IEventListenable .
import { LockProvider } from "@daiso-tech/core/lock";
import { MemoryLockAdapter } from "@daiso-tech/core/lock/memory-lock-adapter";
import { Namespace } from "@daiso-tech/core/namespace";
import { Serde } from "@daiso-tech/core/serde";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/super-json-serde-adapter";
const lockProvider = new LockProvider({
adapter: new MemoryLockAdapter(),
namespace: new Namespace("lock"),
serde: new Serde(new SuperJsonSerdeAdapter())
});
const lock = lockProvider.create("a");
You can listen to the following LockEventMap of all ILock instances created by the ILockProvider.
To understand how this method works, refer to IEventListenable .
You can listen to the following LockEventMap of all ILock instances created by the ILockProvider.
To understand how this method works, refer to IEventListenable .
You can listen to the following LockEventMap of all ILock instances created by the ILockProvider.
To understand how this method works, refer to IEventListenable .
You can listen to the following LockEventMap of all ILock instances created by the ILockProvider.
To understand how this method works, refer to IEventListenable .
LockProviderclass can be derived from anyILockAdapterorIDatabaseLockAdapter.Note the
ILockinstances created by theLockProviderclass are serializable and deserializable, allowing them to be seamlessly transferred across different servers, processes, and databases. This can be done directly usingISerderRegisteror indirectly through components that rely onISerderRegisterinternally.IMPORT_PATH:
"@daiso-tech/core/lock"