@hexaijs/sqlite 0.1.0 → 0.2.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/index.d.ts +12 -2
- package/dist/index.js +43 -15
- package/dist/index.js.map +1 -1
- package/dist/test/index.d.ts +23 -3
- package/dist/test/index.js +90 -16
- package/dist/test/index.js.map +1 -1
- package/package.json +60 -59
- package/dist/index.d.ts.map +0 -1
- package/dist/sqlite-unit-of-work.d.ts +0 -10
- package/dist/sqlite-unit-of-work.d.ts.map +0 -1
- package/dist/sqlite-unit-of-work.js +0 -50
- package/dist/sqlite-unit-of-work.js.map +0 -1
- package/dist/test/index.d.ts.map +0 -1
- package/dist/test/sqlite-repository-for-test.d.ts +0 -19
- package/dist/test/sqlite-repository-for-test.d.ts.map +0 -1
- package/dist/test/sqlite-repository-for-test.js +0 -63
- package/dist/test/sqlite-repository-for-test.js.map +0 -1
- package/dist/test/utils.d.ts +0 -3
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -12
- package/dist/test/utils.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { Database } from 'sqlite';
|
|
2
|
+
import { UnitOfWork } from '@hexaijs/core';
|
|
3
|
+
|
|
4
|
+
declare class SqliteUnitOfWork implements UnitOfWork<Database> {
|
|
5
|
+
private db;
|
|
6
|
+
private static transactions;
|
|
7
|
+
constructor(db: Database);
|
|
8
|
+
getClient(): Database;
|
|
9
|
+
wrap<T>(fn: (client: Database) => Promise<T>): Promise<T>;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { SqliteUnitOfWork };
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!
|
|
6
|
-
|
|
1
|
+
// src/sqlite-unit-of-work.ts
|
|
2
|
+
var SqliteUnitOfWork = class _SqliteUnitOfWork {
|
|
3
|
+
constructor(db) {
|
|
4
|
+
this.db = db;
|
|
5
|
+
if (!_SqliteUnitOfWork.transactions.has(db)) {
|
|
6
|
+
_SqliteUnitOfWork.transactions.set(db, {
|
|
7
|
+
level: 0,
|
|
8
|
+
aborted: false
|
|
9
|
+
});
|
|
7
10
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
}
|
|
12
|
+
static transactions = /* @__PURE__ */ new WeakMap();
|
|
13
|
+
getClient() {
|
|
14
|
+
const current = _SqliteUnitOfWork.transactions.get(this.db);
|
|
15
|
+
if (!current || current.level === 0) {
|
|
16
|
+
throw new Error("No transaction is active");
|
|
17
|
+
}
|
|
18
|
+
return this.db;
|
|
19
|
+
}
|
|
20
|
+
async wrap(fn) {
|
|
21
|
+
const current = _SqliteUnitOfWork.transactions.get(this.db);
|
|
22
|
+
if (++current.level === 1) {
|
|
23
|
+
await this.db.run("BEGIN TRANSACTION");
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
return await fn(this.db);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
if (!current.aborted) {
|
|
29
|
+
current.aborted = true;
|
|
30
|
+
}
|
|
31
|
+
throw e;
|
|
32
|
+
} finally {
|
|
33
|
+
if (--current.level === 0) {
|
|
34
|
+
if (current.aborted) {
|
|
35
|
+
await this.db.run("ROLLBACK");
|
|
36
|
+
} else {
|
|
37
|
+
await this.db.run("COMMIT");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
15
42
|
};
|
|
16
|
-
|
|
17
|
-
|
|
43
|
+
|
|
44
|
+
export { SqliteUnitOfWork };
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
18
46
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/sqlite-unit-of-work.ts"],"names":[],"mappings":";AAIO,IAAM,gBAAA,GAAN,MAAM,iBAAA,CAAiD;AAAA,EAS1D,YAAoB,EAAA,EAAc;AAAd,IAAA,IAAA,CAAA,EAAA,GAAA,EAAA;AAChB,IAAA,IAAI,CAAC,iBAAA,CAAiB,YAAA,CAAa,GAAA,CAAI,EAAE,CAAA,EAAG;AACxC,MAAA,iBAAA,CAAiB,YAAA,CAAa,IAAI,EAAA,EAAI;AAAA,QAClC,KAAA,EAAO,CAAA;AAAA,QACP,OAAA,EAAS;AAAA,OACZ,CAAA;AAAA,IACL;AAAA,EACJ;AAAA,EAfA,OAAe,YAAA,mBAAe,IAAI,OAAA,EAMhC;AAAA,EAWF,SAAA,GAAsB;AAClB,IAAA,MAAM,OAAA,GAAU,iBAAA,CAAiB,YAAA,CAAa,GAAA,CAAI,KAAK,EAAE,CAAA;AACzD,IAAA,IAAI,CAAC,OAAA,IAAW,OAAA,CAAQ,KAAA,KAAU,CAAA,EAAG;AACjC,MAAA,MAAM,IAAI,MAAM,0BAA0B,CAAA;AAAA,IAC9C;AACA,IAAA,OAAO,IAAA,CAAK,EAAA;AAAA,EAChB;AAAA,EAEA,MAAM,KAAQ,EAAA,EAAkD;AAC5D,IAAA,MAAM,OAAA,GAAU,iBAAA,CAAiB,YAAA,CAAa,GAAA,CAAI,KAAK,EAAE,CAAA;AACzD,IAAA,IAAI,EAAE,OAAA,CAAQ,KAAA,KAAU,CAAA,EAAG;AACvB,MAAA,MAAM,IAAA,CAAK,EAAA,CAAG,GAAA,CAAI,mBAAmB,CAAA;AAAA,IACzC;AAEA,IAAA,IAAI;AACA,MAAA,OAAO,MAAM,EAAA,CAAG,IAAA,CAAK,EAAE,CAAA;AAAA,IAC3B,SAAS,CAAA,EAAG;AACR,MAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AAClB,QAAA,OAAA,CAAQ,OAAA,GAAU,IAAA;AAAA,MACtB;AAEA,MAAA,MAAM,CAAA;AAAA,IACV,CAAA,SAAE;AACE,MAAA,IAAI,EAAE,OAAA,CAAQ,KAAA,KAAU,CAAA,EAAG;AACvB,QAAA,IAAI,QAAQ,OAAA,EAAS;AACjB,UAAA,MAAM,IAAA,CAAK,EAAA,CAAG,GAAA,CAAI,UAAU,CAAA;AAAA,QAChC,CAAA,MAAO;AACH,UAAA,MAAM,IAAA,CAAK,EAAA,CAAG,GAAA,CAAI,QAAQ,CAAA;AAAA,QAC9B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ","file":"index.js","sourcesContent":["import type { Database } from \"sqlite\";\n\nimport { UnitOfWork } from \"@hexaijs/core\";\n\nexport class SqliteUnitOfWork implements UnitOfWork<Database> {\n private static transactions = new WeakMap<\n Database,\n {\n level: number;\n aborted: boolean;\n }\n >();\n\n constructor(private db: Database) {\n if (!SqliteUnitOfWork.transactions.has(db)) {\n SqliteUnitOfWork.transactions.set(db, {\n level: 0,\n aborted: false,\n });\n }\n }\n\n getClient(): Database {\n const current = SqliteUnitOfWork.transactions.get(this.db);\n if (!current || current.level === 0) {\n throw new Error(\"No transaction is active\");\n }\n return this.db;\n }\n\n async wrap<T>(fn: (client: Database) => Promise<T>): Promise<T> {\n const current = SqliteUnitOfWork.transactions.get(this.db)!;\n if (++current.level === 1) {\n await this.db.run(\"BEGIN TRANSACTION\");\n }\n\n try {\n return await fn(this.db);\n } catch (e) {\n if (!current.aborted) {\n current.aborted = true;\n }\n\n throw e;\n } finally {\n if (--current.level === 0) {\n if (current.aborted) {\n await this.db.run(\"ROLLBACK\");\n } else {\n await this.db.run(\"COMMIT\");\n }\n }\n }\n }\n}\n"]}
|
package/dist/test/index.d.ts
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { Database } from 'sqlite';
|
|
2
|
+
import { Identifiable, Repository, IdOf } from '@hexaijs/core';
|
|
3
|
+
|
|
4
|
+
declare class SqliteRepositoryForTest<E extends Identifiable<any>, M> implements Repository<E> {
|
|
5
|
+
protected db: Database;
|
|
6
|
+
protected namespace: string;
|
|
7
|
+
protected hydrate: (memento: M) => E;
|
|
8
|
+
protected dehydrate: (entity: E) => M;
|
|
9
|
+
constructor(db: Database, { namespace, hydrate, dehydrate, }: {
|
|
10
|
+
namespace: string;
|
|
11
|
+
hydrate: (memento: M) => E;
|
|
12
|
+
dehydrate: (entity: E) => M;
|
|
13
|
+
});
|
|
14
|
+
get(id: IdOf<E>): Promise<E>;
|
|
15
|
+
add(entity: E): Promise<void>;
|
|
16
|
+
update(entity: E): Promise<void>;
|
|
17
|
+
count(): Promise<number>;
|
|
18
|
+
protected ensureTableExists(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare function getSqliteConnection(filename?: string): Promise<Database>;
|
|
22
|
+
|
|
23
|
+
export { SqliteRepositoryForTest, getSqliteConnection };
|
package/dist/test/index.js
CHANGED
|
@@ -1,19 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { ObjectNotFoundError, DuplicateObjectError } from '@hexaijs/core';
|
|
2
|
+
|
|
3
|
+
// src/test/sqlite-repository-for-test.ts
|
|
4
|
+
var SqliteRepositoryForTest = class {
|
|
5
|
+
constructor(db, {
|
|
6
|
+
namespace,
|
|
7
|
+
hydrate,
|
|
8
|
+
dehydrate
|
|
9
|
+
}) {
|
|
10
|
+
this.db = db;
|
|
11
|
+
this.namespace = namespace;
|
|
12
|
+
this.hydrate = hydrate;
|
|
13
|
+
this.dehydrate = dehydrate;
|
|
14
|
+
}
|
|
15
|
+
namespace;
|
|
16
|
+
hydrate;
|
|
17
|
+
dehydrate;
|
|
18
|
+
async get(id) {
|
|
19
|
+
await this.ensureTableExists();
|
|
20
|
+
const row = await this.db.get(
|
|
21
|
+
`SELECT * FROM ${this.namespace} WHERE id = ?`,
|
|
22
|
+
id.getValue()
|
|
23
|
+
);
|
|
24
|
+
if (!row) {
|
|
25
|
+
throw new ObjectNotFoundError(
|
|
26
|
+
`entity with id '${id.getValue()}' not found`
|
|
27
|
+
);
|
|
7
28
|
}
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
29
|
+
return this.hydrate(JSON.parse(row.data));
|
|
30
|
+
}
|
|
31
|
+
async add(entity) {
|
|
32
|
+
await this.ensureTableExists();
|
|
33
|
+
try {
|
|
34
|
+
await this.db.run(
|
|
35
|
+
`INSERT INTO ${this.namespace} (id, data)
|
|
36
|
+
VALUES (?, ?)`,
|
|
37
|
+
entity.getId().getValue(),
|
|
38
|
+
JSON.stringify(this.dehydrate(entity))
|
|
39
|
+
);
|
|
40
|
+
} catch (e) {
|
|
41
|
+
if (e.message.includes("UNIQUE constraint failed")) {
|
|
42
|
+
throw new DuplicateObjectError(
|
|
43
|
+
`entity with id '${entity.getId().getValue()}' already exists`
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
throw e;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
async update(entity) {
|
|
50
|
+
await this.ensureTableExists();
|
|
51
|
+
const result = await this.db.run(
|
|
52
|
+
`UPDATE ${this.namespace}
|
|
53
|
+
SET data = ?
|
|
54
|
+
WHERE id = ?`,
|
|
55
|
+
JSON.stringify(this.dehydrate(entity)),
|
|
56
|
+
entity.getId().getValue()
|
|
57
|
+
);
|
|
58
|
+
if (result.changes === 0) {
|
|
59
|
+
throw new ObjectNotFoundError(
|
|
60
|
+
`entity with id '${entity.getId().getValue()}' not found`
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async count() {
|
|
65
|
+
await this.ensureTableExists();
|
|
66
|
+
const result = await this.db.get(
|
|
67
|
+
`SELECT COUNT(*) AS count FROM ${this.namespace}`
|
|
68
|
+
);
|
|
69
|
+
return result.count;
|
|
70
|
+
}
|
|
71
|
+
async ensureTableExists() {
|
|
72
|
+
await this.db.run(`
|
|
73
|
+
CREATE TABLE IF NOT EXISTS ${this.namespace} (
|
|
74
|
+
id TEXT NOT NULL PRIMARY KEY UNIQUE,
|
|
75
|
+
data TEXT NOT NULL
|
|
76
|
+
)
|
|
77
|
+
`);
|
|
78
|
+
}
|
|
15
79
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
80
|
+
|
|
81
|
+
// src/test/utils.ts
|
|
82
|
+
async function getSqliteConnection(filename = ":memory:") {
|
|
83
|
+
const sqlite = await import('sqlite');
|
|
84
|
+
const sqlite3 = await import('sqlite3');
|
|
85
|
+
return await sqlite.open({
|
|
86
|
+
filename,
|
|
87
|
+
driver: sqlite3.default.Database
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export { SqliteRepositoryForTest, getSqliteConnection };
|
|
92
|
+
//# sourceMappingURL=index.js.map
|
|
19
93
|
//# sourceMappingURL=index.js.map
|
package/dist/test/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/test/sqlite-repository-for-test.ts","../../src/test/utils.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { Database } from \"sqlite\";\n\nimport {\n DuplicateObjectError,\n Identifiable,\n IdOf,\n ObjectNotFoundError,\n Repository,\n} from \"@hexaijs/core\";\n\nexport class SqliteRepositoryForTest<\n E extends Identifiable<any>,\n M,\n> implements Repository<E> {\n protected namespace: string;\n protected hydrate: (memento: M) => E;\n protected dehydrate: (entity: E) => M;\n\n constructor(\n protected db: Database,\n {\n namespace,\n hydrate,\n dehydrate,\n }: {\n namespace: string;\n hydrate: (memento: M) => E;\n dehydrate: (entity: E) => M;\n }\n ) {\n this.namespace = namespace;\n this.hydrate = hydrate;\n this.dehydrate = dehydrate;\n }\n\n async get(id: IdOf<E>): Promise<E> {\n await this.ensureTableExists();\n\n const row = await this.db.get(\n `SELECT * FROM ${this.namespace} WHERE id = ?`,\n id.getValue()\n );\n if (!row) {\n throw new ObjectNotFoundError(\n `entity with id '${id.getValue()}' not found`\n );\n }\n\n return this.hydrate(JSON.parse(row.data));\n }\n\n async add(entity: E): Promise<void> {\n await this.ensureTableExists();\n\n try {\n await this.db.run(\n `INSERT INTO ${this.namespace} (id, data)\n VALUES (?, ?)`,\n entity.getId().getValue(),\n JSON.stringify(this.dehydrate(entity))\n );\n } catch (e) {\n if ((e as Error).message.includes(\"UNIQUE constraint failed\")) {\n throw new DuplicateObjectError(\n `entity with id '${entity\n .getId()\n .getValue()}' already exists`\n );\n }\n\n throw e;\n }\n }\n\n async update(entity: E): Promise<void> {\n await this.ensureTableExists();\n\n const result = await this.db.run(\n `UPDATE ${this.namespace}\n SET data = ?\n WHERE id = ?`,\n JSON.stringify(this.dehydrate(entity)),\n entity.getId().getValue()\n );\n\n if (result.changes === 0) {\n throw new ObjectNotFoundError(\n `entity with id '${entity.getId().getValue()}' not found`\n );\n }\n }\n\n async count(): Promise<number> {\n await this.ensureTableExists();\n\n const result = await this.db.get(\n `SELECT COUNT(*) AS count FROM ${this.namespace}`\n );\n\n return result.count;\n }\n\n protected async ensureTableExists(): Promise<void> {\n await this.db.run(`\n CREATE TABLE IF NOT EXISTS ${this.namespace} (\n id TEXT NOT NULL PRIMARY KEY UNIQUE,\n data TEXT NOT NULL\n )\n `);\n }\n}\n","import type { Database } from \"sqlite\";\n\nexport async function getSqliteConnection(\n filename = \":memory:\"\n): Promise<Database> {\n const sqlite = await import(\"sqlite\");\n const sqlite3 = await import(\"sqlite3\");\n return await sqlite.open({\n filename,\n driver: sqlite3.default.Database,\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,62 +1,63 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
},
|
|
6
|
-
"version": "0.1.0",
|
|
7
|
-
"description": "SQLite support for hexai",
|
|
8
|
-
"license": "MIT",
|
|
9
|
-
"author": "Sangwoo Hyun <wkdny.hyun@gmail.com>",
|
|
10
|
-
"contributors": [
|
|
11
|
-
"Seungcheol Baek <victoryiron.baek@gmail.com>",
|
|
12
|
-
"Donghyun Lee <edonghyun@naver.com>"
|
|
13
|
-
],
|
|
14
|
-
"repository": {
|
|
15
|
-
"type": "git",
|
|
16
|
-
"url": "git+https://github.com/workingdanny911/hexai.git",
|
|
17
|
-
"directory": "packages/sqlite"
|
|
18
|
-
},
|
|
19
|
-
"homepage": "https://github.com/workingdanny911/hexai#readme",
|
|
20
|
-
"bugs": {
|
|
21
|
-
"url": "https://github.com/workingdanny911/hexai/issues"
|
|
22
|
-
},
|
|
23
|
-
"keywords": [
|
|
24
|
-
"hexai",
|
|
25
|
-
"hexagonal",
|
|
26
|
-
"clean-architecture",
|
|
27
|
-
"sqlite",
|
|
28
|
-
"database",
|
|
29
|
-
"typescript"
|
|
30
|
-
],
|
|
31
|
-
"files": [
|
|
32
|
-
"dist",
|
|
33
|
-
"LICENSE"
|
|
34
|
-
],
|
|
35
|
-
"exports": {
|
|
36
|
-
".": {
|
|
37
|
-
"types": "./dist/index.d.ts",
|
|
38
|
-
"import": "./dist/index.js",
|
|
39
|
-
"require": "./dist/index.js"
|
|
2
|
+
"name": "@hexaijs/sqlite",
|
|
3
|
+
"publishConfig": {
|
|
4
|
+
"access": "public"
|
|
40
5
|
},
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
6
|
+
"version": "0.2.0",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"description": "SQLite support for hexai",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"author": "Sangwoo Hyun <wkdny.hyun@gmail.com>",
|
|
11
|
+
"contributors": [
|
|
12
|
+
"Seungcheol Baek <victoryiron.baek@gmail.com>",
|
|
13
|
+
"Donghyun Lee <edonghyun@naver.com>"
|
|
14
|
+
],
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/workingdanny911/hexai.git",
|
|
18
|
+
"directory": "packages/sqlite"
|
|
45
19
|
},
|
|
46
|
-
"
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
20
|
+
"homepage": "https://github.com/workingdanny911/hexai#readme",
|
|
21
|
+
"bugs": {
|
|
22
|
+
"url": "https://github.com/workingdanny911/hexai/issues"
|
|
23
|
+
},
|
|
24
|
+
"keywords": [
|
|
25
|
+
"hexai",
|
|
26
|
+
"hexagonal",
|
|
27
|
+
"clean-architecture",
|
|
28
|
+
"sqlite",
|
|
29
|
+
"database",
|
|
30
|
+
"typescript"
|
|
31
|
+
],
|
|
32
|
+
"files": [
|
|
33
|
+
"dist",
|
|
34
|
+
"LICENSE"
|
|
35
|
+
],
|
|
36
|
+
"exports": {
|
|
37
|
+
".": {
|
|
38
|
+
"types": "./dist/index.d.ts",
|
|
39
|
+
"import": "./dist/index.js"
|
|
40
|
+
},
|
|
41
|
+
"./test": {
|
|
42
|
+
"types": "./dist/test/index.d.ts",
|
|
43
|
+
"import": "./dist/test/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./package.json": "./package.json"
|
|
46
|
+
},
|
|
47
|
+
"scripts": {
|
|
48
|
+
"test": "vitest run",
|
|
49
|
+
"build": "tsup"
|
|
50
|
+
},
|
|
51
|
+
"dependencies": {},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@hexaijs/core": "^0.5.0",
|
|
54
|
+
"sqlite": "^5.1.1",
|
|
55
|
+
"sqlite3": "^5.1.7"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@hexaijs/core": "workspace:^",
|
|
59
|
+
"@hexaijs/tooling": "workspace:*",
|
|
60
|
+
"sqlite": "^5.1.1",
|
|
61
|
+
"sqlite3": "^5.1.7"
|
|
62
|
+
}
|
|
63
|
+
}
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { Database } from "sqlite";
|
|
2
|
-
import { UnitOfWork } from "@hexaijs/core";
|
|
3
|
-
export declare class SqliteUnitOfWork implements UnitOfWork<Database> {
|
|
4
|
-
private db;
|
|
5
|
-
private static transactions;
|
|
6
|
-
constructor(db: Database);
|
|
7
|
-
getClient(): Database;
|
|
8
|
-
wrap<T>(fn: (client: Database) => Promise<T>): Promise<T>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=sqlite-unit-of-work.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-unit-of-work.d.ts","sourceRoot":"","sources":["../src/sqlite-unit-of-work.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,qBAAa,gBAAiB,YAAW,UAAU,CAAC,QAAQ,CAAC;IAS7C,OAAO,CAAC,EAAE;IARtB,OAAO,CAAC,MAAM,CAAC,YAAY,CAMvB;gBAEgB,EAAE,EAAE,QAAQ;IAShC,SAAS,IAAI,QAAQ;IAQf,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAwBlE"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SqliteUnitOfWork = void 0;
|
|
4
|
-
class SqliteUnitOfWork {
|
|
5
|
-
db;
|
|
6
|
-
static transactions = new WeakMap();
|
|
7
|
-
constructor(db) {
|
|
8
|
-
this.db = db;
|
|
9
|
-
if (!SqliteUnitOfWork.transactions.has(db)) {
|
|
10
|
-
SqliteUnitOfWork.transactions.set(db, {
|
|
11
|
-
level: 0,
|
|
12
|
-
aborted: false,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
getClient() {
|
|
17
|
-
const current = SqliteUnitOfWork.transactions.get(this.db);
|
|
18
|
-
if (!current || current.level === 0) {
|
|
19
|
-
throw new Error("No transaction is active");
|
|
20
|
-
}
|
|
21
|
-
return this.db;
|
|
22
|
-
}
|
|
23
|
-
async wrap(fn) {
|
|
24
|
-
const current = SqliteUnitOfWork.transactions.get(this.db);
|
|
25
|
-
if (++current.level === 1) {
|
|
26
|
-
await this.db.run("BEGIN TRANSACTION");
|
|
27
|
-
}
|
|
28
|
-
try {
|
|
29
|
-
return await fn(this.db);
|
|
30
|
-
}
|
|
31
|
-
catch (e) {
|
|
32
|
-
if (!current.aborted) {
|
|
33
|
-
current.aborted = true;
|
|
34
|
-
}
|
|
35
|
-
throw e;
|
|
36
|
-
}
|
|
37
|
-
finally {
|
|
38
|
-
if (--current.level === 0) {
|
|
39
|
-
if (current.aborted) {
|
|
40
|
-
await this.db.run("ROLLBACK");
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
await this.db.run("COMMIT");
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.SqliteUnitOfWork = SqliteUnitOfWork;
|
|
50
|
-
//# sourceMappingURL=sqlite-unit-of-work.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-unit-of-work.js","sourceRoot":"","sources":["../src/sqlite-unit-of-work.ts"],"names":[],"mappings":";;;AAIA,MAAa,gBAAgB;IASL;IARZ,MAAM,CAAC,YAAY,GAAG,IAAI,OAAO,EAMtC,CAAC;IAEJ,YAAoB,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;QAC5B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACzC,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;gBAClC,KAAK,EAAE,CAAC;gBACR,OAAO,EAAE,KAAK;aACjB,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAED,SAAS;QACL,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,EAAoC;QAC9C,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QAC5D,IAAI,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC;YACD,OAAO,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,MAAM,CAAC,CAAC;QACZ,CAAC;gBAAS,CAAC;YACP,IAAI,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;gBACxB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAClC,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;;AAjDL,4CAkDC"}
|
package/dist/test/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,SAAS,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { Database } from "sqlite";
|
|
2
|
-
import { Identifiable, IdOf, Repository } from "@hexaijs/core";
|
|
3
|
-
export declare class SqliteRepositoryForTest<E extends Identifiable<any>, M> implements Repository<E> {
|
|
4
|
-
protected db: Database;
|
|
5
|
-
protected namespace: string;
|
|
6
|
-
protected hydrate: (memento: M) => E;
|
|
7
|
-
protected dehydrate: (entity: E) => M;
|
|
8
|
-
constructor(db: Database, { namespace, hydrate, dehydrate, }: {
|
|
9
|
-
namespace: string;
|
|
10
|
-
hydrate: (memento: M) => E;
|
|
11
|
-
dehydrate: (entity: E) => M;
|
|
12
|
-
});
|
|
13
|
-
get(id: IdOf<E>): Promise<E>;
|
|
14
|
-
add(entity: E): Promise<void>;
|
|
15
|
-
update(entity: E): Promise<void>;
|
|
16
|
-
count(): Promise<number>;
|
|
17
|
-
protected ensureTableExists(): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=sqlite-repository-for-test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-repository-for-test.d.ts","sourceRoot":"","sources":["../../src/test/sqlite-repository-for-test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,OAAO,EAEH,YAAY,EACZ,IAAI,EAEJ,UAAU,EACb,MAAM,eAAe,CAAC;AAEvB,qBAAa,uBAAuB,CAChC,CAAC,SAAS,YAAY,CAAC,GAAG,CAAC,EAC3B,CAAC,CACH,YAAW,UAAU,CAAC,CAAC,CAAC;IAMlB,SAAS,CAAC,EAAE,EAAE,QAAQ;IAL1B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IACrC,SAAS,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;gBAGxB,EAAE,EAAE,QAAQ,EACtB,EACI,SAAS,EACT,OAAO,EACP,SAAS,GACZ,EAAE;QACC,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;QAC3B,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;KAC/B;IAOC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAgB5B,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB7B,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;cAUd,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;CAQrD"}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SqliteRepositoryForTest = void 0;
|
|
4
|
-
const core_1 = require("@hexaijs/core");
|
|
5
|
-
class SqliteRepositoryForTest {
|
|
6
|
-
db;
|
|
7
|
-
namespace;
|
|
8
|
-
hydrate;
|
|
9
|
-
dehydrate;
|
|
10
|
-
constructor(db, { namespace, hydrate, dehydrate, }) {
|
|
11
|
-
this.db = db;
|
|
12
|
-
this.namespace = namespace;
|
|
13
|
-
this.hydrate = hydrate;
|
|
14
|
-
this.dehydrate = dehydrate;
|
|
15
|
-
}
|
|
16
|
-
async get(id) {
|
|
17
|
-
await this.ensureTableExists();
|
|
18
|
-
const row = await this.db.get(`SELECT * FROM ${this.namespace} WHERE id = ?`, id.getValue());
|
|
19
|
-
if (!row) {
|
|
20
|
-
throw new core_1.ObjectNotFoundError(`entity with id '${id.getValue()}' not found`);
|
|
21
|
-
}
|
|
22
|
-
return this.hydrate(JSON.parse(row.data));
|
|
23
|
-
}
|
|
24
|
-
async add(entity) {
|
|
25
|
-
await this.ensureTableExists();
|
|
26
|
-
try {
|
|
27
|
-
await this.db.run(`INSERT INTO ${this.namespace} (id, data)
|
|
28
|
-
VALUES (?, ?)`, entity.getId().getValue(), JSON.stringify(this.dehydrate(entity)));
|
|
29
|
-
}
|
|
30
|
-
catch (e) {
|
|
31
|
-
if (e.message.includes("UNIQUE constraint failed")) {
|
|
32
|
-
throw new core_1.DuplicateObjectError(`entity with id '${entity
|
|
33
|
-
.getId()
|
|
34
|
-
.getValue()}' already exists`);
|
|
35
|
-
}
|
|
36
|
-
throw e;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
async update(entity) {
|
|
40
|
-
await this.ensureTableExists();
|
|
41
|
-
const result = await this.db.run(`UPDATE ${this.namespace}
|
|
42
|
-
SET data = ?
|
|
43
|
-
WHERE id = ?`, JSON.stringify(this.dehydrate(entity)), entity.getId().getValue());
|
|
44
|
-
if (result.changes === 0) {
|
|
45
|
-
throw new core_1.ObjectNotFoundError(`entity with id '${entity.getId().getValue()}' not found`);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
async count() {
|
|
49
|
-
await this.ensureTableExists();
|
|
50
|
-
const result = await this.db.get(`SELECT COUNT(*) AS count FROM ${this.namespace}`);
|
|
51
|
-
return result.count;
|
|
52
|
-
}
|
|
53
|
-
async ensureTableExists() {
|
|
54
|
-
await this.db.run(`
|
|
55
|
-
CREATE TABLE IF NOT EXISTS ${this.namespace} (
|
|
56
|
-
id TEXT NOT NULL PRIMARY KEY UNIQUE,
|
|
57
|
-
data TEXT NOT NULL
|
|
58
|
-
)
|
|
59
|
-
`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.SqliteRepositoryForTest = SqliteRepositoryForTest;
|
|
63
|
-
//# sourceMappingURL=sqlite-repository-for-test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-repository-for-test.js","sourceRoot":"","sources":["../../src/test/sqlite-repository-for-test.ts"],"names":[],"mappings":";;;AAEA,wCAMuB;AAEvB,MAAa,uBAAuB;IASlB;IALJ,SAAS,CAAS;IAClB,OAAO,CAAoB;IAC3B,SAAS,CAAmB;IAEtC,YACc,EAAY,EACtB,EACI,SAAS,EACT,OAAO,EACP,SAAS,GAKZ;QATS,OAAE,GAAF,EAAE,CAAU;QAWtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAW;QACjB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACzB,iBAAiB,IAAI,CAAC,SAAS,eAAe,EAC9C,EAAE,CAAC,QAAQ,EAAE,CAChB,CAAC;QACF,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,0BAAmB,CACzB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,aAAa,CAChD,CAAC;QACN,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,MAAS;QACf,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACb,eAAe,IAAI,CAAC,SAAS;+BACd,EACf,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,EACzB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CACzC,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAK,CAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,2BAAoB,CAC1B,mBAAmB,MAAM;qBACpB,KAAK,EAAE;qBACP,QAAQ,EAAE,kBAAkB,CACpC,CAAC;YACN,CAAC;YAED,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAS;QAClB,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,UAAU,IAAI,CAAC,SAAS;;8BAEN,EAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EACtC,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAC5B,CAAC;QAEF,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,0BAAmB,CACzB,mBAAmB,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAC5D,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5B,iCAAiC,IAAI,CAAC,SAAS,EAAE,CACpD,CAAC;QAEF,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC7B,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC;yCACe,IAAI,CAAC,SAAS;;;;SAI9C,CAAC,CAAC;IACP,CAAC;CACJ;AApGD,0DAoGC"}
|
package/dist/test/utils.d.ts
DELETED
package/dist/test/utils.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEvC,wBAAsB,mBAAmB,CACrC,QAAQ,SAAa,GACtB,OAAO,CAAC,QAAQ,CAAC,CAOnB"}
|
package/dist/test/utils.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSqliteConnection = getSqliteConnection;
|
|
4
|
-
async function getSqliteConnection(filename = ":memory:") {
|
|
5
|
-
const sqlite = await import("sqlite");
|
|
6
|
-
const sqlite3 = await import("sqlite3");
|
|
7
|
-
return await sqlite.open({
|
|
8
|
-
filename,
|
|
9
|
-
driver: sqlite3.default.Database,
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=utils.js.map
|
package/dist/test/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":";;AAEA,kDASC;AATM,KAAK,UAAU,mBAAmB,CACrC,QAAQ,GAAG,UAAU;IAErB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC;QACrB,QAAQ;QACR,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;KACnC,CAAC,CAAC;AACP,CAAC"}
|