@bluewombat/persist-sqlite 0.8.0 → 0.9.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.
|
@@ -4,7 +4,7 @@ export type SqlitePersistOptions = {
|
|
|
4
4
|
};
|
|
5
5
|
/**
|
|
6
6
|
* SQLite Persistence Port. One row per key. A transaction wraps each save.
|
|
7
|
-
* Does not know
|
|
7
|
+
* Does not know TicketStandard transitions.
|
|
8
8
|
*/
|
|
9
9
|
export declare function openSqlitePersist(options: SqlitePersistOptions): Promise<PersistencePort>;
|
|
10
10
|
//# sourceMappingURL=open-sqlite-persist.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-sqlite-persist.d.ts","sourceRoot":"","sources":["../src/open-sqlite-persist.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"open-sqlite-persist.d.ts","sourceRoot":"","sources":["../src/open-sqlite-persist.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAkDF;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAuD/F"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { mkdir } from "node:fs/promises";
|
|
2
2
|
import { dirname, isAbsolute } from "node:path";
|
|
3
3
|
import { DatabaseSync } from "node:sqlite";
|
|
4
|
+
import { isFeatureAggregate } from "@bluewombat/work-ledger";
|
|
4
5
|
function isAggregate(value) {
|
|
5
6
|
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
6
7
|
return false;
|
|
@@ -11,6 +12,16 @@ function isAggregate(value) {
|
|
|
11
12
|
typeof record.intention === "object");
|
|
12
13
|
}
|
|
13
14
|
function toSummary(aggregate) {
|
|
15
|
+
if (isFeatureAggregate(aggregate)) {
|
|
16
|
+
return {
|
|
17
|
+
kind: "feature",
|
|
18
|
+
key: aggregate.intention.key,
|
|
19
|
+
project: aggregate.intention.project,
|
|
20
|
+
state: aggregate.state,
|
|
21
|
+
priority: aggregate.intention.priority,
|
|
22
|
+
received_at: aggregate.received_at,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
14
25
|
const summary = {
|
|
15
26
|
key: aggregate.intention.key,
|
|
16
27
|
project: aggregate.intention.project,
|
|
@@ -21,6 +32,9 @@ function toSummary(aggregate) {
|
|
|
21
32
|
if (aggregate.bail !== undefined) {
|
|
22
33
|
summary.bail_expires_at = aggregate.bail.expires_at;
|
|
23
34
|
}
|
|
35
|
+
if (aggregate.intention.feature !== undefined) {
|
|
36
|
+
summary.feature = aggregate.intention.feature;
|
|
37
|
+
}
|
|
24
38
|
return summary;
|
|
25
39
|
}
|
|
26
40
|
function parsePayload(raw) {
|
|
@@ -34,7 +48,7 @@ function parsePayload(raw) {
|
|
|
34
48
|
}
|
|
35
49
|
/**
|
|
36
50
|
* SQLite Persistence Port. One row per key. A transaction wraps each save.
|
|
37
|
-
* Does not know
|
|
51
|
+
* Does not know TicketStandard transitions.
|
|
38
52
|
*/
|
|
39
53
|
export async function openSqlitePersist(options) {
|
|
40
54
|
if (!isAbsolute(options.path)) {
|
|
@@ -43,14 +57,14 @@ export async function openSqlitePersist(options) {
|
|
|
43
57
|
await mkdir(dirname(options.path), { recursive: true });
|
|
44
58
|
const db = new DatabaseSync(options.path);
|
|
45
59
|
db.exec(`
|
|
46
|
-
CREATE TABLE IF NOT EXISTS
|
|
60
|
+
CREATE TABLE IF NOT EXISTS tickets (
|
|
47
61
|
key TEXT PRIMARY KEY NOT NULL,
|
|
48
62
|
payload TEXT NOT NULL
|
|
49
63
|
);
|
|
50
64
|
`);
|
|
51
|
-
const loadStmt = db.prepare("SELECT payload FROM
|
|
52
|
-
const saveStmt = db.prepare("INSERT OR REPLACE INTO
|
|
53
|
-
const listStmt = db.prepare("SELECT payload FROM
|
|
65
|
+
const loadStmt = db.prepare("SELECT payload FROM tickets WHERE key = ?");
|
|
66
|
+
const saveStmt = db.prepare("INSERT OR REPLACE INTO tickets (key, payload) VALUES (?, ?)");
|
|
67
|
+
const listStmt = db.prepare("SELECT payload FROM tickets");
|
|
54
68
|
return {
|
|
55
69
|
async load(key) {
|
|
56
70
|
const row = loadStmt.get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-sqlite-persist.js","sourceRoot":"","sources":["../src/open-sqlite-persist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"open-sqlite-persist.js","sourceRoot":"","sources":["../src/open-sqlite-persist.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bluewombat/persist-sqlite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "WorkLedger persistence: one SQLite database via node:sqlite.",
|
|
6
6
|
"keywords": [
|
|
@@ -42,6 +42,6 @@
|
|
|
42
42
|
"build": "tsc -p tsconfig.build.json"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@bluewombat/work-ledger": "^0.
|
|
45
|
+
"@bluewombat/work-ledger": "^0.9.0"
|
|
46
46
|
}
|
|
47
47
|
}
|