@typesql/pg 0.1.5 → 0.2.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/CHANGELOG.md +24 -0
- package/README.md +21 -59
- package/dist/client.d.ts +2 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +7 -3
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/introspect/cli.d.ts.map +1 -1
- package/dist/introspect/cli.js +26 -18
- package/dist/introspect/cli.js.map +1 -1
- package/dist/introspect/emit.d.ts.map +1 -1
- package/dist/introspect/emit.js +48 -11
- package/dist/introspect/emit.js.map +1 -1
- package/dist/introspect/index.d.ts +3 -4
- package/dist/introspect/index.d.ts.map +1 -1
- package/dist/introspect/index.js +1 -3
- package/dist/introspect/index.js.map +1 -1
- package/dist/introspect/introspect.d.ts.map +1 -1
- package/dist/introspect/introspect.js +40 -8
- package/dist/introspect/introspect.js.map +1 -1
- package/dist/introspect/nullability.d.ts +2 -1
- package/dist/introspect/nullability.d.ts.map +1 -1
- package/dist/introspect/nullability.js +101 -29
- package/dist/introspect/nullability.js.map +1 -1
- package/dist/type-map.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client.ts +63 -39
- package/src/index.ts +32 -15
- package/src/introspect/cli.ts +124 -100
- package/src/introspect/emit.ts +224 -139
- package/src/introspect/index.ts +9 -10
- package/src/introspect/introspect.ts +239 -155
- package/src/introspect/nullability.ts +399 -257
- package/src/type-map.ts +25 -24
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @typesql/pg
|
|
2
2
|
|
|
3
|
+
## 0.2.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- The README is shorter: install, one example and links to the docs site, which now has the details it used to repeat.
|
|
8
|
+
|
|
9
|
+
- Updated dependencies:
|
|
10
|
+
- @typesql/core@0.6.0
|
|
11
|
+
|
|
12
|
+
## 0.2.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- `@typesql/pg/introspect` no longer exports `main`, `ViewNullability` and `parseNodeTree`.
|
|
17
|
+
|
|
18
|
+
- `NoResultError`, `Executor` and `TransactionalSql` are no longer re-exported (from `@typesql/drizzle` also `Sql`, `Query`, `RowType`, `ParamsType`, `DefaultTypeMap` and `TypeMap`); import them from `@typesql/core`.
|
|
19
|
+
|
|
20
|
+
### Patch Changes
|
|
21
|
+
|
|
22
|
+
- `typesql introspect` no longer hangs on views that read each other (`CREATE OR REPLACE VIEW` allows the cycle); their columns are nullable.
|
|
23
|
+
|
|
24
|
+
- Updated dependencies:
|
|
25
|
+
- @typesql/core@0.5.0
|
|
26
|
+
|
|
3
27
|
## 0.1.5
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
# @typesql/pg
|
|
2
2
|
|
|
3
|
-
[node-postgres](https://node-postgres.com) (`pg` 8.x)
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
Run [TypeSQL](https://www.npmjs.com/package/@typesql/core) queries on [node-postgres](https://node-postgres.com) (`pg` 8.x), with rows typed the way `pg` returns them.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
6
|
|
|
7
7
|
```sh
|
|
8
|
-
|
|
8
|
+
npm install @typesql/core @typesql/pg pg
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
[Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/PTAEBUE8AcFMGUCKAZUB3AlgFwBagHYD2AJrALTSEDOWA5gE6xWgAUAAljEwI4A2w0WgEoAdKEQBXWPQxNQ9CflCElkQhPqgACoUK8ANKACG+YvMJpmRxqE5wzAI0jocRrACgQoQQHJmpADMjCV4sb2sqaWZGLA18AC5QDHwsAA5jUwIJAFtpDABjY2YaGXxaKkMsDFyaI2zoK2YAETdYMQAJQgA3aVscWHkmEKwqEXdqynowgG9tXV5QAF9QAPpCbNAAIkFNgG5x+sIp0Fn8xlb4PiWVtY3Nji4qPgFaPYPJsLsB2YBhPUMAOKwfDSVrEQwAORCvCMDl4A2Wq3WWwecCe-HyR1gb08YAA6jIsANcBhmE5QK5TIYjqBaMDQUSkmEkRs1BpQMQ3LCjJFEgADL7opIpNZUOD5MJkMgaBaAMgJQFL1GEqPl+tkjCIRnzxilpEF8gMmgAhE7uUCgCSRehURLTM3mpLERJAkH0MEAHk2ySwABZNgA+fYO0CwdUYXiJP68T1EgAeWADQYdxFJ0BhkAA+vg6rBElDeDC4bAY7B44n7eaHEYYfgDZG9J78Dk8vly8GzrAwRm3M76W6icQY9UmFg6tAsAAvNtLJOUGg203BjBO0AuhmwQdelKpafm4K4I4Z5f16Nb3272zYeEnktlwMV7wSOGk-rEbtYPPQ2Hwoc1Uf1Sdp0WfZFncdxMXwGhvHmUAAF4CFgNA5j0FhThUEEJQwFR4CwUpaESbZqDoRgbRAXhCHyascCI4AjGgaBNiWIR9ggqChXgjsLj4d1jX9FhKD0ZiwNYsInAAQQkA9NHg9EWD5eAAFFkAUn5wG8ERl0MaBNSvWAtJEaAn14F8N3fQwJBEUMjHDB9gzs+yHQAMQAJQAeQAWWg+dvFAAApVyAEkIQtK1mAkUBXOCizlzg9T92o+gj2IWyHNS808XaBTnIUuLJISpLYoAEgARj5QwAHYhJEryRliow0Gs0TIAkqTLNjWB8kk2AWCErwHQAPQAfmElQoMtXp4PqxrQFk+SlJUtTNNAKsawNQxOIHd9QBcjyQqiUAMqynKrPDIrSsMTYjE5NhSzHeERExbJNlEUsOq68AjAAa1gRyMGtLBXPocAcDWNAev2PrzSGkbILCTFFFqyaGuwGa+DkxTlNU4w8sPJb4ZSFgACohFAMT4AIba3M8udaoBNyAFUtFAI0AE1sakpK+Re9rOqJcHcWDaGBawWMkmKK4HHUTIsEIZQQVsN1IKMTCVEjDz3ICtS0H6JRcAGAJFBVpQSL0HoKlANzkGQI0xJ+ABpFxgSZPpQdGcDRrCGmArMJHpvRTVFaoZWqhUFgeUgWtWBFknYP9RdQD66HzWq2YYuWX2UZFuSgsU5y1KC8BXL261WBOgxlurEwDRJgA1MTkHphTyZYErDEKgAmEnsvAennIhIKAUdMqtgYZXYBu2M7raR7NkMAAGbm3qJD7vt+-7AeB0H+eTj2arq5HPljbOIVz-OIULmrmDDnHEqWqosHhWv68b5vW9ADuu4Unu+4HofDCWzY7RYAFkIM9NqS9YArx+n9GgG8QYWG3oMWI9AlA0w0sQECQkBZaGsDmIkJdrADFVB1b6ZgjC0GsrDPosA-qgExLwHICR2b5RiqSYUvoxhTRRrNJo81wA5R2tTIizBDrZWYbjH279zpbHKmA16vNurMQTmAaQax6CJCMDNXCyRaBiwIIQMIJh2E+ncEAA) <!-- playground:pg --> to hover the types and edit the SQL, with nothing to install.
|
|
12
|
-
|
|
13
11
|
## Usage
|
|
14
12
|
|
|
15
13
|
```ts
|
|
@@ -17,73 +15,37 @@ import { Pool } from "pg";
|
|
|
17
15
|
import { createSql } from "@typesql/pg";
|
|
18
16
|
import type { DB } from "./schema";
|
|
19
17
|
|
|
20
|
-
const
|
|
21
|
-
|
|
18
|
+
const sql = createSql<DB>(new Pool());
|
|
19
|
+
|
|
20
|
+
const users = await sql("SELECT id, email FROM users").execute();
|
|
21
|
+
// { id: number; email: string }[]
|
|
22
22
|
|
|
23
|
-
const
|
|
24
|
-
const maybe = await sql("SELECT id FROM users WHERE email = $1", "x").executeTakeFirst(); // row | undefined
|
|
25
|
-
const user = await sql("SELECT id, email FROM users WHERE id = $1", 7).executeTakeFirstOrThrow(); // row, or NoResultError
|
|
26
|
-
const changed = await sql("UPDATE users SET display_name = NULL").executeCount(); // row count
|
|
23
|
+
const user = await sql("SELECT id, email FROM users WHERE id = $1", 7).executeTakeFirstOrThrow();
|
|
27
24
|
|
|
28
|
-
|
|
25
|
+
await sql.transaction(async (tx) => {
|
|
29
26
|
const { id } = await tx("INSERT INTO users (email) VALUES ($1) RETURNING id", "a@b.c").executeTakeFirstOrThrow();
|
|
30
27
|
await tx("INSERT INTO posts (author_id, title) VALUES ($1, $2)", id, "Hello").execute();
|
|
31
|
-
return id;
|
|
32
28
|
});
|
|
33
29
|
```
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
`createSql` takes a `Pool`, a `Client` or a `PoolClient`. As in `pg`, `int8` (so `count(*)`), `numeric` and `money` come back as strings.
|
|
36
32
|
|
|
37
|
-
|
|
38
|
-
|---|---|
|
|
39
|
-
| `createSql<DB>(client, options?)` | core's `createSql<DB, PgTypeMap>()` with the queries running on `client` (a `Pool`, `Client` or `PoolClient`); `{ rowKeys: "camelCase" }` camelCases the row keys |
|
|
40
|
-
| `q.execute()`, `q.executeTakeFirst()`, `q.executeTakeFirstOrThrow()`, `q.executeCount()` | `Promise<Row[]>`, `Promise<Row \| undefined>`, `Promise<Row>` (`NoResultError` on 0 rows), `Promise<number>` (`rowCount`) |
|
|
41
|
-
| `sql.transaction(fn)` | on a `Pool`: checks out a client, `BEGIN`, `fn(tx)`, `COMMIT`, releases it; `ROLLBACK` and rethrow on error. On a `Client` or `PoolClient`: the same on that connection. `tx` is `sql` bound to the transaction; `tx.transaction(fn)` uses a savepoint |
|
|
42
|
-
| `executor(client)` | an `Executor` for `q.execute(executor)` and core's `createSql(executor)` (reports `rowCount`) |
|
|
43
|
-
| `migrate(pool, m)` | runs `m.statements` (e.g. from core's `migrations()`) in one transaction |
|
|
44
|
-
| `PgSql<DB, Keys>` | the type `createSql` returns |
|
|
45
|
-
| `PgTypeMap`, `PgParamTypeMap`, `PgInterval` | the type map (rows), what parameters also accept, and the `postgres-interval` object type |
|
|
46
|
-
| `NoResultError`, `PgQueryable`, `PgPoolLike`, `PgTransactionClient`, `PgResult`, `MigrationSource` | errors and parameter types |
|
|
33
|
+
[Open an example in the TypeScript Playground](https://www.typescriptlang.org/play/#code/PTAEBUE8AcFMGUCKAZUB3AlgFwBagHYD2AJrALTSEDOWA5gE6xWgAUAAljEwI4A2w0WgEoAdKEQBXWPQxNQ9CflCElkQhPqgACoUK8ANKACG+YvMJpmRxqE5wzAI0jocRrACgQoQQHJmpADMjCV4sb2sqaWZGLA18AC5QDHwsAA5jUwIJAFtpDABjY2YaGXxaKkMsDFyaI2zoK2YAETdYMQAJQgA3aVscWHkmEKwqEXd3asp6MLsBgG9QAGE9QwBxWHxpVuJDADkQ3iMHXgGAX1AA+kJs0AAiDi4qPmB8wkZbgG4J+rewhfzGK14HxQOdLtc7g84E9+IJPt8pn9tLpeKCLlcbrc4V9PGAAOoyLADXAYZhOUCuUyGN6gWgbLZEpJhcE3NQaUDENxHIyRRIAA1mMKSKSuVDg+TCZDIGlRgDICUBS9RhKj5frZIwiEZ8iYpaRBfIDJoAIVAc3cAEgJJF6FREmbzeaMMREutNvRtgAeW7JLAAFluAD4vg7YOqMLxEsteF6iQAPLCB4Pm4ik6CHSAAfXwdVgiX2vEOx1gMdg8cTFvNDiMh3wBsjei9+ByeXy5YdANg2wzbhd9PdROIMeqTCwdWgWAAXm3TsHKDRbaaK07e27Pd6Uqk2+bgrg3hnl0sG+u-VuqlgTvXo7c4wmgxXoBJjqT+sRu1g8wcjichzVR-VJ9OXynOMrz4DQ3goqAAC8BCwGgyJ6Cw-wqJsEoYCo8BYKUtCJFi1B0IwtogLwhD5NWOD4cARjQNAtygkIXygeBQowR2QJ8B6xoBiwlB6AxIEqOBTgAIISLumgwTCLAWny8AAKLIHJizgN4IhOoY0CatgJwaSID5PlQL5voYEgiKGRjhu4oDWTZtl2fZoAAGIAEoAPIALIQfO3igAAUq5ACSuygFaUQhaArnBaZTrQapO4UfQ+7EFZDmpfZeLtHJzlyXFYkJUlsUACQAIx8voFoAOzlfxTFhHOIyxUYaAWWEIl5W8ZmxrA+RibALD8V4NkAHoAPwCWBYShRJxjNdgoBSTJ8mKcpSQ7KAVY1gahhsQOb5OW5nlTcwGVZTl5nhkVpXleatxGJybClmOJwiK82S3NVnXdb14BGAA1rAjkYDaWCufQ4A4FcaD9V8g3WaN43ga8igNTBTUtfNfDSeaskKUpKnxXu6mgEjKQsAAVEIoDCfABD7R5XkNasbkAKpaKARoAJrGO1iVOmV7iiKWX1EtDuK2fDYtYLGSTFCCDjqJkWCEMomy2O6YFGGhKiRh57kBSpaD9EouADAEiha0ohF6D0FSgG5yDIEawmLAA0i4GxMn0kOjO4tUMwFZio7Nyp8Jq6tUJrVQqCwPKQLWrBS5TUEBou5qDfD5p+wsMXnEH6NS1j2NBfJzkqUF4CuSF1rMCw50GOt1YmAalMAGrCcgzNyTTLAlYYhUAEyU9l4DM85uxBasq38w6twMJrsAPbGT1tK970VgADNdgtdT1RI-f9gPA6D4OQ6LmeCXV+GNcHtixoXfLF1lZe7BXDM1wTvNrWeJyt+3nfd73UAA8h5yRHmPCeU9rqOh2BWW47RYAFkIGvc029hawH3gDIGNBj4QwsGfGIcQGZqWIEBfiYstDWBzESG0xgbCqm6v9MwRhaAWQmn0WAQNiZ6ByAkbm4kCqkmFH6MYaM5pST5E0XG4AcouXpvVY6mVsp8PyjFGCJUyp3AqrcVBu8+oMVAF4aQVx6CJCMPNLCyRaAywIIQMIJghG+ncEAA) <!-- playground:pg --> to hover the types and edit the SQL, with nothing to install.
|
|
47
34
|
|
|
48
|
-
|
|
49
|
-
in tests. If the `ROLLBACK` of a pool transaction fails, the client is released with the error
|
|
50
|
-
so the pool discards the connection.
|
|
35
|
+
## Generate your schema
|
|
51
36
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
Generates the schema from a live database: tables, views, materialized views and enums, with
|
|
55
|
-
the exact Postgres type of every column (domains as their base type), nullability, defaults,
|
|
56
|
-
identity and generated columns, other schemas nested, and TypeScript types for JSON columns
|
|
57
|
-
from a config file.
|
|
37
|
+
This package also ships the `typesql` command, which writes the `DB` type from a live database:
|
|
58
38
|
|
|
59
39
|
```sh
|
|
60
|
-
|
|
61
|
-
pnpm exec typesql introspect --schema public,auth --config typesql.config.ts
|
|
40
|
+
npx typesql introspect --url postgres://localhost/app --out src/db/schema.ts
|
|
62
41
|
```
|
|
63
42
|
|
|
64
|
-
|
|
65
|
-
`@typesql/pg/introspect`. See the
|
|
66
|
-
[Introspection guide](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/guide/introspect.md).
|
|
67
|
-
|
|
68
|
-
## `PgTypeMap`
|
|
69
|
-
|
|
70
|
-
What `pg`'s default parsers return:
|
|
43
|
+
## Documentation
|
|
71
44
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
| `int8` (also `count(*)`), `numeric`, `money` | `string` |
|
|
76
|
-
| `bool` | `boolean` |
|
|
77
|
-
| `date`, `timestamp`, `timestamptz` | `Date` |
|
|
78
|
-
| `json`, `jsonb` | `unknown` |
|
|
79
|
-
| `bytea` | `Buffer` |
|
|
80
|
-
| `interval` | `PgInterval` |
|
|
81
|
-
| `point`, `circle` | `{ x, y }`, `{ x, y, radius }` |
|
|
82
|
-
| text-like and other types | `string` |
|
|
45
|
+
- [node-postgres adapter](https://typesql.karsli.net/adapters/pg): running queries, transactions and migrations
|
|
46
|
+
- [From a live database](https://typesql.karsli.net/guide/introspect): `typesql introspect` options
|
|
47
|
+
- [Type mapping](https://typesql.karsli.net/reference/type-mapping#node-postgres): the TypeScript type of every Postgres type
|
|
83
48
|
|
|
84
|
-
|
|
85
|
-
on the [node-postgres adapter page](https://github.com/ismailkarsli/typesql/blob/main/packages/docs/adapters/pg.md).
|
|
49
|
+
## License
|
|
86
50
|
|
|
87
|
-
|
|
88
|
-
`number | bigint | string` for `int8`, `numeric` and `money`, `Date | string` for dates and
|
|
89
|
-
timestamps, `string` for `interval`, `Uint8Array` for `bytea`.
|
|
51
|
+
[MIT](LICENSE)
|
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Executor } from "@typesql/core";
|
|
2
|
+
import { type SqlDriver } from "@typesql/core/adapter";
|
|
2
3
|
/** The subset of a `pg` query result the adapter relies on. */
|
|
3
4
|
export interface PgResult {
|
|
4
5
|
readonly rows: unknown[];
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAkB,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvE,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC3B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC3D;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC;CACrC;AAED,6CAA6C;AAC7C,MAAM,WAAW,UAAU,CAC1B,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAEnD,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAMtD;AA+DD,6DAA6D;AAC7D,eAAO,MAAM,MAAM,EAAE,SAAS,CAAC,WAAW,CAA6B,CAAC;AAExE,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,CAAC,SAAS,mBAAmB,EAC1D,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,CAAC,EAAE,eAAe,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
package/dist/client.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runTransaction } from "@typesql/core";
|
|
1
|
+
import { runTransaction } from "@typesql/core/adapter";
|
|
2
2
|
/**
|
|
3
3
|
* An `Executor` for core's `q.execute()`: runs queries on `client` and resolves to
|
|
4
4
|
* `{ rows, rowCount }` (pg's `rowCount`, so `q.executeCount()` works).
|
|
@@ -12,7 +12,9 @@ export function executor(client) {
|
|
|
12
12
|
}
|
|
13
13
|
function isPool(client) {
|
|
14
14
|
// `pg.Client` has `connect()` too (it opens the socket), and `processID`; a `PoolClient` has `release()`.
|
|
15
|
-
return typeof client.connect === "function" &&
|
|
15
|
+
return (typeof client.connect === "function" &&
|
|
16
|
+
!("release" in client) &&
|
|
17
|
+
!("processID" in client));
|
|
16
18
|
}
|
|
17
19
|
function isConnection(client) {
|
|
18
20
|
return "release" in client || "processID" in client;
|
|
@@ -43,7 +45,9 @@ async function inPoolTransaction(pool, fn) {
|
|
|
43
45
|
*/
|
|
44
46
|
function transaction(client, depth, fn) {
|
|
45
47
|
if (depth > 0)
|
|
46
|
-
return runTransaction(on(client), () => fn(client), {
|
|
48
|
+
return runTransaction(on(client), () => fn(client), {
|
|
49
|
+
savepoint: `typesql_${depth}`,
|
|
50
|
+
});
|
|
47
51
|
if (isPool(client))
|
|
48
52
|
return inPoolTransaction(client, fn);
|
|
49
53
|
if (!isConnection(client)) {
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { RowKeys, TransactionalSql } from "@typesql/core";
|
|
2
2
|
import { type PgQueryable } from "./client.js";
|
|
3
3
|
import type { PgTypeMap } from "./type-map.js";
|
|
4
|
-
export {
|
|
4
|
+
export { executor, type MigrationSource, migrate, type PgPoolLike, type PgQueryable, type PgResult, type PgTransactionClient, } from "./client.js";
|
|
5
5
|
export type { PgInterval, PgParamTypeMap, PgTypeMap } from "./type-map.js";
|
|
6
|
-
export { executor, migrate, type MigrationSource, type PgQueryable, type PgResult, type PgTransactionClient, type PgPoolLike, } from "./client.js";
|
|
7
6
|
/** What `createSql<DB>(client)` returns: core's `Sql` under `PgTypeMap`, with `transaction(fn)`. */
|
|
8
7
|
export type PgSql<DB, Keys extends RowKeys = "preserve"> = TransactionalSql<DB, PgTypeMap, Keys>;
|
|
9
8
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAc,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAE3E,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EACN,QAAQ,EACR,KAAK,eAAe,EACpB,OAAO,EACP,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,mBAAmB,GACxB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3E,oGAAoG;AACpG,MAAM,MAAM,KAAK,CAAC,EAAE,EAAE,IAAI,SAAS,OAAO,GAAG,UAAU,IAAI,gBAAgB,CAC1E,EAAE,EACF,SAAS,EACT,IAAI,CACJ,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAC3B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,OAAO,EAAE;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACxC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;AAC1B,wBAAgB,SAAS,CAAC,EAAE,EAC3B,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,GACzC,KAAK,CAAC,EAAE,CAAC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { createTransactionalSql } from "@typesql/core";
|
|
1
|
+
import { createTransactionalSql } from "@typesql/core/adapter";
|
|
2
2
|
import { driver } from "./client.js";
|
|
3
|
-
export { NoResultError } from "@typesql/core";
|
|
4
3
|
export { executor, migrate, } from "./client.js";
|
|
5
4
|
export function createSql(client, options) {
|
|
6
5
|
return createTransactionalSql(client, driver, options);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAoB,MAAM,aAAa,CAAC;AAGvD,OAAO,EACN,QAAQ,EAER,OAAO,GAKP,MAAM,aAAa,CAAC;AAwBrB,MAAM,UAAU,SAAS,CACxB,MAAoB,EACpB,OAAoB;IAEpB,OAAO,sBAAsB,CAC5B,MAAM,EACN,MAAM,EACN,OAAO,CACP,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sources":["../../src/introspect/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sources":["../../src/introspect/cli.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,KAAK,iBAAiB,EAAc,MAAM,iBAAiB,CAAC;AAErE,iGAAiG;AACjG,MAAM,WAAW,gBAAiB,SAAQ,eAAe,EAAE,iBAAiB;IAC3E,iEAAiE;IACjE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACtB;AAmBD,UAAU,EAAE;IACX,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAClB,GAAG,EAAE,MAAM,KACP,OAAO,CAAC,WAAW,GAAG;QAAE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,CAAC,CAAC;CACrD;AA0CD,iGAAiG;AACjG,wBAAsB,IAAI,CACzB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,EAAE,GAAE,EAAgB,GAClB,OAAO,CAAC,MAAM,CAAC,CAyEjB"}
|
package/dist/introspect/cli.js
CHANGED
|
@@ -38,25 +38,26 @@ async function pgConnect(url) {
|
|
|
38
38
|
await client.connect();
|
|
39
39
|
return client;
|
|
40
40
|
}
|
|
41
|
+
const parse = (argv) => parseArgs({
|
|
42
|
+
args: [...argv],
|
|
43
|
+
allowPositionals: true,
|
|
44
|
+
options: {
|
|
45
|
+
url: { type: "string" },
|
|
46
|
+
out: { type: "string" },
|
|
47
|
+
schema: { type: "string", multiple: true },
|
|
48
|
+
exclude: { type: "string", multiple: true },
|
|
49
|
+
"type-name": { type: "string" },
|
|
50
|
+
"import-from": { type: "string" },
|
|
51
|
+
config: { type: "string" },
|
|
52
|
+
"no-comments": { type: "boolean" },
|
|
53
|
+
help: { type: "boolean", short: "h" },
|
|
54
|
+
},
|
|
55
|
+
});
|
|
41
56
|
/** Runs the `typesql` CLI with `argv` (without `node` and the script). Returns the exit code. */
|
|
42
57
|
export async function main(argv, io = defaultIo()) {
|
|
43
58
|
let parsed;
|
|
44
59
|
try {
|
|
45
|
-
parsed =
|
|
46
|
-
args: [...argv],
|
|
47
|
-
allowPositionals: true,
|
|
48
|
-
options: {
|
|
49
|
-
url: { type: "string" },
|
|
50
|
-
out: { type: "string" },
|
|
51
|
-
schema: { type: "string", multiple: true },
|
|
52
|
-
exclude: { type: "string", multiple: true },
|
|
53
|
-
"type-name": { type: "string" },
|
|
54
|
-
"import-from": { type: "string" },
|
|
55
|
-
config: { type: "string" },
|
|
56
|
-
"no-comments": { type: "boolean" },
|
|
57
|
-
help: { type: "boolean", short: "h" },
|
|
58
|
-
},
|
|
59
|
-
});
|
|
60
|
+
parsed = parse(argv);
|
|
60
61
|
}
|
|
61
62
|
catch (err) {
|
|
62
63
|
io.stderr(`${err.message}\n\n${USAGE}`);
|
|
@@ -82,15 +83,22 @@ export async function main(argv, io = defaultIo()) {
|
|
|
82
83
|
io.stderr("typesql introspect: pass --url or set DATABASE_URL\n");
|
|
83
84
|
return 2;
|
|
84
85
|
}
|
|
85
|
-
const list = (v) => v?.flatMap((s) => s
|
|
86
|
+
const list = (v) => v?.flatMap((s) => s
|
|
87
|
+
.split(",")
|
|
88
|
+
.map((x) => x.trim())
|
|
89
|
+
.filter(Boolean));
|
|
86
90
|
const schemas = list(values.schema) ?? config.schemas;
|
|
87
91
|
const exclude = list(values.exclude) ?? config.exclude;
|
|
88
92
|
const options = {
|
|
89
93
|
...config,
|
|
90
94
|
...(schemas !== undefined && { schemas }),
|
|
91
95
|
...(exclude !== undefined && { exclude }),
|
|
92
|
-
...(values["type-name"] !== undefined && {
|
|
93
|
-
|
|
96
|
+
...(values["type-name"] !== undefined && {
|
|
97
|
+
typeName: values["type-name"],
|
|
98
|
+
}),
|
|
99
|
+
...(values["import-from"] !== undefined && {
|
|
100
|
+
importFrom: values["import-from"],
|
|
101
|
+
}),
|
|
94
102
|
...(values["no-comments"] && { comments: false }),
|
|
95
103
|
};
|
|
96
104
|
const client = await (io.connect ?? pgConnect)(url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sources":["../../src/introspect/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,
|
|
1
|
+
{"version":3,"file":"cli.js","sources":["../../src/introspect/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAwB,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAA0B,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAUrE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;CAeb,CAAC;AAaF,MAAM,SAAS,GAAG,GAAO,EAAE,CAAC,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtC,GAAG,EAAE,OAAO,CAAC,GAAG;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;CAClB,CAAC,CAAC;AAEH,KAAK,UAAU,SAAS,CACvB,GAAW;IAEX,IAAI,MAAkC,CAAC;IACvC,IAAI,CAAC;QACJ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,KAAK,CACd,2DAA2D,CAC3D,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,IAAuB,EAAE,EAAE,CACzC,SAAS,CAAC;IACT,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE;QACR,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC1C,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3C,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACjC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;KACrC;CACD,CAAC,CAAC;AAEJ,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,IAAI,CACzB,IAAuB,EACvB,EAAE,GAAO,SAAS,EAAE;IAEpB,IAAI,MAAgC,CAAC;IACrC,IAAI,CAAC;QACJ,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,EAAE,CAAC,MAAM,CAAC,GAAI,GAAa,CAAC,OAAO,OAAO,KAAK,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC;IACV,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACvC,IAAI,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,YAAY,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,EAAE,CAAC,MAAM,CAAC,oBAAoB,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACV,CAAC;IAED,IAAI,CAAC;QACJ,IAAI,MAAM,GAAqB,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,CACxB,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAClD,CAAmC,CAAC;YACrC,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,EAAE,CAAC,MAAM,CAAC,sDAAsD,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC;QACV,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,CAAuB,EAAE,EAAE,CACxC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAChB,CAAC;aACC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CACjB,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC;QACvD,MAAM,OAAO,GAAqB;YACjC,GAAG,MAAM;YACT,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,CAAC;YACzC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI;gBACxC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC;aAC7B,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,IAAI;gBAC1C,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC;aACjC,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;SACjD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YACJ,MAAM,GAAG,cAAc,CAAC,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,CAAC;gBAAS,CAAC;YACV,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;QACpB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC;QACrC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACvB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9B,EAAE,CAAC,MAAM,CAAC,6BAA6B,GAAG,IAAI,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,CAAC,CAAC;IACV,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACd,EAAE,CAAC,MAAM,CAAC,uBAAwB,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QAC7D,OAAO,CAAC,CAAC;IACV,CAAC;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.d.ts","sources":["../../src/introspect/emit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"emit.d.ts","sources":["../../src/introspect/emit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,iGAAiG;IACjG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAClB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAChC,CAAC,CACD,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,oBAAoB,KACzB,MAAM,GAAG,SAAS,CAAC,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CACjB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,oBAAoB,KAC1B,MAAM,GAAG,SAAS,CAAC;IACxB,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC5B;AA2CD;;;;GAIG;AACH,wBAAgB,cAAc,CAC7B,EAAE,EAAE,oBAAoB,EACxB,OAAO,GAAE,eAAoB,GAC3B,MAAM,CAsKR"}
|
package/dist/introspect/emit.js
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
const IDENT = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
|
|
2
|
-
const key = (name) =>
|
|
2
|
+
const key = (name) => IDENT.test(name) ? name : JSON.stringify(name);
|
|
3
3
|
const str = (s) => JSON.stringify(s);
|
|
4
4
|
function doc(lines, indent) {
|
|
5
|
-
const text = lines
|
|
5
|
+
const text = lines
|
|
6
|
+
.flatMap((l) => l.split("\n"))
|
|
7
|
+
.map((l) => l.replace(/\*\//g, "*\\/").trimEnd());
|
|
6
8
|
if (text.length === 0)
|
|
7
9
|
return "";
|
|
8
10
|
if (text.length === 1)
|
|
9
11
|
return `${indent}/** ${text[0]} */\n`;
|
|
10
12
|
return `${indent}/**\n${text.map((l) => `${indent} *${l ? ` ${l}` : ""}`).join("\n")}\n${indent} */\n`;
|
|
11
13
|
}
|
|
12
|
-
const helperFor = (nullable, hasDefault) => nullable
|
|
14
|
+
const helperFor = (nullable, hasDefault) => nullable
|
|
15
|
+
? hasDefault
|
|
16
|
+
? "NullableGenerated"
|
|
17
|
+
: "Nullable"
|
|
18
|
+
: hasDefault
|
|
19
|
+
? "Generated"
|
|
20
|
+
: "Col";
|
|
13
21
|
function columnNotes(c) {
|
|
14
22
|
const notes = [];
|
|
15
23
|
if (c.comment)
|
|
@@ -43,7 +51,11 @@ export function generateSource(db, options = {}) {
|
|
|
43
51
|
if (typeof columnTypes === "function")
|
|
44
52
|
ts = columnTypes(col, rel);
|
|
45
53
|
else {
|
|
46
|
-
const k = qualified in columnTypes
|
|
54
|
+
const k = qualified in columnTypes
|
|
55
|
+
? qualified
|
|
56
|
+
: rel.schema === "public" && short in columnTypes
|
|
57
|
+
? short
|
|
58
|
+
: undefined;
|
|
47
59
|
if (k !== undefined) {
|
|
48
60
|
usedKeys.add(k);
|
|
49
61
|
ts = columnTypes[k];
|
|
@@ -56,7 +68,10 @@ export function generateSource(db, options = {}) {
|
|
|
56
68
|
};
|
|
57
69
|
/** `Json<T>`, `Json<T, { nullable: true }>`, `Json<T, {}, "json">`, … */
|
|
58
70
|
const jsonDescriptor = (col, ts) => {
|
|
59
|
-
const flags = [
|
|
71
|
+
const flags = [
|
|
72
|
+
...(col.nullable ? ["nullable: true"] : []),
|
|
73
|
+
...(col.hasDefault ? ["hasDefault: true"] : []),
|
|
74
|
+
];
|
|
60
75
|
const flagSource = flags.length > 0 ? `{ ${flags.join("; ")} }` : "{}";
|
|
61
76
|
used.add("Json");
|
|
62
77
|
if (col.type === "json")
|
|
@@ -88,7 +103,9 @@ export function generateSource(db, options = {}) {
|
|
|
88
103
|
const relDoc = (rel, indent) => {
|
|
89
104
|
if (!comments)
|
|
90
105
|
return "";
|
|
91
|
-
const kind = rel.kind === "table"
|
|
106
|
+
const kind = rel.kind === "table"
|
|
107
|
+
? []
|
|
108
|
+
: [`${rel.kind[0].toUpperCase()}${rel.kind.slice(1)}.`];
|
|
92
109
|
return doc([...(rel.comment ? [rel.comment] : []), ...kind], indent);
|
|
93
110
|
};
|
|
94
111
|
const topLevel = new Set(db.relations.filter((r) => r.schema === "public").map((r) => r.name));
|
|
@@ -112,22 +129,40 @@ export function generateSource(db, options = {}) {
|
|
|
112
129
|
// of the same name in different schemas share an entry.
|
|
113
130
|
const byName = new Map();
|
|
114
131
|
for (const e of db.enums) {
|
|
115
|
-
const entry = byName.get(e.name) ?? {
|
|
132
|
+
const entry = byName.get(e.name) ?? {
|
|
133
|
+
values: new Set(),
|
|
134
|
+
schemas: [],
|
|
135
|
+
};
|
|
116
136
|
for (const v of e.values)
|
|
117
137
|
entry.values.add(v);
|
|
118
138
|
entry.schemas.push(e.schema);
|
|
119
139
|
byName.set(e.name, entry);
|
|
120
140
|
}
|
|
121
141
|
const entries = [...byName].map(([name, { values, schemas }]) => {
|
|
122
|
-
const notes = comments && schemas.length > 1
|
|
142
|
+
const notes = comments && schemas.length > 1
|
|
143
|
+
? doc([
|
|
144
|
+
`Enums of the same name in ${schemas.map((s) => `\`${s}\``).join(", ")}.`,
|
|
145
|
+
], " ")
|
|
146
|
+
: "";
|
|
123
147
|
return `${notes} ${key(name)}: ${[...values].map(str).join(" | ") || "never"};`;
|
|
124
148
|
});
|
|
125
149
|
lines.push(` $types: {\n${entries.join("\n")}\n };`);
|
|
126
150
|
}
|
|
127
|
-
const helpers = [
|
|
151
|
+
const helpers = [
|
|
152
|
+
"Col",
|
|
153
|
+
"Generated",
|
|
154
|
+
"Json",
|
|
155
|
+
"Nullable",
|
|
156
|
+
"NullableGenerated",
|
|
157
|
+
"View",
|
|
158
|
+
].filter((h) => used.has(h));
|
|
128
159
|
const out = [
|
|
129
160
|
`// Generated by \`typesql introspect\` (@typesql/pg) from PostgreSQL ${db.version.split(/[.\s]/)[0]}. Do not edit.`,
|
|
130
|
-
...(helpers.length > 0
|
|
161
|
+
...(helpers.length > 0
|
|
162
|
+
? [
|
|
163
|
+
`import type { ${helpers.join(", ")} } from ${str(options.importFrom ?? "@typesql/core")};`,
|
|
164
|
+
]
|
|
165
|
+
: []),
|
|
131
166
|
...(options.imports ?? []),
|
|
132
167
|
"",
|
|
133
168
|
`export interface ${key(typeName)} {`,
|
|
@@ -135,7 +170,9 @@ export function generateSource(db, options = {}) {
|
|
|
135
170
|
"}",
|
|
136
171
|
"",
|
|
137
172
|
];
|
|
138
|
-
const unknownKeys = typeof columnTypes === "function"
|
|
173
|
+
const unknownKeys = typeof columnTypes === "function"
|
|
174
|
+
? []
|
|
175
|
+
: Object.keys(columnTypes).filter((k) => !usedKeys.has(k));
|
|
139
176
|
if (unknownKeys.length > 0 && options.column === undefined) {
|
|
140
177
|
throw new Error(`columnTypes: no column ${unknownKeys.map((k) => JSON.stringify(k)).join(", ")} (keys are "table.column" for public tables, else "schema.table.column")`);
|
|
141
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit.js","sources":["../../src/introspect/emit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emit.js","sources":["../../src/introspect/emit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
export
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
4
|
-
export { main, type IntrospectConfig } from "./cli.js";
|
|
1
|
+
export type { IntrospectConfig } from "./cli.js";
|
|
2
|
+
export { type GenerateOptions, generateSource } from "./emit.js";
|
|
3
|
+
export { type IntrospectedColumn, type IntrospectedDatabase, type IntrospectedEnum, type IntrospectedRelation, type IntrospectOptions, introspect, type RelationKind, } from "./introspect.js";
|
|
5
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,KAAK,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,UAAU,EACV,KAAK,YAAY,GACjB,MAAM,iBAAiB,CAAC"}
|
package/dist/introspect/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export { introspect, } from "./introspect.js";
|
|
2
1
|
export { generateSource } from "./emit.js";
|
|
3
|
-
export {
|
|
4
|
-
export { main } from "./cli.js";
|
|
2
|
+
export { introspect, } from "./introspect.js";
|
|
5
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/introspect/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,cAAc,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAMN,UAAU,GAEV,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspect.d.ts","sources":["../../src/introspect/introspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"introspect.d.ts","sources":["../../src/introspect/introspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,kBAAkB,CAAC;AAE5E,MAAM,MAAM,YAAY,GACrB,OAAO,GACP,mBAAmB,GACnB,MAAM,GACN,mBAAmB,GACnB,eAAe,CAAC;AAEnB,MAAM,WAAW,kBAAkB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,6FAA6F;IAC7F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,mGAAmG;IACnG,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC;IAClD,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,8BAA8B;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAChD;AAED,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACpC,qCAAqC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,wCAAwC;IACxC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACpD,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,iBAAiB;IACjC,mGAAmG;IACnG,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;CACrD;AA2ED;;;GAGG;AACH,wBAAsB,UAAU,CAC/B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CAuJ/B"}
|