@earth-app/collegedb 1.1.3 → 1.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/README.md +373 -48
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -9
- package/dist/index.js.map +8 -7
- package/dist/providers-memory.d.ts +111 -0
- package/dist/providers-memory.d.ts.map +1 -0
- package/dist/router.d.ts +73 -0
- package/dist/router.d.ts.map +1 -1
- package/package.json +10 -9
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview In-memory mock providers for testing and development.
|
|
3
|
+
*
|
|
4
|
+
* This module provides lightweight, zero-dependency in-memory implementations of
|
|
5
|
+
* CollegeDB's KVStorage and SQLDatabase interfaces, perfect for:
|
|
6
|
+
*
|
|
7
|
+
* - Unit testing without external dependencies
|
|
8
|
+
* - Integration testing with multiple shard combinations
|
|
9
|
+
* - Local development and rapid iteration
|
|
10
|
+
* - Sandboxed playtesting of routing logic
|
|
11
|
+
*
|
|
12
|
+
* Both providers are suitable for Cloudflare Workers, Node.js, and Deno environments.
|
|
13
|
+
*
|
|
14
|
+
* @author CollegeDB Team
|
|
15
|
+
* @since 1.2.0
|
|
16
|
+
*/
|
|
17
|
+
import type { KVListResult, KVStorage, PreparedStatement, QueryResult, SQLDatabase } from './types';
|
|
18
|
+
/**
|
|
19
|
+
* In-memory implementation of SQLDatabase for testing.
|
|
20
|
+
*
|
|
21
|
+
* Supports basic CRUD operations without external dependencies.
|
|
22
|
+
* Suitable for unit tests, integration tests, and development.
|
|
23
|
+
*/
|
|
24
|
+
export declare class InMemorySQLDatabase implements SQLDatabase {
|
|
25
|
+
private tables;
|
|
26
|
+
private schemas;
|
|
27
|
+
private autoIncrementCounters;
|
|
28
|
+
private lastInsertRowId;
|
|
29
|
+
prepare(sql: string): PreparedStatement;
|
|
30
|
+
/**
|
|
31
|
+
* Internal method to execute a statement.
|
|
32
|
+
*/
|
|
33
|
+
executeStatement(sql: string, bindings: any[]): Promise<QueryResult<Record<string, any>>>;
|
|
34
|
+
/**
|
|
35
|
+
* Internal method to execute a query.
|
|
36
|
+
*/
|
|
37
|
+
executeQuery(sql: string, bindings: any[]): Promise<QueryResult<Record<string, any>>>;
|
|
38
|
+
private handleCreateTable;
|
|
39
|
+
private handleDropTable;
|
|
40
|
+
private handleInsert;
|
|
41
|
+
private handleUpdate;
|
|
42
|
+
private extractSetColumnName;
|
|
43
|
+
private handleDelete;
|
|
44
|
+
private handleSelect;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* In-memory implementation of KVStorage for testing.
|
|
48
|
+
*
|
|
49
|
+
* Simple key-value store with support for prefix listing and cursor-based pagination.
|
|
50
|
+
* Suitable for unit tests, integration tests, and development.
|
|
51
|
+
*/
|
|
52
|
+
export declare class InMemoryKVStorage implements KVStorage {
|
|
53
|
+
private store;
|
|
54
|
+
private expirations;
|
|
55
|
+
get<T = unknown>(key: string, type?: 'text' | 'json'): Promise<T | string | null>;
|
|
56
|
+
put(key: string, value: string, options?: {
|
|
57
|
+
expirationTtl?: number;
|
|
58
|
+
}): Promise<void>;
|
|
59
|
+
delete(key: string): Promise<void>;
|
|
60
|
+
list(options?: {
|
|
61
|
+
prefix?: string;
|
|
62
|
+
cursor?: string;
|
|
63
|
+
limit?: number;
|
|
64
|
+
}): Promise<KVListResult>;
|
|
65
|
+
/**
|
|
66
|
+
* Clear all data from the store.
|
|
67
|
+
*/
|
|
68
|
+
clear(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current size of the store.
|
|
71
|
+
*/
|
|
72
|
+
size(): number;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Factory function to create an in-memory SQL database provider.
|
|
76
|
+
*
|
|
77
|
+
* @returns InMemorySQLDatabase instance
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* import { createInMemorySQLProvider } from '@earth-app/collegedb';
|
|
82
|
+
*
|
|
83
|
+
* const db = createInMemorySQLProvider();
|
|
84
|
+
* initialize({
|
|
85
|
+
* kv: new InMemoryKVStorage(),
|
|
86
|
+
* shards: {
|
|
87
|
+
* 'shard-1': db,
|
|
88
|
+
* 'shard-2': db
|
|
89
|
+
* }
|
|
90
|
+
* });
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
export declare function createInMemorySQLProvider(): SQLDatabase;
|
|
94
|
+
/**
|
|
95
|
+
* Factory function to create an in-memory KV storage provider.
|
|
96
|
+
*
|
|
97
|
+
* @returns InMemoryKVStorage instance
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* import { createInMemoryKVProvider } from '@earth-app/collegedb';
|
|
102
|
+
*
|
|
103
|
+
* const kv = createInMemoryKVProvider();
|
|
104
|
+
* initialize({
|
|
105
|
+
* kv,
|
|
106
|
+
* shards: { / * ... * / }
|
|
107
|
+
* });
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
export declare function createInMemoryKVProvider(): KVStorage;
|
|
111
|
+
//# sourceMappingURL=providers-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers-memory.d.ts","sourceRoot":"","sources":["../src/providers-memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAsIpG;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACtD,OAAO,CAAC,MAAM,CAAuD;IACrE,OAAO,CAAC,OAAO,CAA8C;IAC7D,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,eAAe,CAAgC;IAEvD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB;IAIvC;;OAEG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;IA6C/F;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YA0B7E,iBAAiB;YA8DjB,eAAe;YAwBf,YAAY;YA0EZ,YAAY;IA6D1B,OAAO,CAAC,oBAAoB;YAcd,YAAY;YAgDZ,YAAY;CAoD1B;AAgCD;;;;;GAKG;AACH,qBAAa,iBAAkB,YAAW,SAAS;IAClD,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,WAAW,CAA6B;IAE1C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,GAAG,MAAe,GAAG,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;IA4BzF,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpF,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlC,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IA6BjG;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,MAAM;CAGd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,IAAI,WAAW,CAEvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,IAAI,SAAS,CAEpD"}
|
package/dist/router.d.ts
CHANGED
|
@@ -213,6 +213,10 @@ export declare function prepare(key: string, sql: string): Promise<PreparedState
|
|
|
213
213
|
* The primary key is used to determine which shard should store the record,
|
|
214
214
|
* ensuring consistent routing for future queries.
|
|
215
215
|
*
|
|
216
|
+
* Use this helper when your application already knows the routing key before
|
|
217
|
+
* issuing the write. For database-generated primary keys, use {@link insert}
|
|
218
|
+
* so the returned generated id can be captured and reused for follow-up reads.
|
|
219
|
+
*
|
|
216
220
|
* @template T - Type of the result records
|
|
217
221
|
* @param key - Primary key to route the query (should match the record's primary key)
|
|
218
222
|
* @param sql - SQL statement with parameter placeholders
|
|
@@ -271,6 +275,75 @@ export declare function prepare(key: string, sql: string): Promise<PreparedState
|
|
|
271
275
|
* ```
|
|
272
276
|
*/
|
|
273
277
|
export declare function run<T = Record<string, unknown>>(key: string, sql: string, bindings?: any[]): Promise<QueryResult<T>>;
|
|
278
|
+
/**
|
|
279
|
+
* Result returned by {@link insert} and {@link insertShard}.
|
|
280
|
+
*
|
|
281
|
+
* The helper keeps the normal query payload but also exposes the generated
|
|
282
|
+
* primary key when the backend returns one through `RETURNING` rows or
|
|
283
|
+
* provider metadata.
|
|
284
|
+
*
|
|
285
|
+
* @since 1.1.4
|
|
286
|
+
*/
|
|
287
|
+
export interface InsertResult<T = Record<string, unknown>> extends QueryResult<T> {
|
|
288
|
+
/** Generated primary key returned by the database or driver. */
|
|
289
|
+
generatedId: number | string;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Executes an insert on an automatically selected shard and returns the generated primary key.
|
|
293
|
+
*
|
|
294
|
+
* This is the default helper for generated-key tables. CollegeDB picks a shard
|
|
295
|
+
* using the configured allocation strategy, then stores the generated primary
|
|
296
|
+
* key -> shard mapping so routed reads can find the row later.
|
|
297
|
+
*
|
|
298
|
+
* @template T - Type of returned rows when the insert uses `RETURNING`
|
|
299
|
+
* @param sql - The INSERT statement to execute
|
|
300
|
+
* @param bindings - Parameter values to bind to the statement
|
|
301
|
+
* @returns Promise resolving to the write result plus the generated id
|
|
302
|
+
* @throws {CollegeDBError} If the insert succeeds but no generated id can be determined
|
|
303
|
+
* @since 1.1.4
|
|
304
|
+
* @example
|
|
305
|
+
* ```typescript
|
|
306
|
+
* const created = await insert(
|
|
307
|
+
* 'INSERT INTO auto_users (name, email) VALUES (?, ?)',
|
|
308
|
+
* ['Ada', 'ada@example.com']
|
|
309
|
+
* );
|
|
310
|
+
*
|
|
311
|
+
* const row = await first(String(created.generatedId), 'SELECT * FROM auto_users WHERE id = ?', [created.generatedId]);
|
|
312
|
+
* ```
|
|
313
|
+
*/
|
|
314
|
+
export declare function insert<T = Record<string, unknown>>(sql: string, bindings?: any[]): Promise<InsertResult<T>>;
|
|
315
|
+
/**
|
|
316
|
+
* Executes an insert directly on a named shard and returns the generated primary key.
|
|
317
|
+
*
|
|
318
|
+
* Use this helper when you already know the shard you want to target.
|
|
319
|
+
* The helper still captures the generated id and stores the mapping so routed
|
|
320
|
+
* reads can find the new row later.
|
|
321
|
+
*
|
|
322
|
+
* @template T - Type of returned rows when the insert uses `RETURNING`
|
|
323
|
+
* @param shardBinding - The shard binding to execute the insert on
|
|
324
|
+
* @param sql - The INSERT statement to execute
|
|
325
|
+
* @param bindings - Parameter values to bind to the statement
|
|
326
|
+
* @returns Promise resolving to the write result plus the generated id
|
|
327
|
+
* @throws {CollegeDBError} If the insert succeeds but no generated id can be determined
|
|
328
|
+
* @since 1.1.4
|
|
329
|
+
* @example
|
|
330
|
+
* ```typescript
|
|
331
|
+
* const created = await insertShard('db-east',
|
|
332
|
+
* 'INSERT INTO auto_users (name, email, created_at) VALUES (?, ?, ?)',
|
|
333
|
+
* ['Ada', 'ada@example.com', Date.now()]
|
|
334
|
+
* );
|
|
335
|
+
*
|
|
336
|
+
* console.log(created.generatedId);
|
|
337
|
+
* ```
|
|
338
|
+
* @example
|
|
339
|
+
* ```typescript
|
|
340
|
+
* const created = await insertShard('db-east',
|
|
341
|
+
* 'INSERT INTO auto_users (name, email) VALUES (?, ?) RETURNING id',
|
|
342
|
+
* ['Ada', 'ada@example.com']
|
|
343
|
+
* );
|
|
344
|
+
* ```
|
|
345
|
+
*/
|
|
346
|
+
export declare function insertShard<T = Record<string, unknown>>(shardBinding: string, sql: string, bindings?: any[]): Promise<InsertResult<T>>;
|
|
274
347
|
/**
|
|
275
348
|
* Retrieves all records matching the query for a given primary key.
|
|
276
349
|
*
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGzD,OAAO,KAAK,EACX,eAAe,EACf,QAAQ,EAER,iBAAiB,EACjB,WAAW,EACX,WAAW,EAEX,UAAU,EAEV,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "1.
|
|
7
|
+
"version": "1.2.0",
|
|
8
8
|
"files": [
|
|
9
9
|
"dist/**/*",
|
|
10
10
|
"README.md",
|
|
@@ -41,32 +41,33 @@
|
|
|
41
41
|
"test:sandbox:mariadb+valkey": "bun scripts/sandbox/run.ts --db=mariadb --kv=valkey",
|
|
42
42
|
"test:sandbox:sqlite+redis": "bun scripts/sandbox/run.ts --db=sqlite --kv=redis",
|
|
43
43
|
"test:sandbox:sqlite+valkey": "bun scripts/sandbox/run.ts --db=sqlite --kv=valkey",
|
|
44
|
+
"test:memory": "bun sandbox/memory-example.ts",
|
|
44
45
|
"prepare": "husky install"
|
|
45
46
|
},
|
|
46
47
|
"devDependencies": {
|
|
47
48
|
"@babel/cli": "^7.28.6",
|
|
48
49
|
"@babel/core": "^7.29.0",
|
|
49
|
-
"@babel/preset-env": "^7.29.
|
|
50
|
+
"@babel/preset-env": "^7.29.5",
|
|
50
51
|
"@babel/preset-typescript": "^7.28.5",
|
|
51
|
-
"@cloudflare/workers-types": "^4.
|
|
52
|
+
"@cloudflare/workers-types": "^4.20260509.1",
|
|
52
53
|
"@types/bun": "latest",
|
|
53
54
|
"@types/pg": "^8.20.0",
|
|
54
|
-
"@vitest/coverage-v8": "^4.1.
|
|
55
|
+
"@vitest/coverage-v8": "^4.1.5",
|
|
55
56
|
"drizzle-orm": "^0.45.2",
|
|
56
57
|
"husky": "^9.1.7",
|
|
57
58
|
"jsdoc-babel": "^0.5.0",
|
|
58
|
-
"lint-staged": "^
|
|
59
|
-
"mysql2": "^3.22.
|
|
59
|
+
"lint-staged": "^17.0.0",
|
|
60
|
+
"mysql2": "^3.22.3",
|
|
60
61
|
"pg": "^8.20.0",
|
|
61
62
|
"prettier": "^3.8.3",
|
|
62
63
|
"prettier-plugin-organize-imports": "4.3.0",
|
|
63
64
|
"redis": "^5.12.1",
|
|
64
65
|
"typedoc": "^0.28.19",
|
|
65
|
-
"vitest": "^4.1.
|
|
66
|
-
"wrangler": "^4.
|
|
66
|
+
"vitest": "^4.1.5",
|
|
67
|
+
"wrangler": "^4.90.0"
|
|
67
68
|
},
|
|
68
69
|
"peerDependencies": {
|
|
69
|
-
"typescript": "^5.8.3"
|
|
70
|
+
"typescript": "^5.8.3 || ^6.0.0"
|
|
70
71
|
},
|
|
71
72
|
"lint-staged": {
|
|
72
73
|
"*.{js,ts,css,md,json,yml,jsonc}": "prettier --write"
|