@remix-run/data-table-postgres 0.2.0 → 0.3.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 +0 -14
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/lib/adapter.d.ts +5 -11
- package/dist/lib/adapter.d.ts.map +1 -1
- package/dist/lib/adapter.js +8 -8
- package/package.json +1 -1
- package/src/index.ts +0 -1
- package/src/lib/adapter.ts +18 -25
package/README.md
CHANGED
|
@@ -62,20 +62,6 @@ await db.transaction(async (txDb) => txDb.exec('select 1'), {
|
|
|
62
62
|
})
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
### Capability Overrides For Testing
|
|
66
|
-
|
|
67
|
-
You can override capabilities to verify fallback paths in tests.
|
|
68
|
-
|
|
69
|
-
```ts
|
|
70
|
-
import { createPostgresDatabaseAdapter } from 'remix/data-table-postgres'
|
|
71
|
-
|
|
72
|
-
let adapter = createPostgresDatabaseAdapter(pool, {
|
|
73
|
-
capabilities: {
|
|
74
|
-
returning: false,
|
|
75
|
-
},
|
|
76
|
-
})
|
|
77
|
-
```
|
|
78
|
-
|
|
79
65
|
## Related Packages
|
|
80
66
|
|
|
81
67
|
- [`data-table`](https://github.com/remix-run/remix/tree/main/packages/data-table) - Core query/relations API
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/dist/lib/adapter.d.ts
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Pool as PostgresPool, PoolClient as PostgresPoolClient } from 'pg';
|
|
3
|
-
|
|
4
|
-
* Postgres adapter configuration.
|
|
5
|
-
*/
|
|
6
|
-
export type PostgresDatabaseAdapterOptions = {
|
|
7
|
-
capabilities?: AdapterCapabilityOverrides;
|
|
8
|
-
};
|
|
9
|
-
type PostgresQueryable = PostgresPool | PostgresPoolClient;
|
|
1
|
+
import type { DataMigrationRequest, DataManipulationRequest, DataMigrationResult, DataMigrationOperation, DataManipulationResult, DataManipulationOperation, DatabaseAdapter, SqlStatement, TableRef, TransactionOptions, TransactionToken } from '@remix-run/data-table';
|
|
2
|
+
import type { Client as PostgresClient, Pool as PostgresPool, PoolClient as PostgresPoolClient } from 'pg';
|
|
3
|
+
type PostgresQueryable = PostgresClient | PostgresPool | PostgresPoolClient;
|
|
10
4
|
/**
|
|
11
5
|
* `DatabaseAdapter` implementation for postgres-compatible clients.
|
|
12
6
|
*/
|
|
@@ -26,7 +20,7 @@ export declare class PostgresDatabaseAdapter implements DatabaseAdapter {
|
|
|
26
20
|
transactionalDdl: boolean;
|
|
27
21
|
migrationLock: boolean;
|
|
28
22
|
};
|
|
29
|
-
constructor(client: PostgresQueryable
|
|
23
|
+
constructor(client: PostgresQueryable);
|
|
30
24
|
/**
|
|
31
25
|
* Compiles a data or migration operation to postgres SQL statements.
|
|
32
26
|
* @param operation Operation to compile.
|
|
@@ -126,6 +120,6 @@ export declare class PostgresDatabaseAdapter implements DatabaseAdapter {
|
|
|
126
120
|
* let db = createDatabase(adapter)
|
|
127
121
|
* ```
|
|
128
122
|
*/
|
|
129
|
-
export declare function createPostgresDatabaseAdapter(client: PostgresQueryable
|
|
123
|
+
export declare function createPostgresDatabaseAdapter(client: PostgresQueryable): PostgresDatabaseAdapter;
|
|
130
124
|
export {};
|
|
131
125
|
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/lib/adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EAEf,YAAY,EACZ,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAO9B,OAAO,KAAK,EACV,MAAM,IAAI,cAAc,EACxB,IAAI,IAAI,YAAY,EACpB,UAAU,IAAI,kBAAkB,EACjC,MAAM,IAAI,CAAA;AASX,KAAK,iBAAiB,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,CAAA;AAE3E;;GAEG;AACH,qBAAa,uBAAwB,YAAW,eAAe;;IAC7D;;OAEG;IACH,OAAO,SAAa;IAEpB;;OAEG;IACH,YAAY;;;;;;MAAA;IAMZ,YAAY,MAAM,EAAE,iBAAiB,EASpC;IAED;;;;OAIG;IACH,UAAU,CAAC,SAAS,EAAE,yBAAyB,GAAG,sBAAsB,GAAG,YAAY,EAAE,CAOxF;IAED;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAuB/E;IAED;;;;OAIG;IACG,OAAO,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAWzE;IAED;;;;;OAKG;IACG,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAMhF;IAED;;;;;;OAMG;IACG,SAAS,CACb,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,gBAAgB,GAC7B,OAAO,CAAC,OAAO,CAAC,CASlB;IAED;;;;OAIG;IACG,gBAAgB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA0B9E;IAED;;;;OAIG;IACG,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9D;IAED;;;;OAIG;IACG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBhE;IAED;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1E;IAED;;;;;OAKG;IACG,mBAAmB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG9E;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG3E;IAED;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1C;IAED;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1C;CAmBF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,iBAAiB,GAAG,uBAAuB,CAEhG"}
|
package/dist/lib/adapter.js
CHANGED
|
@@ -16,14 +16,14 @@ export class PostgresDatabaseAdapter {
|
|
|
16
16
|
#client;
|
|
17
17
|
#transactions = new Map();
|
|
18
18
|
#transactionCounter = 0;
|
|
19
|
-
constructor(client
|
|
19
|
+
constructor(client) {
|
|
20
20
|
this.#client = client;
|
|
21
21
|
this.capabilities = {
|
|
22
|
-
returning:
|
|
23
|
-
savepoints:
|
|
24
|
-
upsert:
|
|
25
|
-
transactionalDdl:
|
|
26
|
-
migrationLock:
|
|
22
|
+
returning: true,
|
|
23
|
+
savepoints: true,
|
|
24
|
+
upsert: true,
|
|
25
|
+
transactionalDdl: true,
|
|
26
|
+
migrationLock: true,
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
@@ -247,8 +247,8 @@ export class PostgresDatabaseAdapter {
|
|
|
247
247
|
* let db = createDatabase(adapter)
|
|
248
248
|
* ```
|
|
249
249
|
*/
|
|
250
|
-
export function createPostgresDatabaseAdapter(client
|
|
251
|
-
return new PostgresDatabaseAdapter(client
|
|
250
|
+
export function createPostgresDatabaseAdapter(client) {
|
|
251
|
+
return new PostgresDatabaseAdapter(client);
|
|
252
252
|
}
|
|
253
253
|
function isPostgresPool(client) {
|
|
254
254
|
return 'connect' in client && typeof client.connect === 'function';
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
package/src/lib/adapter.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
AdapterCapabilityOverrides,
|
|
3
2
|
DataMigrationRequest,
|
|
4
3
|
DataManipulationRequest,
|
|
5
4
|
DataMigrationResult,
|
|
@@ -19,23 +18,20 @@ import {
|
|
|
19
18
|
quoteLiteral as quoteLiteralHelper,
|
|
20
19
|
quoteTableRef as quoteTableRefHelper,
|
|
21
20
|
} from '@remix-run/data-table/sql-helpers'
|
|
22
|
-
import type {
|
|
21
|
+
import type {
|
|
22
|
+
Client as PostgresClient,
|
|
23
|
+
Pool as PostgresPool,
|
|
24
|
+
PoolClient as PostgresPoolClient,
|
|
25
|
+
} from 'pg'
|
|
23
26
|
|
|
24
27
|
import { compilePostgresOperation } from './sql-compiler.ts'
|
|
25
28
|
|
|
26
|
-
/**
|
|
27
|
-
* Postgres adapter configuration.
|
|
28
|
-
*/
|
|
29
|
-
export type PostgresDatabaseAdapterOptions = {
|
|
30
|
-
capabilities?: AdapterCapabilityOverrides
|
|
31
|
-
}
|
|
32
|
-
|
|
33
29
|
type TransactionState = {
|
|
34
|
-
client: PostgresPoolClient
|
|
30
|
+
client: PostgresClient | PostgresPoolClient
|
|
35
31
|
releaseOnClose: boolean
|
|
36
32
|
}
|
|
37
33
|
|
|
38
|
-
type PostgresQueryable = PostgresPool | PostgresPoolClient
|
|
34
|
+
type PostgresQueryable = PostgresClient | PostgresPool | PostgresPoolClient
|
|
39
35
|
|
|
40
36
|
/**
|
|
41
37
|
* `DatabaseAdapter` implementation for postgres-compatible clients.
|
|
@@ -55,14 +51,14 @@ export class PostgresDatabaseAdapter implements DatabaseAdapter {
|
|
|
55
51
|
#transactions = new Map<string, TransactionState>()
|
|
56
52
|
#transactionCounter = 0
|
|
57
53
|
|
|
58
|
-
constructor(client: PostgresQueryable
|
|
54
|
+
constructor(client: PostgresQueryable) {
|
|
59
55
|
this.#client = client
|
|
60
56
|
this.capabilities = {
|
|
61
|
-
returning:
|
|
62
|
-
savepoints:
|
|
63
|
-
upsert:
|
|
64
|
-
transactionalDdl:
|
|
65
|
-
migrationLock:
|
|
57
|
+
returning: true,
|
|
58
|
+
savepoints: true,
|
|
59
|
+
upsert: true,
|
|
60
|
+
transactionalDdl: true,
|
|
61
|
+
migrationLock: true,
|
|
66
62
|
}
|
|
67
63
|
}
|
|
68
64
|
|
|
@@ -171,7 +167,7 @@ export class PostgresDatabaseAdapter implements DatabaseAdapter {
|
|
|
171
167
|
*/
|
|
172
168
|
async beginTransaction(options?: TransactionOptions): Promise<TransactionToken> {
|
|
173
169
|
let releaseOnClose = false
|
|
174
|
-
let transactionClient: PostgresPoolClient
|
|
170
|
+
let transactionClient: PostgresClient | PostgresPoolClient
|
|
175
171
|
|
|
176
172
|
if (isPostgresPool(this.#client)) {
|
|
177
173
|
transactionClient = await this.#client.connect()
|
|
@@ -300,7 +296,7 @@ export class PostgresDatabaseAdapter implements DatabaseAdapter {
|
|
|
300
296
|
return this.#transactionClient(token)
|
|
301
297
|
}
|
|
302
298
|
|
|
303
|
-
#transactionClient(token: TransactionToken): PostgresPoolClient {
|
|
299
|
+
#transactionClient(token: TransactionToken): PostgresClient | PostgresPoolClient {
|
|
304
300
|
let transaction = this.#transactions.get(token.id)
|
|
305
301
|
|
|
306
302
|
if (!transaction) {
|
|
@@ -327,18 +323,15 @@ export class PostgresDatabaseAdapter implements DatabaseAdapter {
|
|
|
327
323
|
* let db = createDatabase(adapter)
|
|
328
324
|
* ```
|
|
329
325
|
*/
|
|
330
|
-
export function createPostgresDatabaseAdapter(
|
|
331
|
-
client
|
|
332
|
-
options?: PostgresDatabaseAdapterOptions,
|
|
333
|
-
): PostgresDatabaseAdapter {
|
|
334
|
-
return new PostgresDatabaseAdapter(client, options)
|
|
326
|
+
export function createPostgresDatabaseAdapter(client: PostgresQueryable): PostgresDatabaseAdapter {
|
|
327
|
+
return new PostgresDatabaseAdapter(client)
|
|
335
328
|
}
|
|
336
329
|
|
|
337
330
|
function isPostgresPool(client: PostgresQueryable): client is PostgresPool {
|
|
338
331
|
return 'connect' in client && typeof client.connect === 'function'
|
|
339
332
|
}
|
|
340
333
|
|
|
341
|
-
function releasePostgresClient(client: PostgresPoolClient): void {
|
|
334
|
+
function releasePostgresClient(client: PostgresClient | PostgresPoolClient): void {
|
|
342
335
|
let release = (client as { release?: () => void }).release
|
|
343
336
|
release?.()
|
|
344
337
|
}
|