db-modeling-markdown 2.0.1 → 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.
- package/README.md +168 -164
- package/dist/dialects/core/dbImportProvider.d.ts +5 -5
- package/dist/dialects/core/dbImportProvider.js +6 -6
- package/dist/dialects/core/dbProvider.d.ts +34 -34
- package/dist/dialects/core/dbProvider.js +119 -119
- package/dist/dialects/core/dbProvider.js.map +1 -1
- package/dist/dialects/core/dbUtils.d.ts +35 -35
- package/dist/dialects/core/dbUtils.js +157 -158
- package/dist/dialects/core/dbUtils.js.map +1 -1
- package/dist/dialects/core/providerFactory.d.ts +7 -7
- package/dist/dialects/core/providerFactory.js +63 -63
- package/dist/dialects/core/providerFactory.js.map +1 -1
- package/dist/dialects/db2/db2Provider.d.ts +19 -19
- package/dist/dialects/db2/db2Provider.js +185 -186
- package/dist/dialects/db2/db2Provider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -19
- package/dist/dialects/mariadb/mariaDbImportProvider.js +260 -253
- package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbProvider.d.ts +18 -18
- package/dist/dialects/mariadb/mariaDbProvider.js +152 -153
- package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -6
- package/dist/dialects/mariadb/mariaDbUtil.js +22 -22
- package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -1
- package/dist/dialects/mssql/msSqlProvider.d.ts +21 -21
- package/dist/dialects/mssql/msSqlProvider.js +264 -265
- package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
- package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -3
- package/dist/dialects/mysql/mySqlImportProvider.js +7 -7
- package/dist/dialects/mysql/mySqlProvider.d.ts +3 -3
- package/dist/dialects/mysql/mySqlProvider.js +7 -7
- package/dist/dialects/oracle/oracleProvider.d.ts +35 -35
- package/dist/dialects/oracle/oracleProvider.js +327 -327
- package/dist/dialects/oracle/oracleProvider.js.map +1 -1
- package/dist/dialects/postgresql/postgreSqlProvider.d.ts +19 -19
- package/dist/dialects/postgresql/postgreSqlProvider.js +172 -173
- package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
- package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +23 -23
- package/dist/dialects/sqlite/sqliteSqlProvider.js +147 -148
- package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +9 -9
- package/dist/lib/code-flow/codeFlow.d.ts +37 -37
- package/dist/lib/code-flow/codeFlow.js +61 -61
- package/dist/lib/markdown-object/markdownModel.d.ts +14 -14
- package/dist/lib/markdown-object/markdownModel.js +12 -12
- package/dist/lib/markdown-object/markdownModel.js.map +1 -1
- package/dist/lib/markdown-object/markdownReader.d.ts +39 -39
- package/dist/lib/markdown-object/markdownReader.js +261 -258
- package/dist/lib/markdown-object/markdownReader.js.map +1 -1
- package/dist/lib/markdown-object/markdownWriter.d.ts +36 -36
- package/dist/lib/markdown-object/markdownWriter.js +224 -223
- package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
- package/dist/lib/markdown-object/readerContext.d.ts +12 -12
- package/dist/lib/markdown-object/readerContext.js +48 -48
- package/dist/lib/markdown-object/readerContext.js.map +1 -1
- package/dist/lib/utils/fileHelper.d.ts +14 -15
- package/dist/lib/utils/fileHelper.js +58 -57
- package/dist/lib/utils/fileHelper.js.map +1 -1
- package/dist/lib/utils/logger.d.ts +9 -9
- package/dist/lib/utils/logger.js +60 -60
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/markdownParser.d.ts +22 -22
- package/dist/lib/utils/markdownParser.js +99 -95
- package/dist/lib/utils/markdownParser.js.map +1 -1
- package/dist/lib/utils/sqlHelper.d.ts +3 -3
- package/dist/lib/utils/sqlHelper.js +23 -23
- package/dist/lib/utils/sqlHelper.js.map +1 -1
- package/dist/lib/utils/systemHelper.d.ts +2 -2
- package/dist/lib/utils/systemHelper.js +6 -6
- package/dist/lib/utils/textFileReader.d.ts +25 -25
- package/dist/lib/utils/textFileReader.js +57 -57
- package/dist/lib/utils/textFileReader.js.map +1 -1
- package/dist/lib/utils/textHelper.d.ts +21 -21
- package/dist/lib/utils/textHelper.js +75 -71
- package/dist/lib/utils/textHelper.js.map +1 -1
- package/dist/models/databaseTypes.d.ts +33 -33
- package/dist/models/databaseTypes.js +37 -37
- package/dist/models/databaseTypes.js.map +1 -1
- package/dist/models/dbColumn.d.ts +43 -43
- package/dist/models/dbColumn.js +2 -2
- package/dist/models/dbDiffModel.d.ts +43 -43
- package/dist/models/dbDiffModel.js +2 -2
- package/dist/models/dbForeignKey.d.ts +33 -33
- package/dist/models/dbForeignKey.js +2 -2
- package/dist/models/dbIndex.d.ts +28 -28
- package/dist/models/dbIndex.js +2 -2
- package/dist/models/dbIndexType.d.ts +8 -8
- package/dist/models/dbIndexType.js +12 -12
- package/dist/models/dbIndexType.js.map +1 -1
- package/dist/models/dbModel.d.ts +10 -10
- package/dist/models/dbModel.js +2 -2
- package/dist/models/dbPrimaryKey.d.ts +16 -16
- package/dist/models/dbPrimaryKey.js +2 -2
- package/dist/models/dbTable.d.ts +49 -49
- package/dist/models/dbTable.js +2 -2
- package/dist/models/dbTableMarkdown.d.ts +35 -34
- package/dist/models/dbTableMarkdown.js +2 -2
- package/dist/resources/mariadb/procAppUpgradeDB.sql +164 -0
- package/dist/resources/mariadb/sql-create-table-fk.njk +10 -0
- package/dist/resources/mariadb/sql-create-table.njk +12 -0
- package/dist/resources/mariadb/sql-create-tables.njk +9 -0
- package/dist/resources/mariadb/sql-drop-tables.njk +10 -0
- package/dist/resources/mariadb/sql-drop-then-create-tables.njk +4 -0
- package/dist/resources/mariadb/sql-upgrade-new-table.njk +15 -0
- package/dist/resources/mariadb/sql-upgrade-table-fk.njk +10 -0
- package/dist/resources/mariadb/sql-upgrade-table.njk +41 -0
- package/dist/resources/mariadb/sql-upgrade-tables.njk +19 -0
- package/dist/services/dbOptions.d.ts +35 -35
- package/dist/services/dbOptions.js +17 -17
- package/dist/services/dbmOptions.d.ts +28 -28
- package/dist/services/dbmOptions.js +34 -34
- package/dist/services/dbmService.d.ts +87 -87
- package/dist/services/dbmService.js +244 -246
- package/dist/services/dbmService.js.map +1 -1
- package/package.json +29 -34
- package/CHANGELOG.md +0 -81
- package/CONTRIBUTING.md +0 -82
|
@@ -1,247 +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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
* - new
|
|
128
|
-
* - new
|
|
129
|
-
* - new
|
|
130
|
-
*
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
fromOptions.
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
*
|
|
161
|
-
* @param
|
|
162
|
-
* @param
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
*
|
|
172
|
-
* @param
|
|
173
|
-
* @param
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
*
|
|
190
|
-
* @param
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
})
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
*
|
|
233
|
-
* @param
|
|
234
|
-
* @param
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
this.
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
}
|
|
246
|
-
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;
|
|
247
245
|
//# sourceMappingURL=dbmService.js.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"dbmService.js","sourceRoot":"","sources":["../../src/services/dbmService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "db-modeling-markdown",
|
|
3
|
-
"version": "2.0
|
|
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
|
+
"dist": "npm run gulp dist",
|
|
10
14
|
"doc": "npm run gulp doc && npm run gulp docs:copy",
|
|
11
15
|
"gulp": "gulp",
|
|
12
16
|
"lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
13
17
|
"lint:fix": "eslint --fix \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
14
18
|
"test": "jest",
|
|
15
|
-
"prepare": "husky
|
|
19
|
+
"prepare": "husky",
|
|
16
20
|
"pretty": "prettier --write \"src/**/*.ts\" && prettier --write \"tests/**/*.ts\""
|
|
17
21
|
},
|
|
18
22
|
"repository": {
|
|
@@ -34,41 +38,32 @@
|
|
|
34
38
|
},
|
|
35
39
|
"homepage": "https://gitee.com/sn-yang/db-modeling-markdown#readme",
|
|
36
40
|
"dependencies": {
|
|
37
|
-
"mariadb": "^3.
|
|
38
|
-
"nunjucks": "^3.2.
|
|
39
|
-
"regexp-coder": "2.0
|
|
41
|
+
"mariadb": "^3.5.4",
|
|
42
|
+
"nunjucks": "^3.2.4",
|
|
43
|
+
"regexp-coder": "^2.1.0"
|
|
40
44
|
},
|
|
41
45
|
"devDependencies": {
|
|
42
|
-
"@
|
|
43
|
-
"@types/
|
|
44
|
-
"@types/
|
|
45
|
-
"@
|
|
46
|
-
"@
|
|
47
|
-
"
|
|
48
|
-
"
|
|
49
|
-
"dotenv": "^16.0.3",
|
|
50
|
-
"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",
|
|
51
53
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
52
|
-
"eslint-config-airbnb-typescript": "^
|
|
53
|
-
"eslint-config-prettier": "^
|
|
54
|
-
"eslint-
|
|
55
|
-
"eslint-plugin-import": "^
|
|
56
|
-
"eslint-plugin-
|
|
57
|
-
"eslint-plugin-
|
|
58
|
-
"
|
|
59
|
-
"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",
|
|
60
61
|
"gulp-shell": "^0.8.0",
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"sort-class-members-codemod": "^0.5.1",
|
|
68
|
-
"ts-jest": "^29.0.0",
|
|
69
|
-
"ts-node": "^10.9.1",
|
|
70
|
-
"typedoc": "^0.23.14",
|
|
71
|
-
"typescript": "^4.8.3",
|
|
72
|
-
"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"
|
|
73
68
|
}
|
|
74
69
|
}
|