@dbml/core 2.5.2 → 2.5.4
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 +1 -1
- package/lib/export/DbmlExporter.js +9 -64
- package/lib/export/JsonExporter.js +5 -11
- package/lib/export/ModelExporter.js +5 -22
- package/lib/export/MysqlExporter.js +8 -70
- package/lib/export/PostgresExporter.js +11 -80
- package/lib/export/SqlServerExporter.js +10 -71
- package/lib/export/index.js +0 -6
- package/lib/export/utils.js +2 -12
- package/lib/import/index.js +0 -7
- package/lib/index.js +4 -9
- package/lib/model_structure/config.js +1 -1
- package/lib/model_structure/database.js +32 -83
- package/lib/model_structure/dbState.js +5 -10
- package/lib/model_structure/element.js +13 -38
- package/lib/model_structure/endpoint.js +22 -68
- package/lib/model_structure/enum.js +18 -49
- package/lib/model_structure/enumValue.js +17 -44
- package/lib/model_structure/field.js +26 -62
- package/lib/model_structure/indexColumn.js +15 -40
- package/lib/model_structure/indexes.js +22 -50
- package/lib/model_structure/ref.js +24 -56
- package/lib/model_structure/schema.js +27 -65
- package/lib/model_structure/table.js +24 -59
- package/lib/model_structure/tableGroup.js +18 -49
- package/lib/model_structure/utils.js +0 -3
- package/lib/parse/Parser.js +5 -27
- package/lib/parse/buildParser.js +11 -23
- package/lib/parse/dbmlParser.js +863 -2131
- package/lib/parse/mssql/base_parsers.js +2 -11
- package/lib/parse/mssql/column_definition/actions.js +0 -3
- package/lib/parse/mssql/column_definition/index.js +9 -17
- package/lib/parse/mssql/constraint_definition/actions.js +6 -12
- package/lib/parse/mssql/constraint_definition/index.js +13 -21
- package/lib/parse/mssql/expression.js +6 -16
- package/lib/parse/mssql/fk_definition/actions.js +1 -12
- package/lib/parse/mssql/fk_definition/index.js +5 -10
- package/lib/parse/mssql/index.js +2 -4
- package/lib/parse/mssql/index_definition/actions.js +0 -6
- package/lib/parse/mssql/index_definition/index.js +8 -13
- package/lib/parse/mssql/keyword_parsers.js +2 -3
- package/lib/parse/mssql/keyword_utils.js +0 -4
- package/lib/parse/mssql/statements/actions.js +0 -24
- package/lib/parse/mssql/statements/index.js +1 -7
- package/lib/parse/mssql/statements/statement_types/alter_table/actions.js +3 -10
- package/lib/parse/mssql/statements/statement_types/alter_table/add/actions.js +2 -6
- package/lib/parse/mssql/statements/statement_types/alter_table/add/index.js +9 -18
- package/lib/parse/mssql/statements/statement_types/alter_table/index.js +2 -7
- package/lib/parse/mssql/statements/statement_types/comments/actions.js +3 -11
- package/lib/parse/mssql/statements/statement_types/comments/index.js +3 -13
- package/lib/parse/mssql/statements/statement_types/create_index/actions.js +1 -3
- package/lib/parse/mssql/statements/statement_types/create_index/index.js +9 -15
- package/lib/parse/mssql/statements/statement_types/create_table/actions.js +7 -18
- package/lib/parse/mssql/statements/statement_types/create_table/index.js +8 -16
- package/lib/parse/mssql/statements/statement_types/index.js +0 -4
- package/lib/parse/mssql/utils.js +4 -14
- package/lib/parse/mssql/whitespaces.js +0 -1
- package/lib/parse/mssqlParser.js +0 -3
- package/lib/parse/mysqlParser.js +822 -2395
- package/lib/parse/postgresParser.js +3 -3
- package/lib/parse/postgresql/get_parser.js +6 -9
- package/lib/parse/schemarbParser.js +219 -714
- package/package.json +11 -12
- package/types/.DS_Store +0 -0
|
@@ -4,36 +4,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
9
|
-
|
|
10
8
|
var _utils = require("./utils");
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
10
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
14
11
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
15
|
-
|
|
16
12
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
17
|
-
|
|
18
13
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
-
|
|
20
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
21
|
-
|
|
14
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
22
15
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
23
|
-
|
|
24
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
25
|
-
|
|
16
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
26
17
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
27
|
-
|
|
28
|
-
function
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
18
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
19
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
20
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
21
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
32
22
|
var SqlServerExporter = /*#__PURE__*/function () {
|
|
33
23
|
function SqlServerExporter() {
|
|
34
24
|
_classCallCheck(this, SqlServerExporter);
|
|
35
25
|
}
|
|
36
|
-
|
|
37
26
|
_createClass(SqlServerExporter, null, [{
|
|
38
27
|
key: "getFieldLines",
|
|
39
28
|
value: function getFieldLines(tableId, model) {
|
|
@@ -41,37 +30,29 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
41
30
|
var lines = table.fieldIds.map(function (fieldId) {
|
|
42
31
|
var field = model.fields[fieldId];
|
|
43
32
|
var line = '';
|
|
44
|
-
|
|
45
33
|
if (field.enumId) {
|
|
46
34
|
var _enum = model.enums[field.enumId];
|
|
47
35
|
line = "[".concat(field.name, "] nvarchar(255) NOT NULL CHECK ([").concat(field.name, "] IN (");
|
|
48
|
-
|
|
49
36
|
var enumValues = _enum.valueIds.map(function (valueId) {
|
|
50
37
|
var value = model.enumValues[valueId];
|
|
51
38
|
return "'".concat(value.name, "'");
|
|
52
39
|
});
|
|
53
|
-
|
|
54
40
|
line += "".concat(enumValues.join(', '), "))");
|
|
55
41
|
} else {
|
|
56
42
|
line = "[".concat(field.name, "] ").concat(field.type.type_name !== 'varchar' ? field.type.type_name : 'nvarchar(255)');
|
|
57
43
|
}
|
|
58
|
-
|
|
59
44
|
if (field.unique) {
|
|
60
45
|
line += ' UNIQUE';
|
|
61
46
|
}
|
|
62
|
-
|
|
63
47
|
if (field.pk) {
|
|
64
48
|
line += ' PRIMARY KEY';
|
|
65
49
|
}
|
|
66
|
-
|
|
67
50
|
if (field.not_null) {
|
|
68
51
|
line += ' NOT NULL';
|
|
69
52
|
}
|
|
70
|
-
|
|
71
53
|
if (field.increment) {
|
|
72
54
|
line += ' IDENTITY(1, 1)';
|
|
73
55
|
}
|
|
74
|
-
|
|
75
56
|
if (field.dbdefault) {
|
|
76
57
|
if (field.dbdefault.type === 'expression') {
|
|
77
58
|
line += " DEFAULT (".concat(field.dbdefault.value, ")");
|
|
@@ -81,7 +62,6 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
81
62
|
line += " DEFAULT (".concat(field.dbdefault.value, ")");
|
|
82
63
|
}
|
|
83
64
|
}
|
|
84
|
-
|
|
85
65
|
return line;
|
|
86
66
|
});
|
|
87
67
|
return lines;
|
|
@@ -100,13 +80,11 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
100
80
|
key.columnIds.forEach(function (columnId) {
|
|
101
81
|
var column = model.indexColumns[columnId];
|
|
102
82
|
var columnStr = '';
|
|
103
|
-
|
|
104
83
|
if (column.type === 'expression') {
|
|
105
84
|
columnStr = "(".concat(column.value, ")");
|
|
106
85
|
} else {
|
|
107
86
|
columnStr = "[".concat(column.value, "]");
|
|
108
87
|
}
|
|
109
|
-
|
|
110
88
|
columnArr.push(columnStr);
|
|
111
89
|
});
|
|
112
90
|
line += " (".concat(columnArr.join(', '), ")");
|
|
@@ -147,11 +125,8 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
147
125
|
key: "buildTableManyToMany",
|
|
148
126
|
value: function buildTableManyToMany(firstTableFieldsMap, secondTableFieldsMap, tableName, refEndpointSchema, model) {
|
|
149
127
|
var line = "CREATE TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "[".concat(refEndpointSchema.name, "].") : '', "[").concat(tableName, "] (\n");
|
|
150
|
-
|
|
151
128
|
var key1s = _toConsumableArray(firstTableFieldsMap.keys()).join('], [');
|
|
152
|
-
|
|
153
129
|
var key2s = _toConsumableArray(secondTableFieldsMap.keys()).join('], [');
|
|
154
|
-
|
|
155
130
|
firstTableFieldsMap.forEach(function (fieldType, fieldName) {
|
|
156
131
|
line += " [".concat(fieldName, "] ").concat(fieldType, ",\n");
|
|
157
132
|
});
|
|
@@ -166,7 +141,6 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
166
141
|
key: "buildForeignKeyManyToMany",
|
|
167
142
|
value: function buildForeignKeyManyToMany(fieldsMap, foreignEndpointFields, refEndpointTableName, foreignEndpointTableName, refEndpointSchema, foreignEndpointSchema, model) {
|
|
168
143
|
var refEndpointFields = _toConsumableArray(fieldsMap.keys()).join('], [');
|
|
169
|
-
|
|
170
144
|
var line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "[".concat(refEndpointSchema.name, "].") : '', "[").concat(refEndpointTableName, "] ADD FOREIGN KEY ([").concat(refEndpointFields, "]) REFERENCES ").concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "[".concat(foreignEndpointSchema.name, "].") : '', "[").concat(foreignEndpointTableName, "] ").concat(foreignEndpointFields, ";\nGO\n\n");
|
|
171
145
|
return line;
|
|
172
146
|
}
|
|
@@ -182,7 +156,6 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
182
156
|
key: "exportRefs",
|
|
183
157
|
value: function exportRefs(refIds, model, usedTableNames) {
|
|
184
158
|
var _this = this;
|
|
185
|
-
|
|
186
159
|
var strArr = refIds.map(function (refId) {
|
|
187
160
|
var line = '';
|
|
188
161
|
var ref = model.refs[refId];
|
|
@@ -197,15 +170,11 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
197
170
|
var refEndpointField = model.fields[refEndpoint.fieldIds[0]];
|
|
198
171
|
var refEndpointTable = model.tables[refEndpointField.tableId];
|
|
199
172
|
var refEndpointSchema = model.schemas[refEndpointTable.schemaId];
|
|
200
|
-
|
|
201
173
|
var refEndpointFieldName = _this.buildFieldName(refEndpoint.fieldIds, model, 'mssql');
|
|
202
|
-
|
|
203
174
|
var foreignEndpointField = model.fields[foreignEndpoint.fieldIds[0]];
|
|
204
175
|
var foreignEndpointTable = model.tables[foreignEndpointField.tableId];
|
|
205
176
|
var foreignEndpointSchema = model.schemas[foreignEndpointTable.schemaId];
|
|
206
|
-
|
|
207
177
|
var foreignEndpointFieldName = _this.buildFieldName(foreignEndpoint.fieldIds, model, 'mssql');
|
|
208
|
-
|
|
209
178
|
if (refOneIndex === -1) {
|
|
210
179
|
// many to many relationship
|
|
211
180
|
var firstTableFieldsMap = (0, _utils.buildJunctionFields1)(refEndpoint.fieldIds, model);
|
|
@@ -216,24 +185,18 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
216
185
|
line += _this.buildForeignKeyManyToMany(secondTableFieldsMap, foreignEndpointFieldName, newTableName, foreignEndpointTable.name, refEndpointSchema, foreignEndpointSchema, model);
|
|
217
186
|
} else {
|
|
218
187
|
line = "ALTER TABLE ".concat((0, _utils.shouldPrintSchema)(foreignEndpointSchema, model) ? "[".concat(foreignEndpointSchema.name, "].") : '', "[").concat(foreignEndpointTable.name, "] ADD ");
|
|
219
|
-
|
|
220
188
|
if (ref.name) {
|
|
221
189
|
line += "CONSTRAINT [".concat(ref.name, "] ");
|
|
222
190
|
}
|
|
223
|
-
|
|
224
191
|
line += "FOREIGN KEY ".concat(foreignEndpointFieldName, " REFERENCES ").concat((0, _utils.shouldPrintSchema)(refEndpointSchema, model) ? "[".concat(refEndpointSchema.name, "].") : '', "[").concat(refEndpointTable.name, "] ").concat(refEndpointFieldName);
|
|
225
|
-
|
|
226
192
|
if (ref.onDelete) {
|
|
227
193
|
line += " ON DELETE ".concat(ref.onDelete.toUpperCase());
|
|
228
194
|
}
|
|
229
|
-
|
|
230
195
|
if (ref.onUpdate) {
|
|
231
196
|
line += " ON UPDATE ".concat(ref.onUpdate.toUpperCase());
|
|
232
197
|
}
|
|
233
|
-
|
|
234
198
|
line += '\nGO\n';
|
|
235
199
|
}
|
|
236
|
-
|
|
237
200
|
return line;
|
|
238
201
|
});
|
|
239
202
|
return strArr;
|
|
@@ -249,24 +212,20 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
249
212
|
var table = model.tables[index.tableId];
|
|
250
213
|
var schema = model.schemas[table.schemaId];
|
|
251
214
|
var line = 'CREATE';
|
|
252
|
-
|
|
253
215
|
if (index.unique) {
|
|
254
216
|
line += ' UNIQUE';
|
|
255
217
|
}
|
|
256
|
-
|
|
257
218
|
var indexName = index.name ? "[".concat(index.name, "]") : "".concat((0, _utils.shouldPrintSchema)(schema, model) ? "[".concat(schema.name, "].") : '', "[").concat(table.name, "_index_").concat(i, "]");
|
|
258
219
|
line += " INDEX ".concat(indexName, " ON ").concat((0, _utils.shouldPrintSchema)(schema, model) ? "[".concat(schema.name, "].") : '', "[").concat(table.name, "]");
|
|
259
220
|
var columnArr = [];
|
|
260
221
|
index.columnIds.forEach(function (columnId) {
|
|
261
222
|
var column = model.indexColumns[columnId];
|
|
262
223
|
var columnStr = '';
|
|
263
|
-
|
|
264
224
|
if (column.type === 'expression') {
|
|
265
225
|
columnStr = "(".concat(column.value, ")");
|
|
266
226
|
} else {
|
|
267
227
|
columnStr = "\"".concat(column.value, "\"");
|
|
268
228
|
}
|
|
269
|
-
|
|
270
229
|
columnArr.push(columnStr);
|
|
271
230
|
});
|
|
272
231
|
line += " (".concat(columnArr.join(', '), ")");
|
|
@@ -283,7 +242,6 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
283
242
|
var schema = model.schemas[table.schemaId];
|
|
284
243
|
var line = '';
|
|
285
244
|
line = 'EXEC sp_addextendedproperty\n';
|
|
286
|
-
|
|
287
245
|
switch (comment.type) {
|
|
288
246
|
case 'table':
|
|
289
247
|
{
|
|
@@ -293,7 +251,6 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
293
251
|
line += "@level1type = N'Table', @level1name = '".concat(table.name, "';\n");
|
|
294
252
|
break;
|
|
295
253
|
}
|
|
296
|
-
|
|
297
254
|
case 'column':
|
|
298
255
|
{
|
|
299
256
|
var field = model.fields[comment.fieldId];
|
|
@@ -304,11 +261,9 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
304
261
|
line += "@level2type = N'Column', @level2name = '".concat(field.name, "';\n");
|
|
305
262
|
break;
|
|
306
263
|
}
|
|
307
|
-
|
|
308
264
|
default:
|
|
309
265
|
break;
|
|
310
266
|
}
|
|
311
|
-
|
|
312
267
|
line += 'GO\n';
|
|
313
268
|
return line;
|
|
314
269
|
});
|
|
@@ -324,32 +279,25 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
324
279
|
var statements = database.schemaIds.reduce(function (prevStatements, schemaId) {
|
|
325
280
|
var schema = model.schemas[schemaId];
|
|
326
281
|
var tableIds = schema.tableIds,
|
|
327
|
-
|
|
328
|
-
|
|
282
|
+
refIds = schema.refIds;
|
|
329
283
|
if ((0, _utils.shouldPrintSchema)(schema, model)) {
|
|
330
284
|
prevStatements.schemas.push("CREATE SCHEMA [".concat(schema.name, "]\nGO\n"));
|
|
331
285
|
}
|
|
332
|
-
|
|
333
286
|
if (!_lodash["default"].isEmpty(tableIds)) {
|
|
334
287
|
var _prevStatements$table;
|
|
335
|
-
|
|
336
288
|
(_prevStatements$table = prevStatements.tables).push.apply(_prevStatements$table, _toConsumableArray(SqlServerExporter.exportTables(tableIds, model)));
|
|
337
289
|
}
|
|
338
|
-
|
|
339
290
|
var indexIds = _lodash["default"].flatten(tableIds.map(function (tableId) {
|
|
340
291
|
return model.tables[tableId].indexIds;
|
|
341
292
|
}));
|
|
342
|
-
|
|
343
293
|
if (!_lodash["default"].isEmpty(indexIds)) {
|
|
344
294
|
var _prevStatements$index;
|
|
345
|
-
|
|
346
295
|
(_prevStatements$index = prevStatements.indexes).push.apply(_prevStatements$index, _toConsumableArray(SqlServerExporter.exportIndexes(indexIds, model)));
|
|
347
296
|
}
|
|
348
|
-
|
|
349
297
|
var commentNodes = _lodash["default"].flatten(tableIds.map(function (tableId) {
|
|
350
298
|
var _model$tables$tableId = model.tables[tableId],
|
|
351
|
-
|
|
352
|
-
|
|
299
|
+
fieldIds = _model$tables$tableId.fieldIds,
|
|
300
|
+
note = _model$tables$tableId.note;
|
|
353
301
|
var fieldObjects = fieldIds.filter(function (fieldId) {
|
|
354
302
|
return model.fields[fieldId].note;
|
|
355
303
|
}).map(function (fieldId) {
|
|
@@ -364,19 +312,14 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
364
312
|
tableId: tableId
|
|
365
313
|
}].concat(fieldObjects) : fieldObjects;
|
|
366
314
|
}));
|
|
367
|
-
|
|
368
315
|
if (!_lodash["default"].isEmpty(commentNodes)) {
|
|
369
316
|
var _prevStatements$comme;
|
|
370
|
-
|
|
371
317
|
(_prevStatements$comme = prevStatements.comments).push.apply(_prevStatements$comme, _toConsumableArray(SqlServerExporter.exportComments(commentNodes, model)));
|
|
372
318
|
}
|
|
373
|
-
|
|
374
319
|
if (!_lodash["default"].isEmpty(refIds)) {
|
|
375
320
|
var _prevStatements$refs;
|
|
376
|
-
|
|
377
321
|
(_prevStatements$refs = prevStatements.refs).push.apply(_prevStatements$refs, _toConsumableArray(SqlServerExporter.exportRefs(refIds, model, usedTableNames)));
|
|
378
322
|
}
|
|
379
|
-
|
|
380
323
|
return prevStatements;
|
|
381
324
|
}, {
|
|
382
325
|
schemas: [],
|
|
@@ -386,15 +329,11 @@ var SqlServerExporter = /*#__PURE__*/function () {
|
|
|
386
329
|
comments: [],
|
|
387
330
|
refs: []
|
|
388
331
|
});
|
|
389
|
-
|
|
390
332
|
var res = _lodash["default"].concat(statements.schemas, statements.enums, statements.tables, statements.indexes, statements.comments, statements.refs).join('\n');
|
|
391
|
-
|
|
392
333
|
return res;
|
|
393
334
|
}
|
|
394
335
|
}]);
|
|
395
|
-
|
|
396
336
|
return SqlServerExporter;
|
|
397
337
|
}();
|
|
398
|
-
|
|
399
338
|
var _default = SqlServerExporter;
|
|
400
339
|
exports["default"] = _default;
|
package/lib/export/index.js
CHANGED
|
@@ -4,19 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _ModelExporter = _interopRequireDefault(require("./ModelExporter"));
|
|
9
|
-
|
|
10
8
|
var _Parser = _interopRequireDefault(require("../parse/Parser"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
14
10
|
function _export(str, format) {
|
|
15
11
|
var database = _Parser["default"].parse(str, 'dbml');
|
|
16
|
-
|
|
17
12
|
return _ModelExporter["default"]["export"](database.normalize(), format);
|
|
18
13
|
}
|
|
19
|
-
|
|
20
14
|
var _default = {
|
|
21
15
|
"export": _export
|
|
22
16
|
};
|
package/lib/export/utils.js
CHANGED
|
@@ -3,22 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.hasWhiteSpace = hasWhiteSpace;
|
|
7
|
-
exports.shouldPrintSchema = shouldPrintSchema;
|
|
8
6
|
exports.buildJunctionFields1 = buildJunctionFields1;
|
|
9
7
|
exports.buildJunctionFields2 = buildJunctionFields2;
|
|
10
8
|
exports.buildNewTableName = buildNewTableName;
|
|
11
|
-
|
|
9
|
+
exports.hasWhiteSpace = hasWhiteSpace;
|
|
10
|
+
exports.shouldPrintSchema = shouldPrintSchema;
|
|
12
11
|
var _config = require("../model_structure/config");
|
|
13
|
-
|
|
14
12
|
function hasWhiteSpace(s) {
|
|
15
13
|
return /\s/g.test(s);
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
function shouldPrintSchema(schema, model) {
|
|
19
16
|
return schema.name !== _config.DEFAULT_SCHEMA_NAME || schema.name === _config.DEFAULT_SCHEMA_NAME && model.database['1'].hasDefaultSchema;
|
|
20
17
|
}
|
|
21
|
-
|
|
22
18
|
function buildJunctionFields1(fieldIds, model) {
|
|
23
19
|
var fieldsMap = new Map();
|
|
24
20
|
fieldIds.map(function (fieldId) {
|
|
@@ -26,32 +22,26 @@ function buildJunctionFields1(fieldIds, model) {
|
|
|
26
22
|
});
|
|
27
23
|
return fieldsMap;
|
|
28
24
|
}
|
|
29
|
-
|
|
30
25
|
function buildJunctionFields2(fieldIds, model, firstTableFieldsMap) {
|
|
31
26
|
var fieldsMap = new Map();
|
|
32
27
|
fieldIds.map(function (fieldId) {
|
|
33
28
|
var fieldName = "".concat(model.tables[model.fields[fieldId].tableId].name, "_").concat(model.fields[fieldId].name);
|
|
34
29
|
var count = 1;
|
|
35
|
-
|
|
36
30
|
while (firstTableFieldsMap.has(fieldName)) {
|
|
37
31
|
fieldName = "".concat(model.tables[model.fields[fieldId].tableId].name, "_").concat(model.fields[fieldId].name, "(").concat(count, ")");
|
|
38
32
|
count += 1;
|
|
39
33
|
}
|
|
40
|
-
|
|
41
34
|
fieldsMap.set(fieldName, model.fields[fieldId].type.type_name);
|
|
42
35
|
});
|
|
43
36
|
return fieldsMap;
|
|
44
37
|
}
|
|
45
|
-
|
|
46
38
|
function buildNewTableName(firstTable, secondTable, usedTableNames) {
|
|
47
39
|
var newTableName = "".concat(firstTable, "_").concat(secondTable);
|
|
48
40
|
var count = 1;
|
|
49
|
-
|
|
50
41
|
while (usedTableNames.has(newTableName)) {
|
|
51
42
|
newTableName = "".concat(firstTable, "_").concat(secondTable, "(").concat(count, ")");
|
|
52
43
|
count += 1;
|
|
53
44
|
}
|
|
54
|
-
|
|
55
45
|
usedTableNames.add(newTableName);
|
|
56
46
|
return newTableName;
|
|
57
47
|
}
|
package/lib/import/index.js
CHANGED
|
@@ -4,21 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _Parser = _interopRequireDefault(require("../parse/Parser"));
|
|
9
|
-
|
|
10
8
|
var _ModelExporter = _interopRequireDefault(require("../export/ModelExporter"));
|
|
11
|
-
|
|
12
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
14
10
|
function _import(str, format) {
|
|
15
11
|
var database = _Parser["default"].parse(str, format);
|
|
16
|
-
|
|
17
12
|
var dbml = _ModelExporter["default"]["export"](database.normalize(), 'dbml');
|
|
18
|
-
|
|
19
13
|
return dbml;
|
|
20
14
|
}
|
|
21
|
-
|
|
22
15
|
var _default = {
|
|
23
16
|
"import": _import
|
|
24
17
|
};
|
package/lib/index.js
CHANGED
|
@@ -15,25 +15,20 @@ Object.defineProperty(exports, "Parser", {
|
|
|
15
15
|
return _Parser["default"];
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "exporter", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function get() {
|
|
21
|
-
return
|
|
21
|
+
return _export["default"];
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "importer", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function get() {
|
|
27
|
-
return
|
|
27
|
+
return _import["default"];
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
|
|
31
30
|
var _ModelExporter = _interopRequireDefault(require("./export/ModelExporter"));
|
|
32
|
-
|
|
33
31
|
var _Parser = _interopRequireDefault(require("./parse/Parser"));
|
|
34
|
-
|
|
35
32
|
var _import = _interopRequireDefault(require("./import"));
|
|
36
|
-
|
|
37
33
|
var _export = _interopRequireDefault(require("./export"));
|
|
38
|
-
|
|
39
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TABLE_GROUP = exports.
|
|
6
|
+
exports.TABLE_GROUP = exports.TABLE = exports.REF = exports.ENUM = exports.DEFAULT_SCHEMA_NAME = void 0;
|
|
7
7
|
var DEFAULT_SCHEMA_NAME = 'public';
|
|
8
8
|
exports.DEFAULT_SCHEMA_NAME = DEFAULT_SCHEMA_NAME;
|
|
9
9
|
var TABLE = 'table';
|