db-modeling-markdown 2.0.2 → 2.1.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.
Files changed (113) hide show
  1. package/README.md +168 -164
  2. package/dist/dialects/core/dbImportProvider.d.ts +5 -5
  3. package/dist/dialects/core/dbImportProvider.js +6 -6
  4. package/dist/dialects/core/dbProvider.d.ts +34 -34
  5. package/dist/dialects/core/dbProvider.js +119 -119
  6. package/dist/dialects/core/dbProvider.js.map +1 -1
  7. package/dist/dialects/core/dbUtils.d.ts +35 -35
  8. package/dist/dialects/core/dbUtils.js +157 -158
  9. package/dist/dialects/core/dbUtils.js.map +1 -1
  10. package/dist/dialects/core/providerFactory.d.ts +7 -7
  11. package/dist/dialects/core/providerFactory.js +63 -63
  12. package/dist/dialects/core/providerFactory.js.map +1 -1
  13. package/dist/dialects/db2/db2Provider.d.ts +19 -19
  14. package/dist/dialects/db2/db2Provider.js +185 -186
  15. package/dist/dialects/db2/db2Provider.js.map +1 -1
  16. package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -19
  17. package/dist/dialects/mariadb/mariaDbImportProvider.js +260 -260
  18. package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -1
  19. package/dist/dialects/mariadb/mariaDbProvider.d.ts +18 -18
  20. package/dist/dialects/mariadb/mariaDbProvider.js +152 -153
  21. package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
  22. package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -6
  23. package/dist/dialects/mariadb/mariaDbUtil.js +22 -22
  24. package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -1
  25. package/dist/dialects/mssql/msSqlProvider.d.ts +21 -21
  26. package/dist/dialects/mssql/msSqlProvider.js +264 -265
  27. package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
  28. package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -3
  29. package/dist/dialects/mysql/mySqlImportProvider.js +7 -7
  30. package/dist/dialects/mysql/mySqlProvider.d.ts +3 -3
  31. package/dist/dialects/mysql/mySqlProvider.js +7 -7
  32. package/dist/dialects/oracle/oracleProvider.d.ts +35 -35
  33. package/dist/dialects/oracle/oracleProvider.js +327 -327
  34. package/dist/dialects/oracle/oracleProvider.js.map +1 -1
  35. package/dist/dialects/postgresql/postgreSqlProvider.d.ts +19 -19
  36. package/dist/dialects/postgresql/postgreSqlProvider.js +172 -173
  37. package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
  38. package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +23 -23
  39. package/dist/dialects/sqlite/sqliteSqlProvider.js +147 -148
  40. package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
  41. package/dist/index.d.ts +10 -10
  42. package/dist/index.js +9 -9
  43. package/dist/lib/code-flow/codeFlow.d.ts +37 -37
  44. package/dist/lib/code-flow/codeFlow.js +61 -61
  45. package/dist/lib/markdown-object/markdownModel.d.ts +14 -14
  46. package/dist/lib/markdown-object/markdownModel.js +12 -12
  47. package/dist/lib/markdown-object/markdownModel.js.map +1 -1
  48. package/dist/lib/markdown-object/markdownReader.d.ts +39 -39
  49. package/dist/lib/markdown-object/markdownReader.js +261 -261
  50. package/dist/lib/markdown-object/markdownReader.js.map +1 -1
  51. package/dist/lib/markdown-object/markdownWriter.d.ts +36 -36
  52. package/dist/lib/markdown-object/markdownWriter.js +224 -224
  53. package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
  54. package/dist/lib/markdown-object/readerContext.d.ts +12 -12
  55. package/dist/lib/markdown-object/readerContext.js +48 -48
  56. package/dist/lib/markdown-object/readerContext.js.map +1 -1
  57. package/dist/lib/utils/fileHelper.d.ts +14 -15
  58. package/dist/lib/utils/fileHelper.js +58 -57
  59. package/dist/lib/utils/fileHelper.js.map +1 -1
  60. package/dist/lib/utils/logger.d.ts +9 -9
  61. package/dist/lib/utils/logger.js +60 -60
  62. package/dist/lib/utils/logger.js.map +1 -1
  63. package/dist/lib/utils/markdownParser.d.ts +22 -22
  64. package/dist/lib/utils/markdownParser.js +99 -95
  65. package/dist/lib/utils/markdownParser.js.map +1 -1
  66. package/dist/lib/utils/sqlHelper.d.ts +3 -3
  67. package/dist/lib/utils/sqlHelper.js +23 -23
  68. package/dist/lib/utils/sqlHelper.js.map +1 -1
  69. package/dist/lib/utils/systemHelper.d.ts +2 -2
  70. package/dist/lib/utils/systemHelper.js +6 -6
  71. package/dist/lib/utils/textFileReader.d.ts +25 -25
  72. package/dist/lib/utils/textFileReader.js +57 -57
  73. package/dist/lib/utils/textFileReader.js.map +1 -1
  74. package/dist/lib/utils/textHelper.d.ts +21 -21
  75. package/dist/lib/utils/textHelper.js +75 -71
  76. package/dist/lib/utils/textHelper.js.map +1 -1
  77. package/dist/models/databaseTypes.d.ts +33 -33
  78. package/dist/models/databaseTypes.js +37 -37
  79. package/dist/models/databaseTypes.js.map +1 -1
  80. package/dist/models/dbColumn.d.ts +43 -43
  81. package/dist/models/dbColumn.js +2 -2
  82. package/dist/models/dbDiffModel.d.ts +43 -43
  83. package/dist/models/dbDiffModel.js +2 -2
  84. package/dist/models/dbForeignKey.d.ts +33 -33
  85. package/dist/models/dbForeignKey.js +2 -2
  86. package/dist/models/dbIndex.d.ts +28 -28
  87. package/dist/models/dbIndex.js +2 -2
  88. package/dist/models/dbIndexType.d.ts +8 -8
  89. package/dist/models/dbIndexType.js +12 -12
  90. package/dist/models/dbIndexType.js.map +1 -1
  91. package/dist/models/dbModel.d.ts +10 -10
  92. package/dist/models/dbModel.js +2 -2
  93. package/dist/models/dbPrimaryKey.d.ts +16 -16
  94. package/dist/models/dbPrimaryKey.js +2 -2
  95. package/dist/models/dbTable.d.ts +49 -49
  96. package/dist/models/dbTable.js +2 -2
  97. package/dist/models/dbTableMarkdown.d.ts +35 -35
  98. package/dist/models/dbTableMarkdown.js +2 -2
  99. package/dist/resources/mariadb/procAppUpgradeDB.sql +164 -164
  100. package/dist/resources/mariadb/sql-create-table-fk.njk +10 -10
  101. package/dist/resources/mariadb/sql-create-table.njk +11 -11
  102. package/dist/resources/mariadb/sql-create-tables.njk +8 -8
  103. package/dist/resources/mariadb/sql-upgrade-new-table.njk +14 -14
  104. package/dist/services/dbOptions.d.ts +35 -35
  105. package/dist/services/dbOptions.js +17 -17
  106. package/dist/services/dbmOptions.d.ts +28 -28
  107. package/dist/services/dbmOptions.js +34 -34
  108. package/dist/services/dbmService.d.ts +87 -87
  109. package/dist/services/dbmService.js +244 -244
  110. package/dist/services/dbmService.js.map +1 -1
  111. package/package.json +28 -34
  112. package/CHANGELOG.md +0 -81
  113. package/CONTRIBUTING.md +0 -85
