@daiso-tech/core 0.36.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/async/middlewares/_shared.d.ts +6 -1
- package/dist/async/middlewares/_shared.js +11 -1
- package/dist/async/middlewares/_shared.js.map +1 -1
- package/dist/async/middlewares/fallback/fallback.middleware.d.ts +1 -1
- package/dist/async/middlewares/fallback/fallback.middleware.js +2 -1
- package/dist/async/middlewares/fallback/fallback.middleware.js.map +1 -1
- package/dist/async/middlewares/retry/retry.middleware.js +2 -2
- package/dist/async/middlewares/retry/retry.middleware.js.map +1 -1
- package/dist/cache/contracts/cache-factory.contract.d.ts +2 -2
- package/dist/cache/implementations/adapters/_module-exports.d.ts +1 -2
- package/dist/cache/implementations/adapters/_module-exports.js +1 -2
- package/dist/cache/implementations/adapters/_module-exports.js.map +1 -1
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.d.ts +41 -16
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js +102 -57
- package/dist/cache/implementations/adapters/kysely-cache-adapter/kysely-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/memory-cache-adapter/memory-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/adapters/mongodb-cache-adapter/mongodb-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/no-op-cache-adapter/no-op-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.d.ts +1 -1
- package/dist/cache/implementations/adapters/redis-cache-adapter/redis-cache-adapter.js.map +1 -1
- package/dist/cache/implementations/derivables/cache/cache.d.ts +15 -3
- package/dist/cache/implementations/derivables/cache/cache.js +15 -2
- package/dist/cache/implementations/derivables/cache/cache.js.map +1 -1
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.d.ts +11 -8
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js +9 -0
- package/dist/cache/implementations/derivables/cache-factory/cache-factory.js.map +1 -1
- package/dist/collection/contracts/async-collection.contract.d.ts +6 -0
- package/dist/collection/contracts/collection.contract.d.ts +6 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/_module.d.ts +1 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/_module.js +1 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/_module.js.map +1 -1
- package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.d.ts +7 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js +17 -0
- package/dist/collection/implementations/async-iterable-collection/_shared/async-validate-iterable.js.map +1 -0
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.d.ts +2 -0
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js +4 -1
- package/dist/collection/implementations/async-iterable-collection/async-iterable-collection.js.map +1 -1
- package/dist/collection/implementations/iterable-collection/_shared/_module.d.ts +1 -0
- package/dist/collection/implementations/iterable-collection/_shared/_module.js +1 -0
- package/dist/collection/implementations/iterable-collection/_shared/_module.js.map +1 -1
- package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.d.ts +7 -0
- package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js +21 -0
- package/dist/collection/implementations/iterable-collection/_shared/validate-iterable.js.map +1 -0
- package/dist/collection/implementations/iterable-collection/iterable-collection.d.ts +2 -0
- package/dist/collection/implementations/iterable-collection/iterable-collection.js +4 -1
- package/dist/collection/implementations/iterable-collection/iterable-collection.js.map +1 -1
- package/dist/collection/implementations/list-collection/list-collection.d.ts +2 -0
- package/dist/collection/implementations/list-collection/list-collection.js +14 -1
- package/dist/collection/implementations/list-collection/list-collection.js.map +1 -1
- package/dist/event-bus/contracts/event-bus-factory.contract.d.ts +2 -2
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.d.ts +34 -4
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js +46 -6
- package/dist/event-bus/implementations/derivables/event-bus/event-bus.js.map +1 -1
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.d.ts +9 -7
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js +11 -0
- package/dist/event-bus/implementations/derivables/event-bus-factory/event-bus-factory.js.map +1 -1
- package/dist/lock/implementations/adapters/_module-exports.d.ts +1 -2
- package/dist/lock/implementations/adapters/_module-exports.js +1 -2
- package/dist/lock/implementations/adapters/_module-exports.js.map +1 -1
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.d.ts +37 -12
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js +73 -32
- package/dist/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.js.map +1 -1
- package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js +1 -1
- package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map +1 -1
- package/dist/utilities/functions/_module-exports.d.ts +1 -0
- package/dist/utilities/functions/_module-exports.js +1 -0
- package/dist/utilities/functions/_module-exports.js.map +1 -1
- package/dist/utilities/functions/lazy.d.ts +4 -0
- package/dist/utilities/functions/lazy.js +9 -3
- package/dist/utilities/functions/lazy.js.map +1 -1
- package/dist/utilities/functions/validate.d.ts +8 -0
- package/dist/utilities/functions/validate.js +17 -0
- package/dist/utilities/functions/validate.js.map +1 -0
- package/package.json +14 -11
- package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.d.ts +0 -1
- package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.js +0 -2
- package/dist/cache/implementations/adapters/libsql-cache-adapter/_module.js.map +0 -1
- package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.d.ts +0 -75
- package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js +0 -95
- package/dist/cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js.map +0 -1
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.d.ts +0 -1
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.js +0 -2
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/_module.js.map +0 -1
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.d.ts +0 -70
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js +0 -94
- package/dist/cache/implementations/adapters/sqlite-cache-adapter/sqlite-cache-adapter.js.map +0 -1
- package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.d.ts +0 -1
- package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.js +0 -2
- package/dist/lock/implementations/adapters/libsql-lock-adapter/_module.js.map +0 -1
- package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.d.ts +0 -60
- package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js +0 -84
- package/dist/lock/implementations/adapters/libsql-lock-adapter/libsql-lock-adapter.js.map +0 -1
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.d.ts +0 -1
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.js +0 -2
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/_module.js.map +0 -1
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.d.ts +0 -59
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js +0 -83
- package/dist/lock/implementations/adapters/sqlite-lock-adapter/sqlite-lock-adapter.js.map +0 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export * from "../../../lock/implementations/adapters/
|
|
1
|
+
export * from "../../../lock/implementations/adapters/kysely-lock-adapter/_module.js";
|
|
2
2
|
export * from "../../../lock/implementations/adapters/memory-lock-adapter/_module.js";
|
|
3
3
|
export * from "../../../lock/implementations/adapters/mongodb-lock-adapter/_module.js";
|
|
4
4
|
export * from "../../../lock/implementations/adapters/no-op-lock-adapter/_module.js";
|
|
5
5
|
export * from "../../../lock/implementations/adapters/redis-lock-adapter/_module.js";
|
|
6
|
-
export * from "../../../lock/implementations/adapters/sqlite-lock-adapter/_module.js";
|
|
7
6
|
//# sourceMappingURL=_module-exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../../src/lock/implementations/adapters/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,gEAAgE,CAAC;AAC/E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,iEAAiE,CAAC;AAChF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,+DAA+D,CAAC
|
|
1
|
+
{"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../../src/lock/implementations/adapters/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,gEAAgE,CAAC;AAC/E,cAAc,gEAAgE,CAAC;AAC/E,cAAc,iEAAiE,CAAC;AAChF,cAAc,+DAA+D,CAAC;AAC9E,cAAc,+DAA+D,CAAC"}
|
|
@@ -5,36 +5,61 @@ import type { IDatabaseLockAdapter, ILockData } from "../../../../lock/contracts
|
|
|
5
5
|
import type { Kysely } from "kysely";
|
|
6
6
|
import { type IDeinitizable, type IInitizable, type IPrunable, TimeSpan } from "../../../../utilities/_module-exports.js";
|
|
7
7
|
/**
|
|
8
|
-
*
|
|
8
|
+
*
|
|
9
|
+
* IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
|
|
10
|
+
* @group Adapters
|
|
9
11
|
*/
|
|
10
|
-
type
|
|
12
|
+
type KyselyLockAdapterTable = {
|
|
11
13
|
key: string;
|
|
12
14
|
owner: string;
|
|
13
|
-
expiresAt: number | null;
|
|
15
|
+
expiresAt: number | string | null;
|
|
14
16
|
};
|
|
15
17
|
/**
|
|
16
|
-
*
|
|
18
|
+
*
|
|
19
|
+
* IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
|
|
20
|
+
* @group Adapters
|
|
17
21
|
*/
|
|
18
|
-
type
|
|
19
|
-
lock:
|
|
22
|
+
type KyselyLockAdapterTables = {
|
|
23
|
+
lock: KyselyLockAdapterTable;
|
|
20
24
|
};
|
|
21
25
|
/**
|
|
22
|
-
*
|
|
26
|
+
*
|
|
27
|
+
* IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
|
|
28
|
+
* @group Adapters
|
|
23
29
|
*/
|
|
24
|
-
type
|
|
25
|
-
|
|
30
|
+
type KyselyLockAdapterSettings = {
|
|
31
|
+
kysely: Kysely<KyselyLockAdapterTables>;
|
|
26
32
|
expiredKeysRemovalInterval?: TimeSpan;
|
|
27
33
|
shouldRemoveExpiredKeys?: boolean;
|
|
28
34
|
};
|
|
29
35
|
/**
|
|
30
|
-
*
|
|
36
|
+
*
|
|
37
|
+
* IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
|
|
38
|
+
* @group Adapters
|
|
31
39
|
*/
|
|
32
40
|
export declare class KyselyLockAdapter implements IDatabaseLockAdapter, IDeinitizable, IInitizable, IPrunable {
|
|
33
|
-
private readonly
|
|
41
|
+
private readonly kysely;
|
|
34
42
|
private readonly expiredKeysRemovalInterval;
|
|
35
43
|
private readonly shouldRemoveExpiredKeys;
|
|
36
44
|
private timeoutId;
|
|
37
|
-
|
|
45
|
+
/**
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* import { KyselyLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
49
|
+
* import Sqlite from "better-sqlite3";
|
|
50
|
+
*
|
|
51
|
+
* const lockAdapter = new KyselyLockAdapter({
|
|
52
|
+
* kysely: new Kysely({
|
|
53
|
+
* dialect: new SqliteDialect({
|
|
54
|
+
* database: new Sqlite("local.db"),
|
|
55
|
+
* }),
|
|
56
|
+
* }),
|
|
57
|
+
* });
|
|
58
|
+
* // You need initialize the adapter once before using it.
|
|
59
|
+
* await lockAdapter.init();
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
constructor(settings: KyselyLockAdapterSettings);
|
|
38
63
|
deInit(): Promise<void>;
|
|
39
64
|
init(): Promise<void>;
|
|
40
65
|
removeAllExpired(): Promise<void>;
|
|
@@ -3,44 +3,85 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { TimeSpan, } from "../../../../utilities/_module-exports.js";
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
*
|
|
7
|
+
* IMPORT_PATH: `"@daiso-tech/core/lock/adapters"`
|
|
8
|
+
* @group Adapters
|
|
7
9
|
*/
|
|
8
10
|
export class KyselyLockAdapter {
|
|
9
|
-
|
|
11
|
+
kysely;
|
|
10
12
|
expiredKeysRemovalInterval;
|
|
11
13
|
shouldRemoveExpiredKeys;
|
|
12
|
-
timeoutId;
|
|
14
|
+
timeoutId = null;
|
|
15
|
+
/**
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { KyselyLockAdapter } from "@daiso-tech/core/lock/adapters";
|
|
19
|
+
* import Sqlite from "better-sqlite3";
|
|
20
|
+
*
|
|
21
|
+
* const lockAdapter = new KyselyLockAdapter({
|
|
22
|
+
* kysely: new Kysely({
|
|
23
|
+
* dialect: new SqliteDialect({
|
|
24
|
+
* database: new Sqlite("local.db"),
|
|
25
|
+
* }),
|
|
26
|
+
* }),
|
|
27
|
+
* });
|
|
28
|
+
* // You need initialize the adapter once before using it.
|
|
29
|
+
* await lockAdapter.init();
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
13
32
|
constructor(settings) {
|
|
14
|
-
const {
|
|
33
|
+
const { kysely, expiredKeysRemovalInterval = TimeSpan.fromMinutes(1), shouldRemoveExpiredKeys = true, } = settings;
|
|
15
34
|
this.expiredKeysRemovalInterval = expiredKeysRemovalInterval;
|
|
16
35
|
this.shouldRemoveExpiredKeys = shouldRemoveExpiredKeys;
|
|
17
|
-
this.
|
|
36
|
+
this.kysely = kysely;
|
|
18
37
|
}
|
|
19
38
|
async deInit() {
|
|
20
|
-
|
|
21
|
-
.dropIndex("lock_expiresAt")
|
|
22
|
-
.ifExists()
|
|
23
|
-
.on("lock")
|
|
24
|
-
.execute();
|
|
25
|
-
await this.database.schema.dropTable("lock").ifExists().execute();
|
|
26
|
-
if (this.shouldRemoveExpiredKeys) {
|
|
39
|
+
if (this.shouldRemoveExpiredKeys && this.timeoutId !== null) {
|
|
27
40
|
clearTimeout(this.timeoutId);
|
|
28
41
|
}
|
|
42
|
+
// Should not throw if the index does not exists thats why the try catch is used.
|
|
43
|
+
try {
|
|
44
|
+
await this.kysely.schema
|
|
45
|
+
.dropIndex("lock_expiresAt")
|
|
46
|
+
.on("lock")
|
|
47
|
+
.execute();
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
/* EMPTY */
|
|
51
|
+
}
|
|
52
|
+
// Should not throw if the table does not exists thats why the try catch is used.
|
|
53
|
+
try {
|
|
54
|
+
await this.kysely.schema.dropTable("lock").execute();
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
/* EMPTY */
|
|
58
|
+
}
|
|
29
59
|
}
|
|
30
60
|
async init() {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
61
|
+
// Should not throw if the table already exists thats why the try catch is used.
|
|
62
|
+
try {
|
|
63
|
+
await this.kysely.schema
|
|
64
|
+
.createTable("lock")
|
|
65
|
+
.ifNotExists()
|
|
66
|
+
.addColumn("key", "varchar(255)", (col) => col.primaryKey())
|
|
67
|
+
.addColumn("owner", "varchar(255)")
|
|
68
|
+
.addColumn("expiresAt", "bigint")
|
|
69
|
+
.execute();
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
/* EMPTY */
|
|
73
|
+
}
|
|
74
|
+
// Should not throw if the index already exists thats why the try catch is used.
|
|
75
|
+
try {
|
|
76
|
+
await this.kysely.schema
|
|
77
|
+
.createIndex("lock_expiresAt")
|
|
78
|
+
.on("lock")
|
|
79
|
+
.columns(["expiresAt"])
|
|
80
|
+
.execute();
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
/* EMPTY */
|
|
84
|
+
}
|
|
44
85
|
if (this.shouldRemoveExpiredKeys) {
|
|
45
86
|
this.timeoutId = setTimeout(() => {
|
|
46
87
|
void this.removeAllExpired();
|
|
@@ -48,13 +89,13 @@ export class KyselyLockAdapter {
|
|
|
48
89
|
}
|
|
49
90
|
}
|
|
50
91
|
async removeAllExpired() {
|
|
51
|
-
await this.
|
|
92
|
+
await this.kysely
|
|
52
93
|
.deleteFrom("lock")
|
|
53
94
|
.where("lock.expiresAt", "<=", new Date().getTime())
|
|
54
95
|
.execute();
|
|
55
96
|
}
|
|
56
97
|
async insert(key, owner, expiration) {
|
|
57
|
-
await this.
|
|
98
|
+
await this.kysely
|
|
58
99
|
.insertInto("lock")
|
|
59
100
|
.values({
|
|
60
101
|
key,
|
|
@@ -64,7 +105,7 @@ export class KyselyLockAdapter {
|
|
|
64
105
|
.execute();
|
|
65
106
|
}
|
|
66
107
|
async update(key, owner, expiration) {
|
|
67
|
-
const updateResult = await this.
|
|
108
|
+
const updateResult = await this.kysely
|
|
68
109
|
.updateTable("lock")
|
|
69
110
|
.where("lock.key", "=", key)
|
|
70
111
|
// Has expired
|
|
@@ -77,14 +118,14 @@ export class KyselyLockAdapter {
|
|
|
77
118
|
return Number(updateResult.numUpdatedRows); // > 0;
|
|
78
119
|
}
|
|
79
120
|
async remove(key, owner) {
|
|
80
|
-
await this.
|
|
121
|
+
await this.kysely
|
|
81
122
|
.deleteFrom("lock")
|
|
82
123
|
.where("lock.key", "=", key)
|
|
83
124
|
.$if(owner !== null, (query) => query.where("lock.owner", "=", owner))
|
|
84
125
|
.execute();
|
|
85
126
|
}
|
|
86
127
|
async refresh(key, owner, expiration) {
|
|
87
|
-
const updateResult = await this.
|
|
128
|
+
const updateResult = await this.kysely
|
|
88
129
|
.updateTable("lock")
|
|
89
130
|
.where("lock.key", "=", key)
|
|
90
131
|
.where("lock.owner", "=", owner)
|
|
@@ -93,7 +134,7 @@ export class KyselyLockAdapter {
|
|
|
93
134
|
return Number(updateResult.numUpdatedRows); // > 0;
|
|
94
135
|
}
|
|
95
136
|
async find(key) {
|
|
96
|
-
const row = await this.
|
|
137
|
+
const row = await this.kysely
|
|
97
138
|
.selectFrom("lock")
|
|
98
139
|
.where("lock.key", "=", key)
|
|
99
140
|
.select(["lock.owner", "lock.expiresAt"])
|
|
@@ -102,7 +143,7 @@ export class KyselyLockAdapter {
|
|
|
102
143
|
return null;
|
|
103
144
|
}
|
|
104
145
|
return {
|
|
105
|
-
expiration: row.expiresAt ? new Date(row.expiresAt) : null,
|
|
146
|
+
expiration: row.expiresAt ? new Date(Number(row.expiresAt)) : null,
|
|
106
147
|
owner: row.owner,
|
|
107
148
|
};
|
|
108
149
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kysely-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAIH,QAAQ,GACX,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"kysely-lock-adapter.js","sourceRoot":"","sources":["../../../../../src/lock/implementations/adapters/kysely-lock-adapter/kysely-lock-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,EAIH,QAAQ,GACX,MAAM,gCAAgC,CAAC;AAkCxC;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IAGT,MAAM,CAAkC;IACxC,0BAA0B,CAAW;IACrC,uBAAuB,CAAU;IAC1C,SAAS,GACb,IAAI,CAAC;IAET;;;;;;;;;;;;;;;;OAgBG;IACH,YAAY,QAAmC;QAC3C,MAAM,EACF,MAAM,EACN,0BAA0B,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EACpD,uBAAuB,GAAG,IAAI,GACjC,GAAG,QAAQ,CAAC;QACb,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;QAC7D,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,MAAM;QACR,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC1D,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;iBACnB,SAAS,CAAC,gBAAgB,CAAC;iBAC3B,EAAE,CAAC,MAAM,CAAC;iBACV,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;QAED,iFAAiF;QACjF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI;QACN,gFAAgF;QAChF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;iBACnB,WAAW,CAAC,MAAM,CAAC;iBACnB,WAAW,EAAE;iBACb,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;iBAC3D,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;iBAClC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC;iBAChC,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;QAED,gFAAgF;QAChF,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM;iBACnB,WAAW,CAAC,gBAAgB,CAAC;iBAC7B,EAAE,CAAC,MAAM,CAAC;iBACV,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;iBACtB,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACL,WAAW;QACf,CAAC;QAED,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE,CAAC,CAAC;QACzD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,IAAI,CAAC,MAAM;aACZ,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;aACnD,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CACR,GAAW,EACX,KAAa,EACb,UAAuB;QAEvB,MAAM,IAAI,CAAC,MAAM;aACZ,UAAU,CAAC,MAAM,CAAC;aAClB,MAAM,CAAC;YACJ,GAAG;YACH,KAAK;YACL,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI;SAC3C,CAAC;aACD,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,MAAM,CACR,GAAW,EACX,KAAa,EACb,UAAuB;QAEvB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM;aACjC,WAAW,CAAC,MAAM,CAAC;aACnB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;YAC5B,cAAc;aACb,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CACV,EAAE,CAAC,GAAG,CAAC;YACH,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC;YACpC,EAAE,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC;SACzC,CAAC,CACL;aACA,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC;aACxD,gBAAgB,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,KAAoB;QAC1C,MAAM,IAAI,CAAC,MAAM;aACZ,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;aAC3B,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC,CACxC;aACA,OAAO,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,OAAO,CACT,GAAW,EACX,KAAa,EACb,UAAgB;QAEhB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM;aACjC,WAAW,CAAC,MAAM,CAAC;aACnB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;aAC3B,KAAK,CAAC,YAAY,EAAE,GAAG,EAAE,KAAK,CAAC;aAC/B,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;aACxC,gBAAgB,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO;IACvD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAW;QAClB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM;aACxB,UAAU,CAAC,MAAM,CAAC;aAClB,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC;aAC3B,MAAM,CAAC,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;aACxC,gBAAgB,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO;YACH,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YAClE,KAAK,EAAE,GAAG,CAAC,KAAK;SACnB,CAAC;IACN,CAAC;CACJ"}
|
package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @module Serde
|
|
3
3
|
*/
|
|
4
4
|
import { DeserializationSerdeError, SerializationSerdeError, } from "../../../../serde/contracts/_module-exports.js";
|
|
5
|
-
import { SuperJSON } from "superjson
|
|
5
|
+
import { SuperJSON } from "superjson";
|
|
6
6
|
/**
|
|
7
7
|
*
|
|
8
8
|
* IMPORT_PATH: `"@daiso-tech/core/serde/adapters"`
|
package/dist/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"super-json-serde-adapter.js","sourceRoot":"","sources":["../../../../../src/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGH,yBAAyB,EACzB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"super-json-serde-adapter.js","sourceRoot":"","sources":["../../../../../src/serde/implementations/adapters/super-json-serde-adapter/super-json-serde-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAGH,yBAAyB,EACzB,uBAAuB,GAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IACb,SAAS,GAAc,IAAI,SAAS,EAAE,CAAC;IAExD,cAAc,CACV,WAGC;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CACzB;YACI,YAAY,CAAC,KAAK;gBACd,OAAO,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,SAAS,CAAC,iBAAiB;gBACvB,OAAO,WAAW,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YACpD,CAAC;YACD,WAAW,CAAC,eAAe;gBACvB,iEAAiE;gBACjE,OAAO,WAAW,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;YACpD,CAAC;SACJ,EACD,WAAW,CAAC,IAAI,CACnB,CAAC;IACN,CAAC;IAED,SAAS,CAAS,KAAa;QAC3B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,MAAM,IAAI,uBAAuB,CAC7B,wBAAwB,MAAM,CAAC,KAAK,CAAC,WAAW,EAChD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;IAED,WAAW,CAAS,KAAa;QAC7B,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACtB,MAAM,IAAI,yBAAyB,CAC/B,0BAA0B,MAAM,CAAC,KAAK,CAAC,WAAW,EAClD,KAAK,CACR,CAAC;QACN,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -5,3 +5,4 @@ export * from "../../utilities/functions/object.js";
|
|
|
5
5
|
export * from "../../utilities/functions/lazy.js";
|
|
6
6
|
export * from "../../utilities/functions/resolve-one-or-more.js";
|
|
7
7
|
export * from "../../utilities/functions/result.js";
|
|
8
|
+
export * from "../../utilities/functions/validate.js";
|
|
@@ -5,4 +5,5 @@ export * from "../../utilities/functions/object.js";
|
|
|
5
5
|
export * from "../../utilities/functions/lazy.js";
|
|
6
6
|
export * from "../../utilities/functions/resolve-one-or-more.js";
|
|
7
7
|
export * from "../../utilities/functions/result.js";
|
|
8
|
+
export * from "../../utilities/functions/validate.js";
|
|
8
9
|
//# sourceMappingURL=_module-exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/utilities/functions/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"_module-exports.js","sourceRoot":"","sources":["../../../src/utilities/functions/_module-exports.ts"],"names":[],"mappings":"AAAA,cAAc,+CAA+C,CAAC;AAC9D,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC"}
|
|
@@ -7,6 +7,10 @@ import type { AsyncLazyable, Lazyable, Lazy, AsyncLazy } from "../../utilities/t
|
|
|
7
7
|
* @internal
|
|
8
8
|
*/
|
|
9
9
|
export declare function isLazy<TValue>(lazyable: Lazyable<TValue>): lazyable is Lazy<TValue>;
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
export declare function isPromiseLike<TValue>(value: unknown): value is PromiseLike<TValue>;
|
|
10
14
|
/**
|
|
11
15
|
* @internal
|
|
12
16
|
*/
|
|
@@ -11,10 +11,16 @@ export function isLazy(lazyable) {
|
|
|
11
11
|
/**
|
|
12
12
|
* @internal
|
|
13
13
|
*/
|
|
14
|
-
export function
|
|
15
|
-
return (typeof
|
|
14
|
+
export function isPromiseLike(value) {
|
|
15
|
+
return (typeof value === "object" &&
|
|
16
16
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
17
|
-
typeof
|
|
17
|
+
typeof value?.then === "function");
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @internal
|
|
21
|
+
*/
|
|
22
|
+
export function isLazyPromise(lazyable) {
|
|
23
|
+
return (isPromiseLike(lazyable) &&
|
|
18
24
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
19
25
|
typeof lazyable?.defer === "function");
|
|
20
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/utilities/functions/lazy.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACH,WAAW,EACX,gBAAgB,GACnB,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,MAAM,CAClB,QAA0B;IAE1B,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CACzB,
|
|
1
|
+
{"version":3,"file":"lazy.js","sourceRoot":"","sources":["../../../src/utilities/functions/lazy.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EACH,WAAW,EACX,gBAAgB,GACnB,MAAM,oCAAoC,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,MAAM,CAClB,QAA0B;IAE1B,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CACzB,KAAc;IAEd,OAAO,CACH,OAAO,KAAK,KAAK,QAAQ;QACzB,sEAAsE;QACtE,OAAQ,KAAa,EAAE,IAAI,KAAK,UAAU,CAC7C,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CACzB,QAA+B;IAE/B,OAAO,CACH,aAAa,CAAC,QAAQ,CAAC;QACvB,sEAAsE;QACtE,OAAQ,QAAgB,EAAE,KAAK,KAAK,UAAU,CACjD,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACvB,QAA+B;IAE/B,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAS,QAA0B;IAC9D,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnB,OAAO,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,QAA+B;IAE/B,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,MAAM,QAAQ,CAAC;QAC1B,CAAC;QACD,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
|
+
export declare class ValidationError extends Error {
|
|
3
|
+
constructor(issues: ReadonlyArray<StandardSchemaV1.Issue>);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* @throws {ValidationError} {@link ValidationError}
|
|
7
|
+
*/
|
|
8
|
+
export declare function validate<TValue>(schema: StandardSchemaV1<TValue, TValue> | undefined, value: TValue): Promise<void>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class ValidationError extends Error {
|
|
2
|
+
constructor(issues) {
|
|
3
|
+
const jsonMessage = JSON.stringify(issues, null, 2);
|
|
4
|
+
super(`A validation error occured with the following issues:\n${jsonMessage}`);
|
|
5
|
+
this.name = ValidationError.name;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @throws {ValidationError} {@link ValidationError}
|
|
10
|
+
*/
|
|
11
|
+
export async function validate(schema, value) {
|
|
12
|
+
const result = await schema?.["~standard"].validate(value);
|
|
13
|
+
if (result?.issues) {
|
|
14
|
+
throw new ValidationError(result.issues);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utilities/functions/validate.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACtC,YAAY,MAA6C;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,KAAK,CACD,0DAA0D,WAAW,EAAE,CAC1E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IACrC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC1B,MAAoD,EACpD,KAAa;IAEb,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daiso-tech/core",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.37.0",
|
|
5
5
|
"author": "Yousif Abdulkarim",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"type": "module",
|
|
@@ -158,10 +158,12 @@
|
|
|
158
158
|
},
|
|
159
159
|
"devDependencies": {
|
|
160
160
|
"@changesets/cli": "^2.27.7",
|
|
161
|
-
"@libsql/client": "^0.14.0",
|
|
162
161
|
"@testcontainers/mongodb": "^10.13.2",
|
|
162
|
+
"@testcontainers/mysql": "^11.0.0",
|
|
163
|
+
"@testcontainers/postgresql": "^11.0.0",
|
|
163
164
|
"@testcontainers/redis": "^10.13.2",
|
|
164
165
|
"@types/better-sqlite3": "^7.6.11",
|
|
166
|
+
"@types/pg": "^8.15.4",
|
|
165
167
|
"@types/uuid": "^10.0.0",
|
|
166
168
|
"@typescript-eslint/eslint-plugin": "^8.1.0",
|
|
167
169
|
"@typescript-eslint/parser": "^8.1.0",
|
|
@@ -176,7 +178,10 @@
|
|
|
176
178
|
"eslint-plugin-typescript-enum": "^2.1.0",
|
|
177
179
|
"eslint-plugin-vitest": "^0.5.4",
|
|
178
180
|
"ioredis": "^5.4.1",
|
|
181
|
+
"kysely": "^0.28.2",
|
|
179
182
|
"mongodb": "^6.10.0",
|
|
183
|
+
"mysql2": "^3.14.1",
|
|
184
|
+
"pg": "^8.16.0",
|
|
180
185
|
"publint": "^0.3.8",
|
|
181
186
|
"rimraf": "^6.0.1",
|
|
182
187
|
"tsc-alias": "^1.8.10",
|
|
@@ -184,13 +189,13 @@
|
|
|
184
189
|
"typedoc-plugin-merge-modules": "6.1.0",
|
|
185
190
|
"typescript": "^5.5.4",
|
|
186
191
|
"vite-tsconfig-paths": "^4.3.2",
|
|
187
|
-
"vitest": "^3.0.2"
|
|
192
|
+
"vitest": "^3.0.2",
|
|
193
|
+
"zod": "^3.25.49"
|
|
188
194
|
},
|
|
189
195
|
"peerDependencies": {
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"mongodb": "^6.10.0"
|
|
196
|
+
"ioredis": "^5.0.0",
|
|
197
|
+
"mongodb": "^6.0.0",
|
|
198
|
+
"kysely": "^0.28.0"
|
|
194
199
|
},
|
|
195
200
|
"peerDependenciesMeta": {
|
|
196
201
|
"mongodb": {
|
|
@@ -207,11 +212,9 @@
|
|
|
207
212
|
}
|
|
208
213
|
},
|
|
209
214
|
"dependencies": {
|
|
210
|
-
"@
|
|
215
|
+
"@standard-schema/spec": "^1.0.0",
|
|
211
216
|
"escape-string-regexp": "^5.0.0",
|
|
212
|
-
"
|
|
213
|
-
"superjson-cjs": "^2.2.3",
|
|
214
|
-
"tsx": "^4.19.4",
|
|
217
|
+
"superjson": "^2.2.2",
|
|
215
218
|
"uuid": "^11.0.5"
|
|
216
219
|
}
|
|
217
220
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "../../../../cache/implementations/adapters/libsql-cache-adapter/libsql-cache-adapter.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_module.js","sourceRoot":"","sources":["../../../../../src/cache/implementations/adapters/libsql-cache-adapter/_module.ts"],"names":[],"mappings":"AAAA,cAAc,+EAA+E,CAAC"}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module Cache
|
|
3
|
-
*/
|
|
4
|
-
import type { ICacheData, ICacheInsert, ICacheUpdate, IDatabaseCacheAdapter } from "../../../../cache/contracts/_module-exports.js";
|
|
5
|
-
import type { TimeSpan, IDeinitizable, IInitizable, IPrunable } from "../../../../utilities/_module-exports.js";
|
|
6
|
-
import type { ISerde } from "../../../../serde/contracts/_module-exports.js";
|
|
7
|
-
import type { Client } from "@libsql/client";
|
|
8
|
-
/**
|
|
9
|
-
*
|
|
10
|
-
* IMPORT_PATH: `"@daiso-tech/core/cache/adapters"`
|
|
11
|
-
* @group Adapters
|
|
12
|
-
*/
|
|
13
|
-
export type LibsqlCacheAdapterSettings = {
|
|
14
|
-
database: Client;
|
|
15
|
-
tableName?: string;
|
|
16
|
-
serde: ISerde<string>;
|
|
17
|
-
/**
|
|
18
|
-
* @default {false}
|
|
19
|
-
*/
|
|
20
|
-
disableTransaction?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* @default
|
|
23
|
-
* ```ts
|
|
24
|
-
* import { TimeSpan } from "@daiso-tech/core/utilities";
|
|
25
|
-
*
|
|
26
|
-
* TimeSpan.fromMinutes(1);
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
expiredKeysRemovalInterval?: TimeSpan;
|
|
30
|
-
/**
|
|
31
|
-
* @default {true}
|
|
32
|
-
*/
|
|
33
|
-
shouldRemoveExpiredKeys?: boolean;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* To utilize the `LibsqlCacheAdapter`, you must install the `"@libsql/client"` package and supply a {@link ISerde | `ISerde<string>`}, with an adapter like {@link SuperJsonSerdeAdapter | `SuperJsonSerdeAdapter `}.
|
|
37
|
-
*
|
|
38
|
-
* IMPORT_PATH: `"@daiso-tech/core/cache/adapters"`
|
|
39
|
-
* @group Adapters
|
|
40
|
-
*/
|
|
41
|
-
export declare class LibsqlCacheAdapter<TType = unknown> implements IDatabaseCacheAdapter<TType>, IInitizable, IDeinitizable, IPrunable {
|
|
42
|
-
private readonly adapter;
|
|
43
|
-
/***
|
|
44
|
-
* @example
|
|
45
|
-
* ```ts
|
|
46
|
-
* import { LibsqlCacheAdapter } from "@daiso-tech/core/cache/adapters";
|
|
47
|
-
* import { Serde } from "@daiso-tech/core/serde";
|
|
48
|
-
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
|
|
49
|
-
* import { createClient } from "@libsql/client";
|
|
50
|
-
*
|
|
51
|
-
* const database = createClient({ url: "file:local.db" });
|
|
52
|
-
* const serde = new Serde(new SuperJsonSerdeAdapter());
|
|
53
|
-
* const cacheAdapter = new LibsqlCacheAdapter({
|
|
54
|
-
* database,
|
|
55
|
-
* serde,
|
|
56
|
-
* });
|
|
57
|
-
* // You need initialize the adapter once before using it.
|
|
58
|
-
* await cacheAdapter.init();
|
|
59
|
-
* ```
|
|
60
|
-
*/
|
|
61
|
-
constructor(settings: LibsqlCacheAdapterSettings);
|
|
62
|
-
removeAllExpired(): Promise<void>;
|
|
63
|
-
deInit(): Promise<void>;
|
|
64
|
-
init(): Promise<void>;
|
|
65
|
-
insert(data: ICacheInsert<TType>): Promise<void>;
|
|
66
|
-
upsert(data: ICacheInsert<TType>): Promise<ICacheData<TType> | null>;
|
|
67
|
-
find(key: string): Promise<ICacheData<TType> | null>;
|
|
68
|
-
updateExpired(data: ICacheInsert<TType>): Promise<number>;
|
|
69
|
-
updateUnexpired(data: ICacheUpdate<TType>): Promise<number>;
|
|
70
|
-
incrementUnexpired(data: ICacheUpdate<number>): Promise<number>;
|
|
71
|
-
removeUnexpiredMany(keys: string[]): Promise<number>;
|
|
72
|
-
removeExpiredMany(keys: string[]): Promise<number>;
|
|
73
|
-
removeAll(): Promise<void>;
|
|
74
|
-
removeByKeyPrefix(prefix: string): Promise<void>;
|
|
75
|
-
}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module Cache
|
|
3
|
-
*/
|
|
4
|
-
import { KyselyCacheAdapter } from "../../../../cache/implementations/adapters/kysely-cache-adapter/_module.js";
|
|
5
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
6
|
-
import { SuperJsonSerdeAdapter } from "../../../../serde/implementations/adapters/_module-exports.js";
|
|
7
|
-
import { Kysely } from "kysely";
|
|
8
|
-
import { LibsqlDialect } from "@libsql/kysely-libsql";
|
|
9
|
-
import { KyselyTableNameTransformerPlugin } from "../../../../utilities/_module-exports.js";
|
|
10
|
-
/**
|
|
11
|
-
* To utilize the `LibsqlCacheAdapter`, you must install the `"@libsql/client"` package and supply a {@link ISerde | `ISerde<string>`}, with an adapter like {@link SuperJsonSerdeAdapter | `SuperJsonSerdeAdapter `}.
|
|
12
|
-
*
|
|
13
|
-
* IMPORT_PATH: `"@daiso-tech/core/cache/adapters"`
|
|
14
|
-
* @group Adapters
|
|
15
|
-
*/
|
|
16
|
-
export class LibsqlCacheAdapter {
|
|
17
|
-
adapter;
|
|
18
|
-
/***
|
|
19
|
-
* @example
|
|
20
|
-
* ```ts
|
|
21
|
-
* import { LibsqlCacheAdapter } from "@daiso-tech/core/cache/adapters";
|
|
22
|
-
* import { Serde } from "@daiso-tech/core/serde";
|
|
23
|
-
* import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/adapters";
|
|
24
|
-
* import { createClient } from "@libsql/client";
|
|
25
|
-
*
|
|
26
|
-
* const database = createClient({ url: "file:local.db" });
|
|
27
|
-
* const serde = new Serde(new SuperJsonSerdeAdapter());
|
|
28
|
-
* const cacheAdapter = new LibsqlCacheAdapter({
|
|
29
|
-
* database,
|
|
30
|
-
* serde,
|
|
31
|
-
* });
|
|
32
|
-
* // You need initialize the adapter once before using it.
|
|
33
|
-
* await cacheAdapter.init();
|
|
34
|
-
* ```
|
|
35
|
-
*/
|
|
36
|
-
constructor(settings) {
|
|
37
|
-
const { database, tableName = "cache", serde, disableTransaction, expiredKeysRemovalInterval, shouldRemoveExpiredKeys, } = settings;
|
|
38
|
-
this.adapter = new KyselyCacheAdapter({
|
|
39
|
-
database: new Kysely({
|
|
40
|
-
dialect: new LibsqlDialect({
|
|
41
|
-
client: database,
|
|
42
|
-
}),
|
|
43
|
-
plugins: [
|
|
44
|
-
new KyselyTableNameTransformerPlugin({
|
|
45
|
-
cache: tableName,
|
|
46
|
-
}),
|
|
47
|
-
],
|
|
48
|
-
}),
|
|
49
|
-
serde,
|
|
50
|
-
disableTransaction,
|
|
51
|
-
expiredKeysRemovalInterval,
|
|
52
|
-
shouldRemoveExpiredKeys,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
async removeAllExpired() {
|
|
56
|
-
await this.adapter.removeAllExpired();
|
|
57
|
-
}
|
|
58
|
-
async deInit() {
|
|
59
|
-
await this.adapter.deInit();
|
|
60
|
-
}
|
|
61
|
-
async init() {
|
|
62
|
-
await this.adapter.init();
|
|
63
|
-
}
|
|
64
|
-
async insert(data) {
|
|
65
|
-
await this.adapter.insert(data);
|
|
66
|
-
}
|
|
67
|
-
async upsert(data) {
|
|
68
|
-
return await this.adapter.upsert(data);
|
|
69
|
-
}
|
|
70
|
-
async find(key) {
|
|
71
|
-
return await this.adapter.find(key);
|
|
72
|
-
}
|
|
73
|
-
async updateExpired(data) {
|
|
74
|
-
return await this.adapter.updateExpired(data);
|
|
75
|
-
}
|
|
76
|
-
async updateUnexpired(data) {
|
|
77
|
-
return await this.adapter.updateUnexpired(data);
|
|
78
|
-
}
|
|
79
|
-
async incrementUnexpired(data) {
|
|
80
|
-
return await this.adapter.incrementUnexpired(data);
|
|
81
|
-
}
|
|
82
|
-
async removeUnexpiredMany(keys) {
|
|
83
|
-
return await this.adapter.removeUnexpiredMany(keys);
|
|
84
|
-
}
|
|
85
|
-
async removeExpiredMany(keys) {
|
|
86
|
-
return await this.adapter.removeExpiredMany(keys);
|
|
87
|
-
}
|
|
88
|
-
async removeAll() {
|
|
89
|
-
await this.adapter.removeAll();
|
|
90
|
-
}
|
|
91
|
-
async removeByKeyPrefix(prefix) {
|
|
92
|
-
await this.adapter.removeByKeyPrefix(prefix);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
//# sourceMappingURL=libsql-cache-adapter.js.map
|