edinburgh 0.1.3 → 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datapack.js","sourceRoot":"","sources":["../../src/datapack.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,25 @@
1
- export { Model, registerModel, field, setOnSaveCallback } from "./models.js";
2
- export { string, number, boolean, identifier, undef, opt, or, array, literal, link, } from "./types.js";
1
+ export declare function scheduleInit(): void;
2
+ export { Model, registerModel, field, } from "./models.js";
3
+ import type { Change, Model } from "./models.js";
4
+ export { string, orderedString, number, dateTime, boolean, identifier, undef, opt, or, array, literal, link, } from "./types.js";
3
5
  export { index, primary, unique, dump, } from "./indexes.js";
4
- export { BaseIndex, UniqueIndex, PrimaryIndex } from './indexes.js';
5
- export { init, onCommit, onRevert, getTransactionData, setTransactionData, DatabaseError } from "olmdb";
6
+ export { BaseIndex, UniqueIndex, PrimaryIndex, SecondaryIndex } from './indexes.js';
7
+ export { type Change } from './models.js';
8
+ export type { Transaction } from './models.js';
9
+ export { DatabaseError } from "olmdb/lowlevel";
10
+ export { runMigration } from './migrate.js';
11
+ export type { MigrationOptions, MigrationResult } from './migrate.js';
12
+ /**
13
+ * Initialize the database with the specified directory path.
14
+ * This function may be called multiple times with the same parameters. If it is not called before the first transact(),
15
+ * the database will be automatically initialized with the default directory.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * init("./my-database");
20
+ * ```
21
+ */
22
+ export declare function init(dbDir: string): void;
6
23
  /**
7
24
  * Executes a function within a database transaction context.
8
25
  *
@@ -11,23 +28,20 @@ export { init, onCommit, onRevert, getTransactionData, setTransactionData, Datab
11
28
  *
12
29
  * Transactions have a consistent view of the database, and changes made within a transaction are
13
30
  * isolated from other transactions until they are committed. In case a commit clashes with changes
14
- * made by another transaction, the transaction function will automatically be re-executed up to 10
31
+ * made by another transaction, the transaction function will automatically be re-executed up to 6
15
32
  * times.
16
33
  *
17
34
  * @template T - The return type of the transaction function.
18
- * @param fn - The function to execute within the transaction context.
35
+ * @param fn - The function to execute within the transaction context. Receives a Transaction instance.
19
36
  * @returns A promise that resolves with the function's return value.
20
- * @throws {TypeError} If nested transactions are attempted.
21
37
  * @throws {DatabaseError} With code "RACING_TRANSACTION" if the transaction fails after retries due to conflicts.
22
- * @throws {DatabaseError} With code "TRANSACTION_FAILED" if the transaction fails for other reasons.
23
38
  * @throws {DatabaseError} With code "TXN_LIMIT" if maximum number of transactions is reached.
24
39
  * @throws {DatabaseError} With code "LMDB-{code}" for LMDB-specific errors.
25
40
  *
26
41
  * @example
27
42
  * ```typescript
28
43
  * const paid = await E.transact(() => {
29
- * const user = User.load("john_doe");
30
- * // This is concurrency-safe - the function will rerun if it is raced by another transaction
44
+ * const user = User.pk.get("john_doe");
31
45
  * if (user.credits > 0) {
32
46
  * user.credits--;
33
47
  * return true;
@@ -38,10 +52,26 @@ export { init, onCommit, onRevert, getTransactionData, setTransactionData, Datab
38
52
  * ```typescript
39
53
  * // Transaction with automatic retry on conflicts
40
54
  * await E.transact(() => {
41
- * const counter = Counter.load("global") || new Counter({id: "global", value: 0});
55
+ * const counter = Counter.pk.get("global") || new Counter({id: "global", value: 0});
42
56
  * counter.value++;
43
57
  * });
44
58
  * ```
45
59
  */
46
60
  export declare function transact<T>(fn: () => T): Promise<T>;
61
+ /**
62
+ * Set the maximum number of retries for a transaction in case of conflicts.
63
+ * The default value is 6. Setting it to 0 will disable retries and cause transactions to fail immediately on conflict.
64
+ *
65
+ * @param count The maximum number of retries for a transaction.
66
+ */
67
+ export declare function setMaxRetryCount(count: number): void;
68
+ /**
69
+ * Set a callback function to be called after a model is saved and committed.
70
+ *
71
+ * @param callback The callback function to set. It gets called after each successful
72
+ * `transact()` commit that has changes, with the following arguments:
73
+ * - A sequential number. Higher numbers have been committed after lower numbers.
74
+ * - A map of model instances to their changes. The change can be "created", "deleted", or an object containing the old values.
75
+ */
76
+ export declare function setOnSaveCallback(callback: ((commitId: number, items: Map<Model<any>, Change>) => void) | undefined): void;
47
77
  export declare function deleteEverything(): Promise<void>;