@@ -1,245 +1,245 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DbmService = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
6
- const providerFactory_1 = require("../dialects/core/providerFactory");
7
- const markdownReader_1 = require("../lib/markdown-object/markdownReader");
8
- const markdownWriter_1 = require("../lib/markdown-object/markdownWriter");
9
- const fileHelper_1 = require("../lib/utils/fileHelper");
10
- const databaseTypes_1 = require("../models/databaseTypes");
11
- const dbmOptions_1 = require("./dbmOptions");
12
- /**
13
- * The database modeling markdown service.
14
- */
15
- class DbmService {
16
- /**
17
- * New a markdown file (.db.md) that defines a table.
18
- * The file will be located at `options.sourceFolder` with name `<tableName>.db.md`.
19
- * @param options the options (required: `sourceFolder`)
20
- * @param tableName The table name
21
- */
22
- static newDbmMarkdownFile(options, tableName) {
23
- const model = {
24
- tables: [
25
- {
26
- name: tableName,
27
- comment: 'The new table comment',
28
- primaryKey: {
29
- columns: 'TableId, TableId2',
30
- },
31
- indexes: [
32
- {
33
- columns: '',
34
- unique: true,
35
- },
36
- ],
37
- foreignKeys: [
38
- {
39
- columns: '',
40
- refTable: '',
41
- refColumns: '',
42
- options: '',
43
- },
44
- ],
45
- columns: [
46
- {
47
- name: 'TableId',
48
- label: 'Table Id',
49
- type: 'int',
50
- nullable: false,
51
- default: '',
52
- comment: 'The Id column',
53
- },
54
- {
55
- name: 'TableName',
56
- label: 'Table Name',
57
- type: 'nvarchar(50)',
58
- nullable: false,
59
- default: "''",
60
- comment: 'The name column',
61
- },
62
- ],
63
- },
64
- ],
65
- };
66
- const table = model.tables[0];
67
- return markdownWriter_1.MarkdownWriter.renderTable(table, options.sourceFolder &&
68
- path.join(options.sourceFolder, `${table.name}${options.mdFileExtension}`));
69
- }
70
- /**
71
- * Generate a SQL file with create-table-if-not-exists scripts.
72
- * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
73
- */
74
- static toCreateTableIfNotExistsSql(options) {
75
- const model = this.toModel(options);
76
- const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
77
- const sql = provider.getCreateTableIfNotExistsSql(model, true);
78
- if (options.targetPath) {
79
- fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
80
- }
81
- return sql;
82
- }
83
- /**
84
- * Generate a SQL file with create-table scripts.
85
- * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
86
- */
87
- static toCreateTableSql(options) {
88
- const model = this.toModel(options);
89
- const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
90
- const sql = provider.getCreateTableSql(model, true);
91
- if (options.targetPath) {
92
- fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
93
- }
94
- return sql;
95
- }
96
- /**
97
- * Generate a SQL file with drop-table scripts.
98
- * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
99
- */
100
- static toDropTableSql(options) {
101
- const model = this.toModel(options);
102
- const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
103
- const sql = provider.getDropTableSql(model, true);
104
- if (options.targetPath) {
105
- fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
106
- }
107
- return sql;
108
- }
109
- /**
110
- * Generate a SQL file with drop-then-create-table scripts.
111
- * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
112
- */
113
- static toDropThenCreateTableSql(options) {
114
- const model = this.toModel(options);
115
- const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
116
- const sql = provider.getDropThenCreateTableSql(model, true);
117
- if (options.targetPath) {
118
- fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
119
- }
120
- return sql;
121
- }
122
- /**
123
- * Generate a SQL file with upgrade scripts.
124
- * support:
125
- * - new tables,
126
- * - new columns,
127
- * - new primary keys
128
- * - new indexes
129
- * - new foreign keys
130
- * @param options the options, required: `database`, `sourceFolder`, `targetPath`, `previousVersionFolder`.
131
- */
132
- static toUpgradeSql(options) {
133
- const fromOptions = new dbmOptions_1.DbmOptions();
134
- fromOptions.database = options.database;
135
- fromOptions.mdFileExtension = options.mdFileExtension;
136
- fromOptions.sourceFolder = options.previousVersionFolder;
137
- const fromModel = this.toModel(fromOptions);
138
- const model = this.toModel(options);
139
- const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
140
- const sql = provider.getUpgradeSql(fromModel, model, true);
141
- if (options.targetPath) {
142
- fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
143
- }
144
- return sql;
145
- }
146
- /**
147
- * Generate a JSON file.
148
- * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
149
- */
150
- static toJson(options) {
151
- const model = this.toModel(options);
152
- if (options.targetPath) {
153
- fileHelper_1.FileHelper.writeJsonFileSync(options.targetPath, model);
154
- }
155
- return JSON.stringify(model, null, 2);
156
- }
157
- /**
158
- * Generate markdown files from a json file
159
- * @param jsonFile the json file path
160
- * @param markdownFolder the folder to which we will write
161
- * @param force If true, delete all files whose extension matched, default: `false`.
162
- * @param fileExtension generated file extension, default: `.db.md`.
163
- */
164
- static fromJsonFile(jsonFile, markdownFolder, force = false, fileExtension = '.db.md') {
165
- const model = JSON.parse(fileHelper_1.FileHelper.readJsonFileSync(jsonFile));
166
- this.toMarkdown(model, markdownFolder, force, fileExtension);
167
- }
168
- /**
169
- * Generate markdown files from a model
170
- * @param model the model object with
171
- * @param markdownFolder the folder to which we will write
172
- * @param force If true, delete all files whose extension matched, default: `false`.
173
- * @param fileExtension generated file extension, default: `.db.md`.
174
- */
175
- static toMarkdown(model, markdownFolder, force = false, fileExtension = '.db.md') {
176
- if (force && fs.existsSync(markdownFolder)) {
177
- fileHelper_1.FileHelper.removeAllFilesSync(markdownFolder, fileExtension);
178
- }
179
- if (!fs.existsSync(markdownFolder)) {
180
- fileHelper_1.FileHelper.mkdirSync(markdownFolder);
181
- }
182
- model.tables.forEach((table) => {
183
- markdownWriter_1.MarkdownWriter.renderTable(table, path.join(markdownFolder, `${table.name}${fileExtension}`));
184
- });
185
- }
186
- /**
187
- * Generate a index file for a model
188
- * @param model the model object with
189
- * @param markdownFolder the folder to which we will write
190
- * @param filename generated file name, default: `index.md`.
191
- */
192
- static genIndexFile(model, markdownFolder, filename = 'index.md') {
193
- const file = path.join(markdownFolder, filename);
194
- fileHelper_1.FileHelper.removeFileSync(file);
195
- let data = '# Database Design\n\n';
196
- data += '## Index\n\n';
197
- const columnWidths = [5, 6];
198
- model.tables.forEach((table) => {
199
- if (table.name.length * 2 + 10 > columnWidths[0]) {
200
- columnWidths[0] = table.name.length * 2 + 10;
201
- }
202
- if (table.comment && table.comment.length > columnWidths[1]) {
203
- columnWidths[1] = table.comment.length;
204
- }
205
- });
206
- data += `| ${'Table'.padEnd(columnWidths[0], ' ')} | ${'Comment'.padEnd(columnWidths[1], ' ')} |\n`;
207
- data += `| ${''.padEnd(columnWidths[0], '-')} | ${''.padEnd(columnWidths[1], '-')} |\n`;
208
- model.tables.forEach((table) => {
209
- const name = `[${table.name}](${table.name}.db.md)`;
210
- data += `| ${name.padEnd(columnWidths[0], ' ')} | ${table.comment?.padEnd(columnWidths[1], ' ')} |\n`;
211
- });
212
- fileHelper_1.FileHelper.writeFileSync(file, data);
213
- }
214
- /**
215
- * Get a model object.
216
- * @param options the options, required: `database`, `sourceFolder`.
217
- */
218
- static toModel(options) {
219
- const model = { tables: [] };
220
- const files = fileHelper_1.FileHelper.readdirSync(options.sourceFolder);
221
- files.forEach((file) => {
222
- if (file.name.endsWith(options.mdFileExtension)) {
223
- const table = new markdownReader_1.MarkdownReader(`${options.sourceFolder}/${file.name}`).toObject();
224
- model.tables.push(table);
225
- }
226
- });
227
- return model;
228
- }
229
- /**
230
- * Generate markdown files from a database
231
- * @param dbOptions the datbase connection configure
232
- * @param markdownFolder the folder to which we will write
233
- * @param force If true, delete all files whose extension matched, default: `false`.
234
- * @param fileExtension generated file extension, default: `.db.md`.
235
- */
236
- static async fromDatabase(dbOptions, markdownFolder, force = false, fileExtension = '.db.md') {
237
- const provider = providerFactory_1.ProviderFactory.getImportProvider(databaseTypes_1.DatabaseTypes.mariadb);
238
- const model = await provider.getModel(dbOptions);
239
- this.toMarkdown(model, markdownFolder, force, fileExtension);
240
- // generate an index.md for the imported model
241
- this.genIndexFile(model, markdownFolder);
242
- }
243
- }
244
- exports.DbmService = DbmService;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DbmService = void 0;
4
+ const fs = require("fs");
5
+ const path = require("path");
6
+ const providerFactory_1 = require("../dialects/core/providerFactory");
7
+ const markdownReader_1 = require("../lib/markdown-object/markdownReader");
8
+ const markdownWriter_1 = require("../lib/markdown-object/markdownWriter");
9
+ const fileHelper_1 = require("../lib/utils/fileHelper");
10
+ const databaseTypes_1 = require("../models/databaseTypes");
11
+ const dbmOptions_1 = require("./dbmOptions");
12
+ /**
13
+ * The database modeling markdown service.
14
+ */
15
+ class DbmService {
16
+ /**
17
+ * New a markdown file (.db.md) that defines a table.
18
+ * The file will be located at `options.sourceFolder` with name `<tableName>.db.md`.
19
+ * @param options the options (required: `sourceFolder`)
20
+ * @param tableName The table name
21
+ */
22
+ static newDbmMarkdownFile(options, tableName) {
23
+ const model = {
24
+ tables: [
25
+ {
26
+ name: tableName,
27
+ comment: 'The new table comment',
28
+ primaryKey: {
29
+ columns: 'TableId, TableId2',
30
+ },
31
+ indexes: [
32
+ {
33
+ columns: '',
34
+ unique: true,
35
+ },
36
+ ],
37
+ foreignKeys: [
38
+ {
39
+ columns: '',
40
+ refTable: '',
41
+ refColumns: '',
42
+ options: '',
43
+ },
44
+ ],
45
+ columns: [
46
+ {
47
+ name: 'TableId',
48
+ label: 'Table Id',
49
+ type: 'int',
50
+ nullable: false,
51
+ default: '',
52
+ comment: 'The Id column',
53
+ },
54
+ {
55
+ name: 'TableName',
56
+ label: 'Table Name',
57
+ type: 'nvarchar(50)',
58
+ nullable: false,
59
+ default: "''",
60
+ comment: 'The name column',
61
+ },
62
+ ],
63
+ },
64
+ ],
65
+ };
66
+ const table = model.tables[0];
67
+ return markdownWriter_1.MarkdownWriter.renderTable(table, options.sourceFolder &&
68
+ path.join(options.sourceFolder, `${table.name}${options.mdFileExtension}`));
69
+ }
70
+ /**
71
+ * Generate a SQL file with create-table-if-not-exists scripts.
72
+ * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
73
+ */
74
+ static toCreateTableIfNotExistsSql(options) {
75
+ const model = this.toModel(options);
76
+ const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
77
+ const sql = provider.getCreateTableIfNotExistsSql(model, true);
78
+ if (options.targetPath) {
79
+ fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
80
+ }
81
+ return sql;
82
+ }
83
+ /**
84
+ * Generate a SQL file with create-table scripts.
85
+ * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
86
+ */
87
+ static toCreateTableSql(options) {
88
+ const model = this.toModel(options);
89
+ const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
90
+ const sql = provider.getCreateTableSql(model, true);
91
+ if (options.targetPath) {
92
+ fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
93
+ }
94
+ return sql;
95
+ }
96
+ /**
97
+ * Generate a SQL file with drop-table scripts.
98
+ * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
99
+ */
100
+ static toDropTableSql(options) {
101
+ const model = this.toModel(options);
102
+ const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
103
+ const sql = provider.getDropTableSql(model, true);
104
+ if (options.targetPath) {
105
+ fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
106
+ }
107
+ return sql;
108
+ }
109
+ /**
110
+ * Generate a SQL file with drop-then-create-table scripts.
111
+ * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
112
+ */
113
+ static toDropThenCreateTableSql(options) {
114
+ const model = this.toModel(options);
115
+ const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
116
+ const sql = provider.getDropThenCreateTableSql(model, true);
117
+ if (options.targetPath) {
118
+ fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
119
+ }
120
+ return sql;
121
+ }
122
+ /**
123
+ * Generate a SQL file with upgrade scripts.
124
+ * support:
125
+ * - new tables,
126
+ * - new columns,
127
+ * - new primary keys
128
+ * - new indexes
129
+ * - new foreign keys
130
+ * @param options the options, required: `database`, `sourceFolder`, `targetPath`, `previousVersionFolder`.
131
+ */
132
+ static toUpgradeSql(options) {
133
+ const fromOptions = new dbmOptions_1.DbmOptions();
134
+ fromOptions.database = options.database;
135
+ fromOptions.mdFileExtension = options.mdFileExtension;
136
+ fromOptions.sourceFolder = options.previousVersionFolder;
137
+ const fromModel = this.toModel(fromOptions);
138
+ const model = this.toModel(options);
139
+ const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
140
+ const sql = provider.getUpgradeSql(fromModel, model, true);
141
+ if (options.targetPath) {
142
+ fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
143
+ }
144
+ return sql;
145
+ }
146
+ /**
147
+ * Generate a JSON file.
148
+ * @param options the options, required: `database`, `sourceFolder`, `targetPath`.
149
+ */
150
+ static toJson(options) {
151
+ const model = this.toModel(options);
152
+ if (options.targetPath) {
153
+ fileHelper_1.FileHelper.writeJsonFileSync(options.targetPath, model);
154
+ }
155
+ return JSON.stringify(model, null, 2);
156
+ }
157
+ /**
158
+ * Generate markdown files from a json file
159
+ * @param jsonFile the json file path
160
+ * @param markdownFolder the folder to which we will write
161
+ * @param force If true, delete all files whose extension matched, default: `false`.
162
+ * @param fileExtension generated file extension, default: `.db.md`.
163
+ */
164
+ static fromJsonFile(jsonFile, markdownFolder, force = false, fileExtension = '.db.md') {
165
+ const model = JSON.parse(fileHelper_1.FileHelper.readJsonFileSync(jsonFile));
166
+ this.toMarkdown(model, markdownFolder, force, fileExtension);
167
+ }
168
+ /**
169
+ * Generate markdown files from a model
170
+ * @param model the model object with
171
+ * @param markdownFolder the folder to which we will write
172
+ * @param force If true, delete all files whose extension matched, default: `false`.
173
+ * @param fileExtension generated file extension, default: `.db.md`.
174
+ */
175
+ static toMarkdown(model, markdownFolder, force = false, fileExtension = '.db.md') {
176
+ if (force && fs.existsSync(markdownFolder)) {
177
+ fileHelper_1.FileHelper.removeAllFilesSync(markdownFolder, fileExtension);
178
+ }
179
+ if (!fs.existsSync(markdownFolder)) {
180
+ fileHelper_1.FileHelper.mkdirSync(markdownFolder);
181
+ }
182
+ model.tables.forEach((table) => {
183
+ markdownWriter_1.MarkdownWriter.renderTable(table, path.join(markdownFolder, `${table.name}${fileExtension}`));
184
+ });
185
+ }
186
+ /**
187
+ * Generate a index file for a model
188
+ * @param model the model object with
189
+ * @param markdownFolder the folder to which we will write
190
+ * @param filename generated file name, default: `index.md`.
191
+ */
192
+ static genIndexFile(model, markdownFolder, filename = 'index.md') {
193
+ const file = path.join(markdownFolder, filename);
194
+ fileHelper_1.FileHelper.removeFileSync(file);
195
+ let data = '# Database Design\n\n';
196
+ data += '## Index\n\n';
197
+ const columnWidths = [5, 6];
198
+ model.tables.forEach((table) => {
199
+ if (table.name.length * 2 + 10 > columnWidths[0]) {
200
+ columnWidths[0] = table.name.length * 2 + 10;
201
+ }
202
+ if (table.comment && table.comment.length > columnWidths[1]) {
203
+ columnWidths[1] = table.comment.length;
204
+ }
205
+ });
206
+ data += `| ${'Table'.padEnd(columnWidths[0], ' ')} | ${'Comment'.padEnd(columnWidths[1], ' ')} |\n`;
207
+ data += `| ${''.padEnd(columnWidths[0], '-')} | ${''.padEnd(columnWidths[1], '-')} |\n`;
208
+ model.tables.forEach((table) => {
209
+ const name = `[${table.name}](${table.name}.db.md)`;
210
+ data += `| ${name.padEnd(columnWidths[0], ' ')} | ${table.comment?.padEnd(columnWidths[1], ' ')} |\n`;
211
+ });
212
+ fileHelper_1.FileHelper.writeFileSync(file, data);
213
+ }
214
+ /**
215
+ * Get a model object.
216
+ * @param options the options, required: `database`, `sourceFolder`.
217
+ */
218
+ static toModel(options) {
219
+ const model = { tables: [] };
220
+ const files = fileHelper_1.FileHelper.readdirSync(options.sourceFolder);
221
+ files.forEach((file) => {
222
+ if (file.name.endsWith(options.mdFileExtension)) {
223
+ const table = new markdownReader_1.MarkdownReader(`${options.sourceFolder}/${file.name}`).toObject();
224
+ model.tables.push(table);
225
+ }
226
+ });
227
+ return model;
228
+ }
229
+ /**
230
+ * Generate markdown files from a database
231
+ * @param dbOptions the datbase connection configure
232
+ * @param markdownFolder the folder to which we will write
233
+ * @param force If true, delete all files whose extension matched, default: `false`.
234
+ * @param fileExtension generated file extension, default: `.db.md`.
235
+ */
236
+ static async fromDatabase(dbOptions, markdownFolder, force = false, fileExtension = '.db.md') {
237
+ const provider = providerFactory_1.ProviderFactory.getImportProvider(databaseTypes_1.DatabaseTypes.mariadb);
238
+ const model = await provider.getModel(dbOptions);
239
+ this.toMarkdown(model, markdownFolder, force, fileExtension);
240
+ // generate an index.md for the imported model
241
+ this.genIndexFile(model, markdownFolder);
242
+ }
243
+ }
244
+ exports.DbmService = DbmService;
245
245
  //# sourceMappingURL=dbmService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dbmService.js","sourceRoot":"","sources":["../../src/services/dbmService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dbmService.js","sourceRoot":"","sources":["../../src/services/dbmService.ts"],"names":[],"mappings":";;;AAAA,yBAAwB;AACxB,6BAA4B;AAG5B,sEAAkE;AAClE,0EAAsE;AACtE,0EAAsE;AACtE,wDAAoD;AACpD,2DAAuD;AAGvD,6CAAyC;AAGzC;;GAEG;AACH,MAAa,UAAU;IACtB;;;;;OAKG;IACI,MAAM,CAAC,kBAAkB,CAAC,OAAmB,EAAE,SAAiB;QACtE,MAAM,KAAK,GAAY;YACtB,MAAM,EAAE;gBACP;oBACC,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,uBAAuB;oBAChC,UAAU,EAAE;wBACX,OAAO,EAAE,mBAAmB;qBAC5B;oBACD,OAAO,EAAE;wBACR;4BACC,OAAO,EAAE,EAAE;4BACX,MAAM,EAAE,IAAI;yBACZ;qBACD;oBACD,WAAW,EAAE;wBACZ;4BACC,OAAO,EAAE,EAAE;4BACX,QAAQ,EAAE,EAAE;4BACZ,UAAU,EAAE,EAAE;4BACd,OAAO,EAAE,EAAE;yBACX;qBACD;oBACD,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,UAAU;4BACjB,IAAI,EAAE,KAAK;4BACX,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,EAAE;4BACX,OAAO,EAAE,eAAe;yBACxB;wBACD;4BACC,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,YAAY;4BACnB,IAAI,EAAE,cAAc;4BACpB,QAAQ,EAAE,KAAK;4BACf,OAAO,EAAE,IAAI;4BACb,OAAO,EAAE,iBAAiB;yBAC1B;qBACD;iBACD;aACD;SACD,CAAA;QACD,MAAM,KAAK,GAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACtC,OAAO,+BAAc,CAAC,WAAW,CAChC,KAAK,EACL,OAAO,CAAC,YAAY;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAC3E,CAAA;IACF,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,2BAA2B,CAAC,OAAmB;QAC5D,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,iCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,4BAA4B,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE9D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,gBAAgB,CAAC,OAAmB;QACjD,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,iCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAEnD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,cAAc,CAAC,OAAmB;QAC/C,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,iCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAEjD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,wBAAwB,CAAC,OAAmB;QACzD,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,iCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAE3D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,YAAY,CAAC,OAAmB;QAC7C,MAAM,WAAW,GAAe,IAAI,uBAAU,EAAE,CAAA;QAChD,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;QACvC,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAA;QACrD,WAAW,CAAC,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAA;QACxD,MAAM,SAAS,GAAY,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACpD,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAE5C,MAAM,QAAQ,GAAG,iCAAe,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC9D,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAE1D,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,MAAM,CAAC,OAAmB;QACvC,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACxB,uBAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACtC,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,YAAY,CACzB,QAAgB,EAChB,cAAsB,EACtB,QAAiB,KAAK,EACtB,gBAAwB,QAAQ;QAEhC,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,uBAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAA;QACxE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;IAC7D,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,UAAU,CACvB,KAAc,EACd,cAAsB,EACtB,QAAiB,KAAK,EACtB,gBAAwB,QAAQ;QAEhC,IAAI,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,uBAAU,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;QAC7D,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACpC,uBAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QACrC,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,EAAE;YACvC,+BAAc,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,IAAI,GAAG,aAAa,EAAE,CAAC,CAAC,CAAA;QAC9F,CAAC,CAAC,CAAA;IACH,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,YAAY,CACzB,KAAc,EACd,cAAsB,EACtB,WAAmB,UAAU;QAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;QAChD,uBAAU,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAE/B,IAAI,IAAI,GAAG,uBAAuB,CAAA;QAClC,IAAI,IAAI,cAAc,CAAA;QAEtB,MAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QAC3B,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,EAAE;YACvC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA;YAC7C,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;YACvC,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,IAAI,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,SAAS,CAAC,MAAM,CACtE,YAAY,CAAC,CAAC,CAAC,EACf,GAAG,CACH,MAAM,CAAA;QACP,IAAI,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAA;QACvF,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAc,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,CAAA;YACnD,IAAI,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,OAAO,EAAE,MAAM,CACxE,YAAY,CAAC,CAAC,CAAC,EACf,GAAG,CACH,MAAM,CAAA;QACR,CAAC,CAAC,CAAA;QAEF,uBAAU,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACrC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,OAAO,CAAC,OAAmB;QACxC,MAAM,KAAK,GAAY,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;QACrC,MAAM,KAAK,GAAgB,uBAAU,CAAC,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAEvE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtB,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,IAAI,+BAAc,CAAC,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAA;gBAEnF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzB,CAAC;QACF,CAAC,CAAC,CAAA;QAEF,OAAO,KAAK,CAAA;IACb,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAC/B,SAAoB,EACpB,cAAsB,EACtB,QAAiB,KAAK,EACtB,gBAAwB,QAAQ;QAEhC,MAAM,QAAQ,GAAqB,iCAAe,CAAC,iBAAiB,CAAC,6BAAa,CAAC,OAAO,CAAC,CAAA;QAC3F,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAChD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;QAC5D,8CAA8C;QAC9C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACzC,CAAC;CACD;AA5RD,gCA4RC"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "db-modeling-markdown",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "description": "database modeling markdown lib",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist"
