@dbml/connector 3.13.0 → 3.13.2
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/.babelrc +0 -0
- package/.eslintrc.json +0 -0
- package/LICENSE +0 -0
- package/README.md +0 -0
- package/__tests__/connector.test.ts +0 -0
- package/__tests__/connectors/bigquery/out-files/schema.json +565 -0
- package/__tests__/connectors/mssql/connection.json +0 -0
- package/__tests__/connectors/mssql/expect-out-files/schema.json +36 -1
- package/__tests__/connectors/mssql/out-files/schema.json +2040 -0
- package/__tests__/connectors/mysql/connection.json +0 -0
- package/__tests__/connectors/mysql/expect-out-files/schema.json +0 -0
- package/__tests__/connectors/mysql/out-files/schema.json +1390 -0
- package/__tests__/connectors/postgres/connection.json +0 -0
- package/__tests__/connectors/postgres/expect-out-files/schema.json +0 -0
- package/__tests__/connectors/postgres/out-files/schema.json +1774 -0
- package/dist/connectors/bigqueryConnector.d.ts +0 -0
- package/dist/connectors/bigqueryConnector.js +0 -0
- package/dist/connectors/connector.d.ts +0 -0
- package/dist/connectors/connector.js +0 -0
- package/dist/connectors/mssqlConnector.d.ts +1 -1
- package/dist/connectors/mssqlConnector.js +10 -10
- package/dist/connectors/mysqlConnector.d.ts +0 -0
- package/dist/connectors/mysqlConnector.js +0 -0
- package/dist/connectors/postgresConnector.d.ts +0 -0
- package/dist/connectors/postgresConnector.js +0 -0
- package/dist/connectors/snowflakeConnector.d.ts +0 -0
- package/dist/connectors/snowflakeConnector.js +0 -0
- package/dist/connectors/types.d.ts +0 -0
- package/dist/connectors/types.js +0 -0
- package/dist/index.d.ts +0 -0
- package/dist/index.js +0 -0
- package/dist/utils/credential-loader.d.ts +0 -0
- package/dist/utils/credential-loader.js +0 -0
- package/dist/utils/helpers.d.ts +0 -0
- package/dist/utils/helpers.js +0 -0
- package/dist/utils/parseSchema.d.ts +0 -0
- package/dist/utils/parseSchema.js +0 -0
- package/jest.config.ts +0 -0
- package/jestHelpers.ts +0 -0
- package/package.json +2 -2
- package/src/connectors/bigqueryConnector.ts +0 -0
- package/src/connectors/connector.ts +0 -0
- package/src/connectors/mssqlConnector.ts +12 -13
- package/src/connectors/mysqlConnector.ts +0 -0
- package/src/connectors/postgresConnector.ts +0 -0
- package/src/connectors/snowflakeConnector.ts +0 -0
- package/src/connectors/types.ts +0 -0
- package/src/ddl_samples/bigquery.sql +0 -0
- package/src/ddl_samples/snowflake.sql +0 -0
- package/src/index.ts +0 -0
- package/src/utils/credential-loader.ts +0 -0
- package/src/utils/helpers.ts +0 -0
- package/src/utils/parseSchema.ts +0 -0
- package/tsconfig.json +0 -0
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -131,15 +131,15 @@ const getEnumValues = (definition, constraint_name) => {
|
|
|
131
131
|
Object.keys(colMap).forEach((key) => {
|
|
132
132
|
if (processedKeys.has(key))
|
|
133
133
|
return;
|
|
134
|
-
|
|
135
|
-
const
|
|
134
|
+
const mergedColumns = [key];
|
|
135
|
+
const colValues = colMap[key];
|
|
136
136
|
Object.keys(colMap).forEach((innerKey) => {
|
|
137
|
-
if (key !== innerKey && arraysEqual(
|
|
137
|
+
if (key !== innerKey && arraysEqual(colValues, colMap[innerKey])) {
|
|
138
138
|
mergedColumns.push(innerKey);
|
|
139
139
|
processedKeys.add(innerKey);
|
|
140
140
|
}
|
|
141
141
|
});
|
|
142
|
-
const enumValues =
|
|
142
|
+
const enumValues = colValues.map((value) => ({ name: value }));
|
|
143
143
|
result.push({ columns: mergedColumns, enumValues, constraint_name: `${constraint_name}_${mergedColumns.join('_')}` });
|
|
144
144
|
processedKeys.add(key);
|
|
145
145
|
});
|
|
@@ -196,11 +196,11 @@ const generateTablesFieldsAndEnums = async (client, schemas) => {
|
|
|
196
196
|
JOIN sys.columns c ON t.object_id = c.object_id
|
|
197
197
|
JOIN sys.types ty ON c.user_type_id = ty.user_type_id
|
|
198
198
|
LEFT JOIN sys.extended_properties p ON p.major_id = t.object_id
|
|
199
|
-
AND p.name
|
|
199
|
+
AND p.name like '%description%'
|
|
200
200
|
AND p.minor_id = 0 -- Ensure minor_id is 0 for table comments
|
|
201
201
|
LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id
|
|
202
202
|
AND ep.minor_id = c.column_id
|
|
203
|
-
AND ep.name
|
|
203
|
+
AND ep.name like '%description%'
|
|
204
204
|
WHERE
|
|
205
205
|
t.type = 'U' -- User-defined tables
|
|
206
206
|
),
|
|
@@ -347,10 +347,10 @@ const generateRefs = async (client, schemas) => {
|
|
|
347
347
|
const endpointsEqual = (ep1, ep2) => {
|
|
348
348
|
if (ep1.length !== ep2.length)
|
|
349
349
|
return false;
|
|
350
|
-
return ep1.every((endpoint, index) => endpoint.tableName === ep2[index].tableName
|
|
351
|
-
endpoint.schemaName === ep2[index].schemaName
|
|
352
|
-
endpoint.fieldNames.length === ep2[index].fieldNames.length
|
|
353
|
-
endpoint.fieldNames.every((field, fieldIndex) => field === ep2[index].fieldNames[fieldIndex]));
|
|
350
|
+
return ep1.every((endpoint, index) => endpoint.tableName === ep2[index].tableName
|
|
351
|
+
&& endpoint.schemaName === ep2[index].schemaName
|
|
352
|
+
&& endpoint.fieldNames.length === ep2[index].fieldNames.length
|
|
353
|
+
&& endpoint.fieldNames.every((field, fieldIndex) => field === ep2[index].fieldNames[fieldIndex]));
|
|
354
354
|
};
|
|
355
355
|
refsQueryResult.recordset.forEach((refRow) => {
|
|
356
356
|
const { table_schema, fk_constraint_name, table_name, column_names, foreign_table_schema, foreign_table_name, foreign_column_names, on_delete, on_update, } = refRow;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/connectors/types.js
CHANGED
|
File without changes
|
package/dist/index.d.ts
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/utils/helpers.d.ts
CHANGED
|
File without changes
|
package/dist/utils/helpers.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/jest.config.ts
CHANGED
|
File without changes
|
package/jestHelpers.ts
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dbml/connector",
|
|
3
|
-
"version": "3.13.
|
|
3
|
+
"version": "3.13.2",
|
|
4
4
|
"description": "This package was created to fetch the schema JSON from many kind of databases.",
|
|
5
5
|
"author": "huy.phung.sw@gmail.com",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"engines": {
|
|
45
45
|
"node": ">=18"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "f9be31a9b9b3b509183637dc2527f1be8c260add"
|
|
48
48
|
}
|
|
File without changes
|
|
File without changes
|
|
@@ -6,7 +6,6 @@ import {
|
|
|
6
6
|
DefaultInfo,
|
|
7
7
|
DefaultType,
|
|
8
8
|
Enum,
|
|
9
|
-
EnumValue,
|
|
10
9
|
Field,
|
|
11
10
|
FieldsDictionary,
|
|
12
11
|
IndexesDictionary,
|
|
@@ -155,16 +154,16 @@ const getEnumValues = (definition: string, constraint_name: string): EnumValuesD
|
|
|
155
154
|
Object.keys(colMap).forEach((key) => {
|
|
156
155
|
if (processedKeys.has(key)) return;
|
|
157
156
|
|
|
158
|
-
|
|
159
|
-
const
|
|
157
|
+
const mergedColumns = [key];
|
|
158
|
+
const colValues = colMap[key];
|
|
160
159
|
|
|
161
160
|
Object.keys(colMap).forEach((innerKey) => {
|
|
162
|
-
if (key !== innerKey && arraysEqual(
|
|
161
|
+
if (key !== innerKey && arraysEqual(colValues, colMap[innerKey])) {
|
|
163
162
|
mergedColumns.push(innerKey);
|
|
164
163
|
processedKeys.add(innerKey);
|
|
165
164
|
}
|
|
166
165
|
});
|
|
167
|
-
const enumValues =
|
|
166
|
+
const enumValues = colValues.map((value) => ({ name: value }));
|
|
168
167
|
result.push({ columns: mergedColumns, enumValues, constraint_name: `${constraint_name}_${mergedColumns.join('_')}` });
|
|
169
168
|
processedKeys.add(key);
|
|
170
169
|
});
|
|
@@ -243,11 +242,11 @@ const generateTablesFieldsAndEnums = async (client: sql.ConnectionPool, schemas:
|
|
|
243
242
|
JOIN sys.columns c ON t.object_id = c.object_id
|
|
244
243
|
JOIN sys.types ty ON c.user_type_id = ty.user_type_id
|
|
245
244
|
LEFT JOIN sys.extended_properties p ON p.major_id = t.object_id
|
|
246
|
-
AND p.name
|
|
245
|
+
AND p.name like '%description%'
|
|
247
246
|
AND p.minor_id = 0 -- Ensure minor_id is 0 for table comments
|
|
248
247
|
LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id
|
|
249
248
|
AND ep.minor_id = c.column_id
|
|
250
|
-
AND ep.name
|
|
249
|
+
AND ep.name like '%description%'
|
|
251
250
|
WHERE
|
|
252
251
|
t.type = 'U' -- User-defined tables
|
|
253
252
|
),
|
|
@@ -410,11 +409,11 @@ const generateRefs = async (client: sql.ConnectionPool, schemas: string[]): Prom
|
|
|
410
409
|
|
|
411
410
|
const endpointsEqual = (ep1: RefEndpoint[], ep2: RefEndpoint[]): boolean => {
|
|
412
411
|
if (ep1.length !== ep2.length) return false;
|
|
413
|
-
return ep1.every(
|
|
414
|
-
endpoint.tableName === ep2[index].tableName
|
|
415
|
-
endpoint.schemaName === ep2[index].schemaName
|
|
416
|
-
endpoint.fieldNames.length === ep2[index].fieldNames.length
|
|
417
|
-
endpoint.fieldNames.every((field, fieldIndex) => field === ep2[index].fieldNames[fieldIndex])
|
|
412
|
+
return ep1.every(
|
|
413
|
+
(endpoint, index) => endpoint.tableName === ep2[index].tableName
|
|
414
|
+
&& endpoint.schemaName === ep2[index].schemaName
|
|
415
|
+
&& endpoint.fieldNames.length === ep2[index].fieldNames.length
|
|
416
|
+
&& endpoint.fieldNames.every((field, fieldIndex) => field === ep2[index].fieldNames[fieldIndex]),
|
|
418
417
|
);
|
|
419
418
|
};
|
|
420
419
|
|
|
@@ -651,5 +650,5 @@ const fetchSchemaJson = async (connection: string): Promise<DatabaseSchema> => {
|
|
|
651
650
|
};
|
|
652
651
|
|
|
653
652
|
export {
|
|
654
|
-
fetchSchemaJson
|
|
653
|
+
fetchSchemaJson,
|
|
655
654
|
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/connectors/types.ts
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/index.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/src/utils/helpers.ts
CHANGED
|
File without changes
|
package/src/utils/parseSchema.ts
CHANGED
|
File without changes
|
package/tsconfig.json
CHANGED
|
File without changes
|