@@ -1,18 +1,43 @@
1
- import * as olmdb from "olmdb";
2
- import { MODIFIED_INSTANCES_SYMBOL, resetModelCaches } from "./models.js";
1
+ import * as lowlevel from "olmdb/lowlevel";
2
+ import { init as olmdbInit, DatabaseError } from "olmdb/lowlevel";
3
+ import { modelRegistry, txnStorage, currentTxn } from "./models.js";
4
+ let initNeeded = false;
5
+ export function scheduleInit() { initNeeded = true; }
3
6
  // Re-export public API from models
4
- export { Model, registerModel, field, setOnSaveCallback } from "./models.js";
7
+ export { Model, registerModel, field, } from "./models.js";
5
8
  // Re-export public API from types (only factory functions and instances)
6
9
  export {
7
10
  // Pre-defined type instances
8
- string, number, boolean, identifier, undef,
11
+ string, orderedString, number, dateTime, boolean, identifier, undef,
9
12
  // Type factory functions
10
13
  opt, or, array, literal, link, } from "./types.js";
11
14
  // Re-export public API from indexes
12
15
  export { index, primary, unique, dump, } from "./indexes.js";
13
- export { BaseIndex, UniqueIndex, PrimaryIndex } from './indexes.js';
14
- // Re-export from OLMDB
15
- export { init, onCommit, onRevert, getTransactionData, setTransactionData, DatabaseError } from "olmdb";
16
+ export { BaseIndex, UniqueIndex, PrimaryIndex, SecondaryIndex } from './indexes.js';
17
+ export { DatabaseError } from "olmdb/lowlevel";
18
+ export { runMigration } from './migrate.js';
19
+ let olmdbReady = false;
20
+ let maxRetryCount = 6;
21
+ /**
22
+ * Initialize the database with the specified directory path.
23
+ * This function may be called multiple times with the same parameters. If it is not called before the first transact(),
24
+ * the database will be automatically initialized with the default directory.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * init("./my-database");
29
+ * ```
30
+ */
31
+ export function init(dbDir) {
32
+ olmdbReady = true;
33
+ olmdbInit(dbDir);
34
+ }
35
+ let pendingInit;
36
+ const STALE_INSTANCE_DESCRIPTOR = {
37
+ get() {
38
+ throw new DatabaseError("The transaction for this model instance has ended", "STALE_INSTANCE");
39
+ },
40
+ };
16
41
  /**
17
42
  * Executes a function within a database transaction context.
18
43
  *
@@ -21,23 +46,20 @@ export { init, onCommit, onRevert, getTransactionData, setTransactionData, Datab
21
46
  *
22
47
  * Transactions have a consistent view of the database, and changes made within a transaction are
23
48
  * isolated from other transactions until they are committed. In case a commit clashes with changes
24
- * made by another transaction, the transaction function will automatically be re-executed up to 10
49
+ * made by another transaction, the transaction function will automatically be re-executed up to 6
25
50
  * times.
26
51
  *
27
52
  * @template T - The return type of the transaction function.
28
- * @param fn - The function to execute within the transaction context.
53
+ * @param fn - The function to execute within the transaction context. Receives a Transaction instance.
29
54
  * @returns A promise that resolves with the function's return value.
30
- * @throws {TypeError} If nested transactions are attempted.
31
55
  * @throws {DatabaseError} With code "RACING_TRANSACTION" if the transaction fails after retries due to conflicts.
32
- * @throws {DatabaseError} With code "TRANSACTION_FAILED" if the transaction fails for other reasons.
33
56
  * @throws {DatabaseError} With code "TXN_LIMIT" if maximum number of transactions is reached.
34
57
  * @throws {DatabaseError} With code "LMDB-{code}" for LMDB-specific errors.
35
58
  *
36
59
  * @example
37
60
  * ```typescript
38
61
  * const paid = await E.transact(() => {
39
- * const user = User.load("john_doe");
40
- * // This is concurrency-safe - the function will rerun if it is raced by another transaction
62
+ * const user = User.pk.get("john_doe");
41
63
  * if (user.credits > 0) {
42
64
  * user.credits--;
43
65
  * return true;
@@ -48,46 +70,144 @@ export { init, onCommit, onRevert, getTransactionData, setTransactionData, Datab
48
70
  * ```typescript
49
71
  * // Transaction with automatic retry on conflicts
50
72
  * await E.transact(() => {
51
- * const counter = Counter.load("global") || new Counter({id: "global", value: 0});
73
+ * const counter = Counter.pk.get("global") || new Counter({id: "global", value: 0});
52
74
  * counter.value++;
53
75
  * });
54
76
  * ```
55
77
  */