9
+ ],
7
10
  "scripts": {
8
11
  "build": "npm run gulp build",
9
12
  "coverage": "jest --coverage",
@@ -13,7 +16,7 @@
13
16
  "lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"",
14
17
  "lint:fix": "eslint --fix \"src/**/*.ts\" \"tests/**/*.ts\"",
15
18
  "test": "jest",
16
- "prepare": "husky install",
19
+ "prepare": "husky",
17
20
  "pretty": "prettier --write \"src/**/*.ts\" && prettier --write \"tests/**/*.ts\""
18
21
  },
19
22
  "repository": {
@@ -35,41 +38,32 @@
35
38
  },
36
39
  "homepage": "https://gitee.com/sn-yang/db-modeling-markdown#readme",
37
40
  "dependencies": {
38
- "mariadb": "^3.0.1",
39
- "nunjucks": "^3.2.3",
40
- "regexp-coder": "2.0.2"
41
+ "mariadb": "^3.5.4",
42
+ "nunjucks": "^3.2.4",
43
+ "regexp-coder": "^2.1.0"
41
44
  },
42
45
  "devDependencies": {
43
- "@types/babel__core": "7.1.19",
44
- "@types/glob": "^8.0.0",
45
- "@types/jest": "^29.0.0",
46
- "@types/lodash": "^4.14.184",
47
- "@types/node": "^18.7.16",
48
- "@typescript-eslint/eslint-plugin": "^5.36.2",
49
- "@typescript-eslint/parser": "^5.36.2",
50
- "dotenv": "^16.0.3",
51
- "eslint": "^8.23.0",
46
+ "@eslint/eslintrc": "^3.3.7",
47
+ "@types/jest": "^30.0.0",
48
+ "@types/node": "^26.6.5",
49
+ "@typescript-eslint/eslint-plugin": "^8.71.2",
50
+ "@typescript-eslint/parser": "^8.71.2",
51
+ "dotenv": "^18.0.8",
52
+ "eslint": "^10.13.0",
52
53
  "eslint-config-airbnb-base": "^15.0.0",
53
- "eslint-config-airbnb-typescript": "^17.0.0",
54
- "eslint-config-prettier": "^8.5.0",
55
- "eslint-config-tslint": "^0.2.1",
56
- "eslint-plugin-import": "^2.26.0",
57
- "eslint-plugin-simple-import-sort": "^8.0.0",
58
- "eslint-plugin-typescript-sort-keys": "2.1.0",
59
- "glob": "^8.0.3",
60
- "gulp": "^4.0.2",
54
+ "eslint-config-airbnb-typescript": "^18.0.0",
55
+ "eslint-config-prettier": "^10.1.8",
56
+ "eslint-plugin-import": "^2.32.0",
57
+ "eslint-plugin-import-x": "^4.17.1",
58
+ "eslint-plugin-perfectionist": "^5.12.1",
59
+ "eslint-plugin-simple-import-sort": "^14.0.0",
60
+ "gulp": "^5.0.1",
61
61
  "gulp-shell": "^0.8.0",
62
- "gulp-sourcemaps": "^3.0.0",
63
- "gulp-typescript": "^5.0.1",
64
- "husky": "^8.0.0",
65
- "jest": "^29.0.3",
66
- "jscodeshift": "^0.13.1",
67
- "lint-staged": "^13.0.3",
68
- "sort-class-members-codemod": "^0.5.1",
69
- "ts-jest": "^29.0.0",
70
- "ts-node": "^10.9.1",
71
- "typedoc": "^0.23.14",
72
- "typescript": "^4.8.3",
73
- "vscode-test": "^1.6.1"
62
+ "husky": "^9.1.7",
63
+ "jest": "^30.5.2",
64
+ "ts-jest": "^29.4.15",
65
+ "ts-node": "^10.9.2",
66
+ "typedoc": "^0.28.20",
67
+ "typescript": "^7.0.2"
74
68
  }
75
69
  }