@hexaijs/sqlite 0.5.0 → 0.5.1

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 CHANGED
@@ -1,17 +1,2 @@
1
- import { Database } from 'better-sqlite3';
2
- import { UnitOfWork, TransactionHook } 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
- beforeCommit(hook: TransactionHook): void;
10
- afterCommit(hook: TransactionHook): void;
11
- afterRollback(hook: TransactionHook): void;
12
- scope<T>(fn: () => Promise<T>): Promise<T>;
13
- wrap<T>(fn: (client: Database) => Promise<T>): Promise<T>;
14
- private getRequiredState;
15
- }
16
-
17
- export { SqliteUnitOfWork };
1
+ export * from "./sqlite-unit-of-work.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,91 +1,2 @@
1
- import { TransactionHooks } from '@hexaijs/core';
2
-
3
- // src/sqlite-unit-of-work.ts
4
- var SqliteUnitOfWork = class _SqliteUnitOfWork {
5
- constructor(db) {
6
- this.db = db;
7
- if (!_SqliteUnitOfWork.transactions.has(db)) {
8
- _SqliteUnitOfWork.transactions.set(db, {
9
- level: 0,
10
- aborted: false,
11
- hooks: new TransactionHooks()
12
- });
13
- }
14
- }
15
- static transactions = /* @__PURE__ */ new WeakMap();
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
- beforeCommit(hook) {
24
- const current = this.getRequiredState("beforeCommit");
25
- current.hooks.addBeforeCommit(hook);
26
- }
27
- afterCommit(hook) {
28
- const current = this.getRequiredState("afterCommit");
29
- current.hooks.addAfterCommit(hook);
30
- }
31
- afterRollback(hook) {
32
- const current = this.getRequiredState("afterRollback");
33
- current.hooks.addAfterRollback(hook);
34
- }
35
- async scope(fn) {
36
- return this.wrap(fn);
37
- }
38
- async wrap(fn) {
39
- const current = _SqliteUnitOfWork.transactions.get(this.db);
40
- if (++current.level === 1) {
41
- this.db.exec("BEGIN TRANSACTION");
42
- }
43
- let abortError;
44
- try {
45
- return await fn(this.db);
46
- } catch (e) {
47
- if (!current.aborted) {
48
- current.aborted = true;
49
- }
50
- abortError = e;
51
- throw e;
52
- } finally {
53
- if (--current.level === 0) {
54
- const hooks = current.hooks;
55
- const wasAborted = current.aborted;
56
- current.hooks = new TransactionHooks();
57
- current.aborted = false;
58
- if (wasAborted) {
59
- await hooks.executeRollback(
60
- async () => {
61
- this.db.exec("ROLLBACK");
62
- },
63
- abortError
64
- );
65
- } else {
66
- await hooks.executeCommit(
67
- async () => {
68
- this.db.exec("COMMIT");
69
- },
70
- async () => {
71
- this.db.exec("ROLLBACK");
72
- }
73
- );
74
- }
75
- }
76
- }
77
- }
78
- getRequiredState(hookName) {
79
- const current = _SqliteUnitOfWork.transactions.get(this.db);
80
- if (!current || current.level === 0) {
81
- throw new Error(
82
- `Cannot register ${hookName} hook outside of a transaction scope`
83
- );
84
- }
85
- return current;
86
- }
87
- };
88
-
89
- export { SqliteUnitOfWork };
90
- //# sourceMappingURL=index.js.map
1
+ export * from "./sqlite-unit-of-work.js";
91
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/sqlite-unit-of-work.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import type { Database } from \"better-sqlite3\";\n\nimport { TransactionHooks, UnitOfWork } from \"@hexaijs/core\";\nimport type { TransactionHook } 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 hooks: TransactionHooks;\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 hooks: new TransactionHooks(),\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 beforeCommit(hook: TransactionHook): void {\n const current = this.getRequiredState(\"beforeCommit\");\n current.hooks.addBeforeCommit(hook);\n }\n\n afterCommit(hook: TransactionHook): void {\n const current = this.getRequiredState(\"afterCommit\");\n current.hooks.addAfterCommit(hook);\n }\n\n afterRollback(hook: TransactionHook): void {\n const current = this.getRequiredState(\"afterRollback\");\n current.hooks.addAfterRollback(hook);\n }\n\n async scope<T>(fn: () => Promise<T>): Promise<T> {\n return this.wrap(fn);\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 this.db.exec(\"BEGIN TRANSACTION\");\n }\n\n let abortError: unknown;\n try {\n return await fn(this.db);\n } catch (e) {\n if (!current.aborted) {\n current.aborted = true;\n }\n abortError = e;\n\n throw e;\n } finally {\n if (--current.level === 0) {\n const hooks = current.hooks;\n const wasAborted = current.aborted;\n\n current.hooks = new TransactionHooks();\n current.aborted = false;\n\n if (wasAborted) {\n await hooks.executeRollback(\n async () => { this.db.exec(\"ROLLBACK\"); },\n abortError\n );\n } else {\n await hooks.executeCommit(\n async () => { this.db.exec(\"COMMIT\"); },\n async () => { this.db.exec(\"ROLLBACK\"); }\n );\n }\n }\n }\n }\n\n private getRequiredState(hookName: string) {\n const current = SqliteUnitOfWork.transactions.get(this.db);\n if (!current || current.level === 0) {\n throw new Error(\n `Cannot register ${hookName} hook outside of a transaction scope`\n );\n }\n return current;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Database } from "better-sqlite3";
2
+ import { UnitOfWork } from "@hexaijs/core";
3
+ import type { TransactionHook } from "@hexaijs/core";
4
+ export declare class SqliteUnitOfWork implements UnitOfWork<Database> {
5
+ private db;
6
+ private static transactions;
7
+ constructor(db: Database);
8
+ getClient(): Database;
9
+ beforeCommit(hook: TransactionHook): void;
10
+ afterCommit(hook: TransactionHook): void;
11
+ afterRollback(hook: TransactionHook): void;
12
+ scope<T>(fn: () => Promise<T>): Promise<T>;
13
+ wrap<T>(fn: (client: Database) => Promise<T>): Promise<T>;
14
+ private getRequiredState;
15
+ }
16
+ //# sourceMappingURL=sqlite-unit-of-work.d.ts.map
@@ -0,0 +1 @@
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,gBAAgB,CAAC;AAE/C,OAAO,EAAoB,UAAU,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,qBAAa,gBAAiB,YAAW,UAAU,CAAC,QAAQ,CAAC;IAU7C,OAAO,CAAC,EAAE;IATtB,OAAO,CAAC,MAAM,CAAC,YAAY,CAOvB;IAEJ,YAAoB,EAAE,EAAE,QAAQ,EAQ/B;IAED,SAAS,IAAI,QAAQ,CAMpB;IAED,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAGxC;IAED,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAGvC;IAED,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAGzC;IAEK,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAE/C;IAEK,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAqC9D;IAED,OAAO,CAAC,gBAAgB;CAS3B"}
@@ -0,0 +1,76 @@
1
+ import { TransactionHooks } from "@hexaijs/core";
2
+ export class SqliteUnitOfWork {
3
+ db;
4
+ static transactions = new WeakMap();
5
+ constructor(db) {
6
+ this.db = db;
7
+ if (!SqliteUnitOfWork.transactions.has(db)) {
8
+ SqliteUnitOfWork.transactions.set(db, {
9
+ level: 0,
10
+ aborted: false,
11
+ hooks: new TransactionHooks(),
12
+ });
13
+ }
14
+ }
15
+ getClient() {
16
+ const current = SqliteUnitOfWork.transactions.get(this.db);
17
+ if (!current || current.level === 0) {
18
+ throw new Error("No transaction is active");
19
+ }
20
+ return this.db;
21
+ }
22
+ beforeCommit(hook) {
23
+ const current = this.getRequiredState("beforeCommit");
24
+ current.hooks.addBeforeCommit(hook);
25
+ }
26
+ afterCommit(hook) {
27
+ const current = this.getRequiredState("afterCommit");
28
+ current.hooks.addAfterCommit(hook);
29
+ }
30
+ afterRollback(hook) {
31
+ const current = this.getRequiredState("afterRollback");
32
+ current.hooks.addAfterRollback(hook);
33
+ }
34
+ async scope(fn) {
35
+ return this.wrap(fn);
36
+ }
37
+ async wrap(fn) {
38
+ const current = SqliteUnitOfWork.transactions.get(this.db);
39
+ if (++current.level === 1) {
40
+ this.db.exec("BEGIN TRANSACTION");
41
+ }
42
+ let abortError;
43
+ try {
44
+ return await fn(this.db);
45
+ }
46
+ catch (e) {
47
+ if (!current.aborted) {
48
+ current.aborted = true;
49
+ }
50
+ abortError = e;
51
+ throw e;
52
+ }
53
+ finally {
54
+ if (--current.level === 0) {
55
+ const hooks = current.hooks;
56
+ const wasAborted = current.aborted;
57
+ current.hooks = new TransactionHooks();
58
+ current.aborted = false;
59
+ if (wasAborted) {
60
+ await hooks.executeRollback(async () => { this.db.exec("ROLLBACK"); }, abortError);
61
+ }
62
+ else {
63
+ await hooks.executeCommit(async () => { this.db.exec("COMMIT"); }, async () => { this.db.exec("ROLLBACK"); });
64
+ }
65
+ }
66
+ }
67
+ }
68
+ getRequiredState(hookName) {
69
+ const current = SqliteUnitOfWork.transactions.get(this.db);
70
+ if (!current || current.level === 0) {
71
+ throw new Error(`Cannot register ${hookName} hook outside of a transaction scope`);
72
+ }
73
+ return current;
74
+ }
75
+ }
76
+ //# sourceMappingURL=sqlite-unit-of-work.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-unit-of-work.js","sourceRoot":"","sources":["../src/sqlite-unit-of-work.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,3 @@
1
- import { Database } from 'better-sqlite3';
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(): void;
19
- }
20
-
21
- declare function getSqliteConnection(filename?: string): Database;
22
-
23
- export { SqliteRepositoryForTest, getSqliteConnection };
1
+ export * from "./sqlite-repository-for-test.js";
2
+ export * from "./utils.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC"}
@@ -1,88 +1,3 @@
1
- import { ObjectNotFoundError, DuplicateObjectError } from '@hexaijs/core';
2
- import Database from 'better-sqlite3';
3
-
4
- // src/test/sqlite-repository-for-test.ts
5
- var SqliteRepositoryForTest = class {
6
- constructor(db, {
7
- namespace,
8
- hydrate,
9
- dehydrate
10
- }) {
11
- this.db = db;
12
- this.namespace = namespace;
13
- this.hydrate = hydrate;
14
- this.dehydrate = dehydrate;
15
- }
16
- namespace;
17
- hydrate;
18
- dehydrate;
19
- async get(id) {
20
- this.ensureTableExists();
21
- const row = this.db.prepare(
22
- `SELECT * FROM ${this.namespace} WHERE id = ?`
23
- ).get(id.getValue());
24
- if (!row) {
25
- throw new ObjectNotFoundError(
26
- `entity with id '${id.getValue()}' not found`
27
- );
28
- }
29
- return this.hydrate(JSON.parse(row.data));
30
- }
31
- async add(entity) {
32
- this.ensureTableExists();
33
- try {
34
- this.db.prepare(
35
- `INSERT INTO ${this.namespace} (id, data)
36
- VALUES (?, ?)`
37
- ).run(
38
- entity.getId().getValue(),
39
- JSON.stringify(this.dehydrate(entity))
40
- );
41
- } catch (e) {
42
- if (e.message.includes("UNIQUE constraint failed")) {
43
- throw new DuplicateObjectError(
44
- `entity with id '${entity.getId().getValue()}' already exists`
45
- );
46
- }
47
- throw e;
48
- }
49
- }
50
- async update(entity) {
51
- this.ensureTableExists();
52
- const result = this.db.prepare(
53
- `UPDATE ${this.namespace}
54
- SET data = ?
55
- WHERE id = ?`
56
- ).run(
57
- JSON.stringify(this.dehydrate(entity)),
58
- entity.getId().getValue()
59
- );
60
- if (result.changes === 0) {
61
- throw new ObjectNotFoundError(
62
- `entity with id '${entity.getId().getValue()}' not found`
63
- );
64
- }
65
- }
66
- async count() {
67
- this.ensureTableExists();
68
- const result = this.db.prepare(
69
- `SELECT COUNT(*) AS count FROM ${this.namespace}`
70
- ).get();
71
- return result.count;
72
- }
73
- ensureTableExists() {
74
- this.db.exec(`
75
- CREATE TABLE IF NOT EXISTS ${this.namespace} (
76
- id TEXT NOT NULL PRIMARY KEY UNIQUE,
77
- data TEXT NOT NULL
78
- )
79
- `);
80
- }
81
- };
82
- function getSqliteConnection(filename = ":memory:") {
83
- return new Database(filename);
84
- }
85
-
86
- export { SqliteRepositoryForTest, getSqliteConnection };
87
- //# sourceMappingURL=index.js.map
1
+ export * from "./sqlite-repository-for-test.js";
2
+ export * from "./utils.js";
88
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
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 \"better-sqlite3\";\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 this.ensureTableExists();\n\n const row = this.db.prepare(\n `SELECT * FROM ${this.namespace} WHERE id = ?`\n ).get(id.getValue()) as { data: string } | undefined;\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 this.ensureTableExists();\n\n try {\n this.db.prepare(\n `INSERT INTO ${this.namespace} (id, data)\n VALUES (?, ?)`\n ).run(\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 this.ensureTableExists();\n\n const result = this.db.prepare(\n `UPDATE ${this.namespace}\n SET data = ?\n WHERE id = ?`\n ).run(\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 this.ensureTableExists();\n\n const result = this.db.prepare(\n `SELECT COUNT(*) AS count FROM ${this.namespace}`\n ).get() as { count: number };\n\n return result.count;\n }\n\n protected ensureTableExists(): void {\n this.db.exec(`\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 Database from \"better-sqlite3\";\nimport type { Database as DatabaseInstance } from \"better-sqlite3\";\n\nexport function getSqliteConnection(\n filename = \":memory:\"\n): DatabaseInstance {\n return new Database(filename);\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/test/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type { Database } from "better-sqlite3";
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(): void;
18
+ }
19
+ //# sourceMappingURL=sqlite-repository-for-test.d.ts.map
@@ -0,0 +1 @@
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,gBAAgB,CAAC;AAE/C,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;IAEtC,YACc,EAAE,EAAE,QAAQ,EACtB,EACI,SAAS,EACT,OAAO,EACP,SAAS,EACZ,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,EAKJ;IAEK,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAajC;IAEK,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBlC;IAEK,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBrC;IAEK,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAQ7B;IAED,SAAS,CAAC,iBAAiB,IAAI,IAAI,CAOlC;CACJ"}
@@ -0,0 +1,59 @@
1
+ import { DuplicateObjectError, ObjectNotFoundError, } from "@hexaijs/core";
2
+ export class SqliteRepositoryForTest {
3
+ db;
4
+ namespace;
5
+ hydrate;
6
+ dehydrate;
7
+ constructor(db, { namespace, hydrate, dehydrate, }) {
8
+ this.db = db;
9
+ this.namespace = namespace;
10
+ this.hydrate = hydrate;
11
+ this.dehydrate = dehydrate;
12
+ }
13
+ async get(id) {
14
+ this.ensureTableExists();
15
+ const row = this.db.prepare(`SELECT * FROM ${this.namespace} WHERE id = ?`).get(id.getValue());
16
+ if (!row) {
17
+ throw new ObjectNotFoundError(`entity with id '${id.getValue()}' not found`);
18
+ }
19
+ return this.hydrate(JSON.parse(row.data));
20
+ }
21
+ async add(entity) {
22
+ this.ensureTableExists();
23
+ try {
24
+ this.db.prepare(`INSERT INTO ${this.namespace} (id, data)
25
+ VALUES (?, ?)`).run(entity.getId().getValue(), JSON.stringify(this.dehydrate(entity)));
26
+ }
27
+ catch (e) {
28
+ if (e.message.includes("UNIQUE constraint failed")) {
29
+ throw new DuplicateObjectError(`entity with id '${entity
30
+ .getId()
31
+ .getValue()}' already exists`);
32
+ }
33
+ throw e;
34
+ }
35
+ }
36
+ async update(entity) {
37
+ this.ensureTableExists();
38
+ const result = this.db.prepare(`UPDATE ${this.namespace}
39
+ SET data = ?
40
+ WHERE id = ?`).run(JSON.stringify(this.dehydrate(entity)), entity.getId().getValue());
41
+ if (result.changes === 0) {
42
+ throw new ObjectNotFoundError(`entity with id '${entity.getId().getValue()}' not found`);
43
+ }
44
+ }
45
+ async count() {
46
+ this.ensureTableExists();
47
+ const result = this.db.prepare(`SELECT COUNT(*) AS count FROM ${this.namespace}`).get();
48
+ return result.count;
49
+ }
50
+ ensureTableExists() {
51
+ this.db.exec(`
52
+ CREATE TABLE IF NOT EXISTS ${this.namespace} (
53
+ id TEXT NOT NULL PRIMARY KEY UNIQUE,
54
+ data TEXT NOT NULL
55
+ )
56
+ `);
57
+ }
58
+ }
59
+ //# sourceMappingURL=sqlite-repository-for-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-repository-for-test.js","sourceRoot":"","sources":["../../src/test/sqlite-repository-for-test.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,oBAAoB,EAGpB,mBAAmB,GAEtB,MAAM,eAAe,CAAC;AAEvB,MAAM,OAAO,uBAAuB;IASlB,EAAE;IALN,SAAS,CAAS;IAClB,OAAO,CAAoB;IAC3B,SAAS,CAAmB;IAEtC,YACc,EAAY,EACtB,EACI,SAAS,EACT,OAAO,EACP,SAAS,GAKZ;kBATS,EAAE;QAWZ,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,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACvB,iBAAiB,IAAI,CAAC,SAAS,eAAe,CACjD,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAiC,CAAC;QACrD,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,MAAM,IAAI,mBAAmB,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,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,IAAI,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,OAAO,CACX,eAAe,IAAI,CAAC,SAAS;+BACd,CAClB,CAAC,GAAG,CACD,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,oBAAoB,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,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,UAAU,IAAI,CAAC,SAAS;;8BAEN,CACrB,CAAC,GAAG,CACD,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,mBAAmB,CACzB,mBAAmB,MAAM,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,aAAa,CAC5D,CAAC;QACN,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,iCAAiC,IAAI,CAAC,SAAS,EAAE,CACpD,CAAC,GAAG,EAAuB,CAAC;QAE7B,OAAO,MAAM,CAAC,KAAK,CAAC;IACxB,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;yCACoB,IAAI,CAAC,SAAS;;;;SAI9C,CAAC,CAAC;IACP,CAAC;CACJ"}
@@ -0,0 +1,3 @@
1
+ import type { Database as DatabaseInstance } from "better-sqlite3";
2
+ export declare function getSqliteConnection(filename?: string): DatabaseInstance;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,wBAAgB,mBAAmB,CAC/B,QAAQ,SAAa,GACtB,gBAAgB,CAElB"}
@@ -0,0 +1,5 @@
1
+ import Database from "better-sqlite3";
2
+ export function getSqliteConnection(filename = ":memory:") {
3
+ return new Database(filename);
4
+ }
5
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,UAAU,mBAAmB,CAC/B,QAAQ,GAAG,UAAU;IAErB,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,62 +1,63 @@
1
1
  {
2
- "name": "@hexaijs/sqlite",
3
- "publishConfig": {
4
- "access": "public"
2
+ "name": "@hexaijs/sqlite",
3
+ "publishConfig": {
4
+ "access": "public"
5
+ },
6
+ "version": "0.5.1",
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"
19
+ },
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"
5
40
  },