56
- export function transact(fn) {
57
- return olmdb.transact(() => {
58
- const modifiedInstances = new Set();
59
- olmdb.setTransactionData(MODIFIED_INSTANCES_SYMBOL, modifiedInstances);
60
- const savedInstances = new Set();
78
+ export async function transact(fn) {
79
+ while (initNeeded || pendingInit) {
80
+ // Make sure only one async task is doing the inits, the rest should wait for it
81
+ if (pendingInit) {
82
+ await pendingInit;
83
+ }
84
+ else {
85
+ pendingInit = (async () => {
86
+ if (!olmdbReady)
87
+ olmdbInit('.edinburgh');
88
+ olmdbReady = true;
89
+ initNeeded = false;
90
+ for (const model of Object.values(modelRegistry)) {
91
+ await model._delayedInit();
92
+ }
93
+ pendingInit = undefined;
94
+ })();
95
+ }
96
+ }
97
+ // try {
98
+ for (let retryCount = 0; retryCount < maxRetryCount; retryCount++) {
99
+ const txnId = lowlevel.startTransaction();
100
+ const txn = { id: txnId, instances: new Set(), instancesByPk: new Map() };
101
+ const onSaveItems = onSaveCallback ? new Map() : undefined;
102
+ let result;
61
103
  try {
62
- const result = fn();
63
- // Save all modified instances before committing.
64
- while (modifiedInstances.size > 0) {
65
- // Back referencing can cause models to be scheduled for save() a second time,
66
- // which is why we require the outer loop.
67
- for (const instance of modifiedInstances) {
68
- instance._save();
69
- savedInstances.add(instance);
70
- modifiedInstances.delete(instance);
104
+ await txnStorage.run(txn, async function () {
105
+ result = await fn();
106
+ // Call preCommit() on all instances before writing.
107
+ // Note: Set iteration visits newly added items, so preCommit() creating
108
+ // new instances is handled correctly.
109
+ for (const instance of txn.instances) {
110
+ instance.preCommit?.();
71
111
  }
112
+ // Save all modified instances before committing
113
+ // This needs to happen inside txnStorage.run, because resolving default values
114
+ // for identifiers requires database access.
115
+ for (const instance of txn.instances) {
116
+ const change = instance._write(txn);
117
+ if (onSaveItems && change) {
118
+ onSaveItems.set(instance, change);
119
+ }
120
+ }
121
+ });
122
+ }
123
+ catch (e) {
124
+ try {
125
+ lowlevel.abortTransaction(txnId);
72
126
  }
73
- return result;
127
+ catch { }
128
+ throw e;
129
+ }
130
+ finally {
131
+ // Make the instances read-only to make it clear that their transaction has ended.
132
+ for (const instance of txn.instances) {
133
+ delete instance._oldValues;
134
+ Object.defineProperty(instance, "_txn", STALE_INSTANCE_DESCRIPTOR);
135
+ Object.freeze(instance);
136
+ }
137
+ // Destroy the transaction object, to make sure things crash if they are used after
138
+ // this point, and to help the GC reclaim memory.
139
+ txn.id = txn.instances = txn.instancesByPk = undefined;
74
140
  }
75
- catch (error) {
76
- // Discard changes on all saved and still unsaved instances
77
- for (const instance of savedInstances)
78
- instance.preventPersist();
79
- for (const instance of modifiedInstances)
80
- instance.preventPersist();
81
- throw error;
141
+ const commitResult = lowlevel.commitTransaction(txnId);
142
+ const commitSeq = typeof commitResult === 'number' ? commitResult : await commitResult;
143
+ if (commitSeq > 0) {
144
+ // Success
145
+ if (onSaveItems?.size) {
146
+ onSaveCallback(commitSeq, onSaveItems);
147
+ }
148
+ return result;
82
149
  }
83
- });
150
+ // Race condition - retry
151
+ }
152
+ throw new DatabaseError("Transaction keeps getting raced", "RACING_TRANSACTION");
153
+ // } catch (e: Error | any) {
154
+ // // This hackery is required to provide useful stack traces.
155
+ // const callerStack = new Error().stack?.replace(/^.*?\n/, '');
156
+ // e.stack += "\nat async:\n" + callerStack;
157
+ // throw e;
158
+ // }
159
+ }
160
+ /**
161
+ * Set the maximum number of retries for a transaction in case of conflicts.
162
+ * The default value is 6. Setting it to 0 will disable retries and cause transactions to fail immediately on conflict.
163
+ *
164
+ * @param count The maximum number of retries for a transaction.
165
+ */
166
+ export function setMaxRetryCount(count) {
167
+ maxRetryCount = count;
168
+ }
169
+ let onSaveCallback;
170
+ /**
171
+ * Set a callback function to be called after a model is saved and committed.
172
+ *
173
+ * @param callback The callback function to set. It gets called after each successful
174
+ * `transact()` commit that has changes, with the following arguments:
175
+ * - A sequential number. Higher numbers have been committed after lower numbers.
176
+ * - A map of model instances to their changes. The change can be "created", "deleted", or an object containing the old values.
177
+ */
178
+ export function setOnSaveCallback(callback) {
179
+ onSaveCallback = callback;
84
180
  }
85
181
  export async function deleteEverything() {
86
- await olmdb.transact(() => {
87
- for (const { key } of olmdb.scan()) {
88
- olmdb.del(key);
89
- }
90
- });
91
- await resetModelCaches();
182
+ let done = false;
183
+ while (!done) {
184
+ await transact(() => {
185
+ const txn = currentTxn();
186
+ const iteratorId = lowlevel.createIterator(txn.id, undefined, undefined, false);
187
+ const deadline = Date.now() + 150;
188
+ let count = 0;
189
+ try {
190
+ while (true) {
191
+ const raw = lowlevel.readIterator(iteratorId);
192
+ if (!raw) {
193
+ done = true;
194
+ break;
195
+ }
196
+ lowlevel.del(txn.id, raw.key);
197
+ if (++count >= 4096 || Date.now() >= deadline)
198
+ break;
199
+ }
200
+ }
201
+ finally {
202
+ lowlevel.closeIterator(iteratorId);
203
+ }
204
+ });
205
+ }
206
+ // Re-init indexes since metadata was deleted
207
+ for (const model of Object.values(modelRegistry)) {
208
+ if (!model.fields)
209
+ continue;
210
+ await model._delayedInit(true);
211
+ }
92
212
  }
93
213
  //# sourceMappingURL=edinburgh.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edinburgh.js","sourceRoot":"","sources":["../../src/edinburgh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAS,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEjF,mCAAmC;AACnC,OAAO,EACH,KAAK,EACL,aAAa,EACb,KAAK,EACL,iBAAiB,EACpB,MAAM,aAAa,CAAC;AAGrB,yEAAyE;AACzE,OAAO;AACH,6BAA6B;AAC7B,MAAM,EACN,MAAM,EACN,OAAO,EACP,UAAU,EACV,KAAK;AACL,yBAAyB;AACzB,GAAG,EACH,EAAE,EACF,KAAK,EACL,OAAO,EACP,IAAI,GACP,MAAM,YAAY,CAAC;AAEpB,oCAAoC;AACpC,OAAO,EACH,KAAK,EACL,OAAO,EACP,MAAM,EACN,IAAI,GACP,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEpE,uBAAuB;AACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAGxG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCE;AACF,MAAM,UAAU,QAAQ,CAAI,EAAW;IACnC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACvB,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAc,CAAC;QAChD,KAAK,CAAC,kBAAkB,CAAC,yBAAyB,EAAE,iBAAiB,CAAC,CAAC;QAEvE,MAAM,cAAc,GAAoB,IAAI,GAAG,EAAE,CAAC;QAClD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,EAAE,EAAE,CAAC;YACpB,iDAAiD;YACjD,OAAM,iBAAiB,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC/B,8EAA8E;gBAC9E,0CAA0C;gBAC1C,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE,CAAC;oBACvC,QAAQ,CAAC,KAAK,EAAE,CAAC;oBACjB,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC7B,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;YAED,OAAO,MAAM,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,2DAA2D;YAC3D,KAAK,MAAM,QAAQ,IAAI,cAAc;gBAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;YACjE,KAAK,MAAM,QAAQ,IAAI,iBAAiB;gBAAE,QAAQ,CAAC,cAAc,EAAE,CAAC;YACpE,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;QACtB,KAAK,MAAM,EAAC,GAAG,EAAC,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,gBAAgB,EAAE,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"edinburgh.js","sourceRoot":"","sources":["../../src/edinburgh.ts"],"names":[],"mappings":"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"}