typesql-cli 0.19.1 → 0.20.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 +5 -0
- package/cli.js +66 -75
- package/cli.js.map +1 -1
- package/code-generator.d.ts +3 -2
- package/code-generator.d.ts.map +1 -1
- package/code-generator.js +29 -21
- package/code-generator.js.map +1 -1
- package/code-generator2.d.ts +5 -4
- package/code-generator2.d.ts.map +1 -1
- package/code-generator2.js +28 -26
- package/code-generator2.js.map +1 -1
- package/dialects/postgres.d.ts +1 -0
- package/dialects/postgres.d.ts.map +1 -1
- package/dialects/postgres.js +25 -8
- package/dialects/postgres.js.map +1 -1
- package/drivers/postgres.d.ts +2 -4
- package/drivers/postgres.d.ts.map +1 -1
- package/drivers/postgres.js +44 -55
- package/drivers/postgres.js.map +1 -1
- package/drivers/types.d.ts +4 -8
- package/drivers/types.d.ts.map +1 -1
- package/load-config.d.ts +6 -0
- package/load-config.d.ts.map +1 -1
- package/load-config.js +65 -1
- package/load-config.js.map +1 -1
- package/package.json +2 -1
- package/postgres-query-analyzer/describe.d.ts +2 -1
- package/postgres-query-analyzer/describe.d.ts.map +1 -1
- package/postgres-query-analyzer/describe.js +18 -23
- package/postgres-query-analyzer/describe.js.map +1 -1
- package/postgres-query-analyzer/traverse.d.ts +7 -3
- package/postgres-query-analyzer/traverse.d.ts.map +1 -1
- package/postgres-query-analyzer/traverse.js +242 -154
- package/postgres-query-analyzer/traverse.js.map +1 -1
- package/postgres-query-analyzer/types.d.ts +1 -0
- package/postgres-query-analyzer/types.d.ts.map +1 -1
- package/schema-info.d.ts +13 -5
- package/schema-info.d.ts.map +1 -1
- package/schema-info.js +26 -52
- package/schema-info.js.map +1 -1
- package/sqlite-query-analyzer/code-generator.d.ts +2 -2
- package/sqlite-query-analyzer/code-generator.d.ts.map +1 -1
- package/sqlite-query-analyzer/code-generator.js.map +1 -1
- package/sqlite-query-analyzer/types.d.ts +1 -1
- package/sqlite-query-analyzer/types.d.ts.map +1 -1
- package/ts-dynamic-query-descriptor.d.ts.map +1 -1
- package/ts-dynamic-query-descriptor.js +2 -1
- package/ts-dynamic-query-descriptor.js.map +1 -1
- package/types.d.ts +7 -0
- package/types.d.ts.map +1 -1
package/drivers/postgres.js
CHANGED
@@ -17,7 +17,6 @@ exports.loadDbSchema = loadDbSchema;
|
|
17
17
|
exports.loadEnumsMap = loadEnumsMap;
|
18
18
|
exports.loadEnums = loadEnums;
|
19
19
|
exports.loadCheckConstraints = loadCheckConstraints;
|
20
|
-
exports.mapToColumnSchema = mapToColumnSchema;
|
21
20
|
exports.createPostgresClient = createPostgresClient;
|
22
21
|
exports.loadForeignKeys = loadForeignKeys;
|
23
22
|
exports.loadUserFunctions = loadUserFunctions;
|
@@ -25,51 +24,52 @@ const postgres_1 = __importDefault(require("postgres"));
|
|
25
24
|
const neverthrow_1 = require("neverthrow");
|
26
25
|
const util_1 = require("../util");
|
27
26
|
const enum_parser_1 = require("../postgres-query-analyzer/enum-parser");
|
28
|
-
function loadDbSchema(sql) {
|
27
|
+
function loadDbSchema(sql, schemas = null) {
|
29
28
|
return neverthrow_1.ResultAsync.fromThrowable(() => __awaiter(this, void 0, void 0, function* () {
|
30
29
|
const result = yield sql `
|
31
|
-
SELECT
|
30
|
+
SELECT
|
32
31
|
t.table_schema,
|
33
32
|
t.table_name,
|
34
33
|
col.column_name,
|
35
|
-
CASE WHEN ty.typtype = 'e'
|
34
|
+
CASE WHEN ty.typtype = 'e' THEN 'enum()' ELSE ty.typname END AS type,
|
36
35
|
col.is_nullable,
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
ELSE '' -- Otherwise, empty string
|
41
|
-
END AS column_key,
|
42
|
-
CASE
|
43
|
-
WHEN (
|
44
|
-
-- Check if the column is of type SERIAL
|
45
|
-
col.column_default LIKE 'nextval%'
|
46
|
-
OR
|
47
|
-
-- Check if the column is GENERATED ALWAYS AS IDENTITY
|
48
|
-
col.is_identity = 'YES'
|
49
|
-
) THEN true
|
50
|
-
ELSE false
|
51
|
-
END AS autoincrement,
|
36
|
+
COALESCE(agg.column_key, '') AS column_key,
|
37
|
+
COALESCE(
|
38
|
+
(col.column_default LIKE 'nextval%' OR col.is_identity = 'YES'), false) AS autoincrement,
|
52
39
|
col.column_default
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
40
|
+
FROM information_schema.tables t
|
41
|
+
JOIN pg_class c ON c.relname = t.table_name AND c.relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = t.table_schema)
|
42
|
+
JOIN information_schema.columns col ON col.table_name = t.table_name AND col.table_schema = t.table_schema
|
43
|
+
JOIN pg_type ty ON ty.typname = col.udt_name
|
44
|
+
LEFT JOIN (
|
45
|
+
SELECT
|
46
|
+
con.conrelid AS conrelid,
|
47
|
+
att.attname AS column_name,
|
48
|
+
MAX(
|
49
|
+
CASE
|
50
|
+
WHEN con.contype = 'p' THEN 'PRI'
|
51
|
+
WHEN con.contype = 'u' THEN 'UNI'
|
52
|
+
ELSE ''
|
53
|
+
END
|
54
|
+
) AS column_key
|
55
|
+
FROM pg_constraint con
|
56
|
+
JOIN unnest(con.conkey) AS colnum ON true
|
57
|
+
JOIN pg_attribute att ON att.attrelid = con.conrelid AND att.attnum = colnum
|
58
|
+
WHERE con.contype IN ('p','u')
|
59
|
+
GROUP BY con.conrelid, att.attname
|
60
|
+
) AS agg
|
61
|
+
ON agg.conrelid = c.oid AND agg.column_name = col.column_name
|
62
|
+
WHERE 1 = 1
|
63
|
+
-- t.table_type = 'BASE TABLE' -- Only regular tables, excluding views
|
64
|
+
AND (
|
65
|
+
(${schemas}::text[] IS NULL AND t.table_schema NOT IN ('information_schema', 'pg_catalog', 'pg_toast') AND t.table_schema NOT LIKE 'pg_temp%')
|
66
|
+
OR
|
67
|
+
(${schemas}::text[] IS NOT NULL AND t.table_schema = ANY(${schemas}))
|
68
|
+
)
|
69
69
|
ORDER BY
|
70
70
|
t.table_schema, t.table_name, col.ordinal_position`;
|
71
71
|
return result.map((row) => {
|
72
|
-
const result = Object.assign({
|
72
|
+
const result = Object.assign({ schema: row.table_schema, table: row.table_name, column_name: row.column_name, type: row.type, is_nullable: row.is_nullable === 'YES', column_key: row.column_key, autoincrement: row.autoincrement }, (row.column_default && { column_default: true }));
|
73
73
|
return result;
|
74
74
|
});
|
75
75
|
}), err => convertPostgresErrorToTypeSQLError(err))();
|
@@ -133,21 +133,6 @@ function _loadCheckConstraints(sql) {
|
|
133
133
|
return result;
|
134
134
|
});
|
135
135
|
}
|
136
|
-
function mapToColumnSchema(col) {
|
137
|
-
var _a;
|
138
|
-
const columnSchema = {
|
139
|
-
column: col.column_name,
|
140
|
-
column_type: col.type,
|
141
|
-
columnKey: col.column_key,
|
142
|
-
notNull: !col.is_nullable,
|
143
|
-
schema: col.table_schema,
|
144
|
-
table: col.table_name,
|
145
|
-
hidden: 0,
|
146
|
-
autoincrement: col.autoincrement,
|
147
|
-
defaultValue: (_a = col.column_default) === null || _a === void 0 ? void 0 : _a.toString()
|
148
|
-
};
|
149
|
-
return columnSchema;
|
150
|
-
}
|
151
136
|
const postgresDescribe = (sql, sqlQuery) => {
|
152
137
|
return neverthrow_1.ResultAsync.fromThrowable(() => __awaiter(void 0, void 0, void 0, function* () {
|
153
138
|
const describeResult = yield sql.unsafe(sqlQuery).describe();
|
@@ -207,10 +192,10 @@ function loadForeignKeys(sql) {
|
|
207
192
|
return result;
|
208
193
|
}), err => convertPostgresErrorToTypeSQLError(err))();
|
209
194
|
}
|
210
|
-
function loadUserFunctions(sql) {
|
211
|
-
return neverthrow_1.ResultAsync.fromThrowable(() => _loadUserFunctions(sql), err => convertPostgresErrorToTypeSQLError(err))();
|
195
|
+
function loadUserFunctions(sql, schemas = null) {
|
196
|
+
return neverthrow_1.ResultAsync.fromThrowable(() => _loadUserFunctions(sql, schemas), err => convertPostgresErrorToTypeSQLError(err))();
|
212
197
|
}
|
213
|
-
function _loadUserFunctions(sql) {
|
198
|
+
function _loadUserFunctions(sql, schemas) {
|
214
199
|
return sql `SELECT
|
215
200
|
n.nspname AS schema,
|
216
201
|
p.proname AS function_name,
|
@@ -222,7 +207,11 @@ function _loadUserFunctions(sql) {
|
|
222
207
|
FROM pg_proc p
|
223
208
|
JOIN pg_namespace n ON n.oid = p.pronamespace
|
224
209
|
JOIN pg_language l ON l.oid = p.prolang
|
225
|
-
WHERE
|
210
|
+
WHERE (
|
211
|
+
(${schemas}::text[] IS NULL AND n.nspname NOT IN ('information_schema', 'pg_catalog', 'pg_toast')) -- exclude system functions
|
212
|
+
OR
|
213
|
+
(${schemas}::text[] IS NOT NULL AND n.nspname = ANY(${schemas}::text[]))
|
214
|
+
)
|
226
215
|
AND p.prokind = 'f' -- 'f' = function, 'p' = procedure, 'a' = aggregate
|
227
216
|
-- and l.lanname = 'sql'
|
228
217
|
ORDER BY n.nspname, p.proname`;
|
package/drivers/postgres.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../src/drivers/postgres.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAUA,oCA4DC;AAID,oCAKC;AAQD,8BAEC;AAeD,oDAYC;AA6DD,oDAMC;AAED,0CA8BC;AAED,8CAKC;AA9ND,wDAAwD;AAGxD,2CAAqD;AAErD,kCAAkC;AAClC,wEAA8E;AAI9E,SAAgB,YAAY,CAAC,GAAQ,EAAE,UAA2B,IAAI;IACrE,OAAO,wBAAW,CAAC,aAAa,CAC/B,GAAS,EAAE;QACV,MAAM,MAAM,GAAG,MAAM,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAoClB,OAAO;;SAEP,OAAO,iDAAiD,OAAO;;;uDAGjB,CAAC;QAErD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC9B,MAAM,MAAM,mBACX,MAAM,EAAE,GAAG,CAAC,YAAY,EACxB,KAAK,EAAE,GAAG,CAAC,UAAU,EACrB,WAAW,EAAE,GAAG,CAAC,WAAW,EAC5B,IAAI,EAAE,GAAG,CAAC,IAAI,EACd,WAAW,EAAE,GAAG,CAAC,WAAW,KAAK,KAAK,EACtC,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,aAAa,EAAE,GAAG,CAAC,aAAa,IAC7B,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CACnD,CAAC;YACF,OAAO,MAAM,CAAC;QACf,CAAC,CAAC,CAAC;IACJ,CAAC,CAAA,EAAE,GAAG,CAAC,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAID,SAAgB,YAAY,CAAC,GAAQ;IACpC,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACtC,MAAM,OAAO,GAAG,IAAA,cAAO,EAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,OAAO,CAAC;IAChB,CAAC,CAAC,CAAC;AACJ,CAAC;AAQD,SAAgB,SAAS,CAAC,GAAQ;IACjC,OAAO,wBAAW,CAAC,aAAa,CAAC,GAAS,EAAE,gDAAC,OAAA,UAAU,CAAC,GAAG,CAAC,CAAA,GAAA,EAAE,GAAG,CAAC,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;AAChH,CAAC;AAED,SAAe,UAAU,CAAC,GAAQ;;QACjC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAc;;;;;;;0BAOb,CAAC;QAC1B,OAAO,MAAM,CAAC;IACf,CAAC;CAAA;AAGD,SAAgB,oBAAoB,CAAC,GAAQ;IAC5C,OAAO,CAAC,wBAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACvI,MAAM,qBAAqB,GAA0B,EAAE,CAAA;QACvD,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,WAAW,KAAK,UAAU,CAAC,UAAU,KAAK,UAAU,CAAC,WAAW,GAAG,CAAC;YAC/F,MAAM,KAAK,GAAG,IAAA,kCAAoB,EAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YACrE,IAAI,KAAK,EAAE,CAAC;gBACX,qBAAqB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpC,CAAC;QACF,CAAC;QACD,OAAO,qBAAqB,CAAC;IAC9B,CAAC,CAAC,CAAC;AACJ,CAAC;AASD,SAAe,qBAAqB,CAAC,GAAQ;;QAC5C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAuB;;;;;;;;;;;;;;;;;;mBAkB7B,CAAC;QACnB,OAAO,MAAM,CAAC;IACf,CAAC;CAAA;AAEM,MAAM,gBAAgB,GAAG,CAAC,GAAQ,EAAE,QAAgB,EAA+C,EAAE;IAC3G,OAAO,wBAAW,CAAC,aAAa,CAC/B,GAAS,EAAE;QACV,MAAM,cAAc,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC7D,MAAM,OAAO,GAA0B,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC3E,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE,GAAG,CAAC,KAAK;YAClB,MAAM,EAAE,GAAG,CAAC,IAAI;SAChB,CAAC,CAAC,CAAC;QACJ,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC;QACxC,MAAM,MAAM,GAAqB;YAChC,OAAO;YACP,UAAU;SACV,CAAC;QACF,OAAO,MAAM,CAAC;IACf,CAAC,CAAA,EACD,GAAG,CAAC,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAC9C,EAAE,CAAC;AACL,CAAC,CAAA;AAlBY,QAAA,gBAAgB,oBAkB5B;AAED,SAAS,kCAAkC,CAAC,GAAQ;IACnD,MAAM,KAAK,GAAG,GAAoB,CAAC;IACnC,MAAM,YAAY,GAAiB;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,WAAW,EAAE,KAAK,CAAC,OAAO;KAC1B,CAAA;IACD,OAAO,YAAY,CAAC;AACrB,CAAC;AAED,SAAgB,oBAAoB,CAAC,WAAmB;IACvD,MAAM,EAAE,GAAG,IAAA,kBAAQ,EAAC,WAAW,CAAC,CAAC;IACjC,OAAO,IAAA,eAAE,EAAC;QACT,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,EAAE;KACV,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,GAAQ;IACvC,OAAO,wBAAW,CAAC,aAAa,CAC/B,GAAS,EAAE;QACV,MAAM,MAAM,GAAG,MAAM,GAAG,CAAkB;;;;;;;;;;;;;;;;;;;;;oBAqBzB,CAAC;QAElB,OAAO,MAAM,CAAC;IACf,CAAC,CAAA,EACD,GAAG,CAAC,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAC9C,EAAE,CAAC;AACL,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAQ,EAAE,UAA2B,IAAI;IAC1E,OAAO,wBAAW,CAAC,aAAa,CAAC,GAAG,EAAE,CACrC,kBAAkB,CAAC,GAAG,EAAE,OAAO,CAAC,EAChC,GAAG,CAAC,EAAE,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAC9C,EAAE,CAAC;AACL,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAQ,EAAE,OAAwB;IAC7D,OAAO,GAAG,CAAsB;;;;;;;;;;;;MAY3B,OAAO;;MAEP,OAAO,4CAA4C,OAAO;;;;gCAIhC,CAAC;AACjC,CAAC"}
|
package/drivers/types.d.ts
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
import { TaskEither } from 'fp-ts/lib/TaskEither';
|
2
|
-
import { CheckConstraintResult, EnumMap } from './postgres';
|
3
2
|
import { PostgresSimpleType } from '../sqlite-query-analyzer/types';
|
4
|
-
import {
|
3
|
+
import { PostgresSchemaInfo } from '../schema-info';
|
5
4
|
export type PostgresColumnSchema = {
|
6
|
-
|
7
|
-
|
5
|
+
schema: string;
|
6
|
+
table: string;
|
8
7
|
column_name: string;
|
9
8
|
type: PostgresSimpleType;
|
10
9
|
is_nullable: boolean;
|
@@ -20,10 +19,7 @@ export type DescribeQueryColumn = {
|
|
20
19
|
export type DescribeParameters = {
|
21
20
|
sql: string;
|
22
21
|
postgresDescribeResult: PostgresDescribe;
|
23
|
-
|
24
|
-
enumsTypes: EnumMap;
|
25
|
-
checkConstraints: CheckConstraintResult;
|
26
|
-
userFunctions: UserFunctionSchema[];
|
22
|
+
schemaInfo: PostgresSchemaInfo;
|
27
23
|
namedParameters: string[];
|
28
24
|
};
|
29
25
|
export type PostgresDescribe = {
|
package/drivers/types.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/drivers/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,MAAM,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAEf,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,sBAAsB,EAAE,gBAAgB,CAAC;IACzC,UAAU,EAAE,kBAAkB,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAC/B,CAAA;AACD,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG;IACpD,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,MAAM,CAAC,UAAU,IAAI;IAChC,YAAY,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;CAC/E,CAAA"}
|
package/load-config.d.ts
CHANGED
@@ -1,4 +1,10 @@
|
|
1
1
|
import { TypeSqlConfig } from './types';
|
2
2
|
export declare function loadConfig(configPath: string): TypeSqlConfig;
|
3
3
|
export declare function resolveConfig(configPath: string, config: TypeSqlConfig): TypeSqlConfig;
|
4
|
+
export declare function resolveEnvVars(config: TypeSqlConfig): TypeSqlConfig;
|
5
|
+
export declare function resolveTsFilePath(sqlPath: string, sqlDir: string, outDir?: string): string;
|
6
|
+
type ExportMap = Map<string, string[]>;
|
7
|
+
export declare function buildExportMap(rootDir: string): ExportMap;
|
8
|
+
export declare function buildExportList(dir: string): string[];
|
9
|
+
export {};
|
4
10
|
//# sourceMappingURL=load-config.d.ts.map
|
package/load-config.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/load-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,
|
1
|
+
{"version":3,"file":"load-config.d.ts","sourceRoot":"","sources":["../../src/load-config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAK5D;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,aAAa,CAYtF;AAGD,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAWnE;AAkBD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,UAQjF;AAED,KAAK,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AACvC,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAwBzD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQrD"}
|
package/load-config.js
CHANGED
@@ -5,12 +5,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.loadConfig = loadConfig;
|
7
7
|
exports.resolveConfig = resolveConfig;
|
8
|
+
exports.resolveEnvVars = resolveEnvVars;
|
9
|
+
exports.resolveTsFilePath = resolveTsFilePath;
|
10
|
+
exports.buildExportMap = buildExportMap;
|
11
|
+
exports.buildExportList = buildExportList;
|
8
12
|
const node_path_1 = __importDefault(require("node:path"));
|
9
13
|
const node_fs_1 = __importDefault(require("node:fs"));
|
10
14
|
function loadConfig(configPath) {
|
11
15
|
const rawdata = node_fs_1.default.readFileSync(configPath, 'utf-8');
|
12
16
|
const config = JSON.parse(rawdata);
|
13
|
-
|
17
|
+
const substitutedConfig = resolveEnvVars(config);
|
18
|
+
return resolveConfig(configPath, substitutedConfig);
|
14
19
|
}
|
15
20
|
function resolveConfig(configPath, config) {
|
16
21
|
const configDir = node_path_1.default.dirname(node_path_1.default.resolve(configPath));
|
@@ -19,7 +24,66 @@ function resolveConfig(configPath, config) {
|
|
19
24
|
: config.databaseUri;
|
20
25
|
return Object.assign(Object.assign({}, config), { databaseUri: resolvedDatabaseUri, sqlDir: node_path_1.default.resolve(configDir, config.sqlDir) });
|
21
26
|
}
|
27
|
+
// Replaces ${ENV_VAR} with values from process.env
|
28
|
+
function resolveEnvVars(config) {
|
29
|
+
const newConfig = Object.assign(Object.assign({}, config), { databaseUri: resolveEnvVar(config.databaseUri) });
|
30
|
+
if (config.authToken != null) {
|
31
|
+
newConfig.authToken = resolveEnvVar(config.authToken);
|
32
|
+
}
|
33
|
+
return newConfig;
|
34
|
+
}
|
35
|
+
function resolveEnvVar(rawValue) {
|
36
|
+
return rawValue.replace(/\$\{([\w\d_]+)\}/g, (_, varName) => {
|
37
|
+
const envVal = process.env[varName];
|
38
|
+
if (envVal === undefined) {
|
39
|
+
console.warn(`Warning: Environment variable ${varName} is not defined.`);
|
40
|
+
}
|
41
|
+
return envVal !== null && envVal !== void 0 ? envVal : '';
|
42
|
+
});
|
43
|
+
}
|
22
44
|
function isRelativeFilePath(uri) {
|
23
45
|
return typeof uri === 'string' && !uri.includes('://') && !node_path_1.default.isAbsolute(uri);
|
24
46
|
}
|
47
|
+
function resolveTsFilePath(sqlPath, sqlDir, outDir) {
|
48
|
+
const outputBase = outDir || sqlDir;
|
49
|
+
const relativeDir = node_path_1.default.relative(sqlDir, node_path_1.default.dirname(sqlPath));
|
50
|
+
const fileNameWithoutExt = node_path_1.default.basename(sqlPath, '.sql');
|
51
|
+
const tsFileName = `${fileNameWithoutExt}.ts`;
|
52
|
+
const tsFilePath = node_path_1.default.join(outputBase, relativeDir, tsFileName);
|
53
|
+
return tsFilePath;
|
54
|
+
}
|
55
|
+
function buildExportMap(rootDir) {
|
56
|
+
const exportMap = new Map();
|
57
|
+
function walk(dir) {
|
58
|
+
const entries = node_fs_1.default.readdirSync(dir, { withFileTypes: true });
|
59
|
+
const tsFiles = [];
|
60
|
+
for (const entry of entries) {
|
61
|
+
const fullPath = node_path_1.default.join(dir, entry.name);
|
62
|
+
if (entry.isDirectory()) {
|
63
|
+
walk(fullPath);
|
64
|
+
}
|
65
|
+
else if (isExportableTsFile(entry)) {
|
66
|
+
tsFiles.push(entry.name);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
if (tsFiles.length > 0) {
|
70
|
+
exportMap.set(dir, tsFiles);
|
71
|
+
}
|
72
|
+
}
|
73
|
+
walk(rootDir);
|
74
|
+
return exportMap;
|
75
|
+
}
|
76
|
+
function buildExportList(dir) {
|
77
|
+
const entries = node_fs_1.default.readdirSync(dir, { withFileTypes: true });
|
78
|
+
const exports = entries
|
79
|
+
.filter(isExportableTsFile)
|
80
|
+
.map((entry) => entry.name);
|
81
|
+
return exports;
|
82
|
+
}
|
83
|
+
function isExportableTsFile(entry) {
|
84
|
+
return entry.isFile() &&
|
85
|
+
entry.name.endsWith('.ts') &&
|
86
|
+
entry.name !== 'index.ts' &&
|
87
|
+
!entry.name.endsWith('.d.ts');
|
88
|
+
}
|
25
89
|
//# sourceMappingURL=load-config.js.map
|
package/load-config.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../src/load-config.ts"],"names":[],"mappings":";;;;;AAIA,
|
1
|
+
{"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../src/load-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "typesql-cli",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.20.0",
|
4
4
|
"description": "",
|
5
5
|
"main": "index.js",
|
6
6
|
"bin": {
|
@@ -44,6 +44,7 @@
|
|
44
44
|
"camelcase": "^8.0.0",
|
45
45
|
"chokidar": "^3.6.0",
|
46
46
|
"code-block-writer": "^13.0.3",
|
47
|
+
"dotenv": "^17.2.1",
|
47
48
|
"fp-ts": "^2.16.10",
|
48
49
|
"glob": "^11.0.3",
|
49
50
|
"libsql": "^0.4.7",
|
@@ -2,5 +2,6 @@ import { TypeSqlError } from '../types';
|
|
2
2
|
import { Sql } from 'postgres';
|
3
3
|
import { ResultAsync } from 'neverthrow';
|
4
4
|
import { PostgresSchemaDef } from './types';
|
5
|
-
|
5
|
+
import { PostgresSchemaInfo } from '../schema-info';
|
6
|
+
export declare function describeQuery(postgres: Sql, sql: string, namedParameters: string[], schemaInfo: PostgresSchemaInfo): ResultAsync<PostgresSchemaDef, TypeSqlError>;
|
6
7
|
//# sourceMappingURL=describe.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAc,WAAW,EAAO,MAAM,YAAY,CAAC;AAO1D,OAAO,EAA4C,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
1
|
+
{"version":3,"file":"describe.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAG/B,OAAO,EAAc,WAAW,EAAO,MAAM,YAAY,CAAC;AAO1D,OAAO,EAA4C,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA0GpD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,kBAAkB,GAAG,WAAW,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAWjK"}
|
@@ -11,7 +11,8 @@ const Either_1 = require("fp-ts/lib/Either");
|
|
11
11
|
const describe_query_1 = require("../describe-query");
|
12
12
|
const describe_dynamic_query_1 = require("../describe-dynamic-query");
|
13
13
|
function describeQueryRefine(describeParameters) {
|
14
|
-
const { sql,
|
14
|
+
const { sql, postgresDescribeResult, namedParameters, schemaInfo } = describeParameters;
|
15
|
+
const { columns: dbSchema, enumTypes, userFunctions, checkConstraints } = schemaInfo;
|
15
16
|
const generateNestedInfo = (0, describe_query_1.hasAnnotation)(sql, '@nested');
|
16
17
|
const generateDynamicQueryInfo = (0, describe_query_1.hasAnnotation)(sql, '@dynamicQuery');
|
17
18
|
const parseResult = (0, parser_1.safeParseSql)(sql, dbSchema, checkConstraints, userFunctions, { collectNestedInfo: generateNestedInfo, collectDynamicQueryInfo: generateDynamicQueryInfo });
|
@@ -29,13 +30,13 @@ function describeQueryRefine(describeParameters) {
|
|
29
30
|
sql: newSql,
|
30
31
|
queryType: traverseResult.queryType,
|
31
32
|
multipleRowsResult: traverseResult.multipleRowsResult,
|
32
|
-
columns: getColumnsForQuery(traverseResult, postgresDescribeResult,
|
33
|
+
columns: getColumnsForQuery(traverseResult, postgresDescribeResult, enumTypes, checkConstraints),
|
33
34
|
parameters: traverseResult.queryType === 'Update'
|
34
|
-
? getParamtersForWhere(traverseResult, postgresDescribeResult,
|
35
|
-
: getParamtersForQuery(traverseResult, postgresDescribeResult,
|
35
|
+
? getParamtersForWhere(traverseResult, postgresDescribeResult, enumTypes, paramNames)
|
36
|
+
: getParamtersForQuery(traverseResult, postgresDescribeResult, enumTypes, paramNames)
|
36
37
|
};
|
37
38
|
if (traverseResult.queryType === 'Update') {
|
38
|
-
descResult.data = getDataForQuery(traverseResult, postgresDescribeResult,
|
39
|
+
descResult.data = getDataForQuery(traverseResult, postgresDescribeResult, enumTypes, paramNames);
|
39
40
|
}
|
40
41
|
if (traverseResult.returning) {
|
41
42
|
descResult.returning = traverseResult.returning;
|
@@ -70,12 +71,12 @@ function createIndexToNameMap(names) {
|
|
70
71
|
return indexToName;
|
71
72
|
}
|
72
73
|
function mapToColumnInfo(col, posgresTypes, enumTypes, checkConstraints, colInfo) {
|
73
|
-
const constraintKey = `[${colInfo.
|
74
|
+
const constraintKey = `[${colInfo.schema}][${colInfo.table}][${colInfo.column_name}]`;
|
74
75
|
return {
|
75
76
|
name: col.name,
|
76
77
|
notNull: !colInfo.is_nullable,
|
77
78
|
type: createType(col.typeId, posgresTypes, enumTypes.get(col.typeId), checkConstraints[constraintKey], colInfo.jsonType),
|
78
|
-
table: colInfo.
|
79
|
+
table: colInfo.table
|
79
80
|
};
|
80
81
|
}
|
81
82
|
function createType(typeId, postgresTypes, enumType, checkConstraint, jsonType) {
|
@@ -103,22 +104,16 @@ function mapToParamDef(postgresTypes, enumTypes, paramName, paramType, checkCons
|
|
103
104
|
type: `${createType(paramType, postgresTypes, enumTypes.get(paramType), checkConstraint, undefined)}${arrayType}`
|
104
105
|
};
|
105
106
|
}
|
106
|
-
function describeQuery(postgres, sql, namedParameters) {
|
107
|
-
return
|
108
|
-
.andThen(
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
checkConstraints,
|
117
|
-
userFunctions,
|
118
|
-
namedParameters
|
119
|
-
};
|
120
|
-
return describeQueryRefine(describeParameters);
|
121
|
-
});
|
107
|
+
function describeQuery(postgres, sql, namedParameters, schemaInfo) {
|
108
|
+
return (0, postgres_1.postgresDescribe)(postgres, sql)
|
109
|
+
.andThen(analyzeResult => {
|
110
|
+
const describeParameters = {
|
111
|
+
sql,
|
112
|
+
postgresDescribeResult: analyzeResult,
|
113
|
+
namedParameters,
|
114
|
+
schemaInfo
|
115
|
+
};
|
116
|
+
return describeQueryRefine(describeParameters);
|
122
117
|
});
|
123
118
|
}
|
124
119
|
function getColumnsForQuery(traverseResult, postgresDescribeResult, enumTypes, checkConstraints) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"describe.js","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/describe.ts"],"names":[],"mappings":"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"}
|
@@ -7,8 +7,8 @@ import { CheckConstraintResult } from '../drivers/postgres';
|
|
7
7
|
import { JsonType, PostgresEnumType, PostgresSimpleType } from '../sqlite-query-analyzer/types';
|
8
8
|
import { UserFunctionSchema } from './types';
|
9
9
|
export type NotNullInfo = {
|
10
|
-
|
11
|
-
|
10
|
+
schema: string;
|
11
|
+
table: string;
|
12
12
|
column_name: string;
|
13
13
|
is_nullable: boolean;
|
14
14
|
original_is_nullable?: boolean;
|
@@ -57,6 +57,10 @@ export type SetofReturnType = {
|
|
57
57
|
kind: 'setof';
|
58
58
|
table: string;
|
59
59
|
};
|
60
|
-
export type
|
60
|
+
export type TableNameReturnType = {
|
61
|
+
kind: 'table_name';
|
62
|
+
table: string;
|
63
|
+
};
|
64
|
+
export type FunctionReturnType = TableReturnType | SetofReturnType | TableNameReturnType;
|
61
65
|
export declare function parseReturnType(returnType: string): FunctionReturnType;
|
62
66
|
//# sourceMappingURL=traverse.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyzC,WAAW,EAA4L,MAAM,mDAAmD,CAAC;AAEjkD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAa,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,uDAAuD,CAAC;AAClF,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAA8D,QAAQ,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAE5J,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,MAAM,WAAW,GAAG;IACzB,
|
1
|
+
{"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../src/postgres-query-analyzer/traverse.ts"],"names":[],"mappings":"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"}
|