6
- "version": "0.5.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"
41
+ "./test": {
42
+ "types": "./dist/test/index.d.ts",
43
+ "import": "./dist/test/index.js"
19
44
  },
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.9.0",
54
- "better-sqlite3": "^12.5.0"
55
- },
56
- "devDependencies": {
57
- "@hexaijs/core": "workspace:^",
58
- "@hexaijs/tooling": "workspace:*",
59
- "@types/better-sqlite3": "^7.6.13",
60
- "better-sqlite3": "^12.5.0"
61
- }
62
- }
45
+ "./package.json": "./package.json"
46
+ },
47
+ "dependencies": {},
48
+ "peerDependencies": {
49
+ "@hexaijs/core": "^0.9.0",
50
+ "better-sqlite3": "^12.5.0"
51
+ },
52
+ "devDependencies": {
53
+ "@typescript/native-preview": "^7.0.0-dev",
54
+ "@types/better-sqlite3": "^7.6.13",
55
+ "better-sqlite3": "^12.5.0",
56
+ "@hexaijs/core": "^0.9.1",
57
+ "@hexaijs/tooling": "0.1.0"
58
+ },
59
+ "scripts": {
60
+ "test": "vitest run",
61
+ "build": "tsgo -p tsconfig.build.json"
62
+ }
63
+ }