db-modeling-markdown 1.0.6 → 2.0.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/CHANGELOG.md +19 -4
- package/CONTRIBUTING.md +27 -6
- package/README.md +63 -46
- package/dist/dialects/core/dbImportProvider.d.ts +5 -0
- package/dist/dialects/core/dbImportProvider.js +7 -0
- package/dist/dialects/core/dbImportProvider.js.map +1 -0
- package/dist/dialects/core/dbProvider.d.ts +19 -6
- package/dist/dialects/core/dbProvider.js +40 -6
- package/dist/dialects/core/dbProvider.js.map +1 -1
- package/dist/dialects/core/dbUtils.d.ts +35 -0
- package/dist/dialects/core/dbUtils.js +159 -0
- package/dist/dialects/core/dbUtils.js.map +1 -0
- package/dist/dialects/core/providerFactory.d.ts +3 -1
- package/dist/dialects/core/providerFactory.js +28 -3
- package/dist/dialects/core/providerFactory.js.map +1 -1
- package/dist/dialects/db2/db2Provider.d.ts +2 -1
- package/dist/dialects/db2/db2Provider.js +2 -3
- package/dist/dialects/db2/db2Provider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -0
- package/dist/dialects/mariadb/mariaDbImportProvider.js +254 -0
- package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -0
- package/dist/dialects/mariadb/mariaDbProvider.d.ts +11 -11
- package/dist/dialects/mariadb/mariaDbProvider.js +129 -214
- package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
- package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -0
- package/dist/dialects/mariadb/mariaDbUtil.js +23 -0
- package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -0
- package/dist/dialects/mssql/msSqlProvider.d.ts +2 -1
- package/dist/dialects/mssql/msSqlProvider.js +4 -8
- package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
- package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -0
- package/dist/dialects/mysql/mySqlImportProvider.js +8 -0
- package/dist/dialects/mysql/mySqlImportProvider.js.map +1 -0
- package/dist/dialects/mysql/mySqlProvider.d.ts +2 -20
- package/dist/dialects/mysql/mySqlProvider.js +2 -233
- package/dist/dialects/mysql/mySqlProvider.js.map +1 -1
- package/dist/dialects/oracle/oracleProvider.d.ts +5 -1
- package/dist/dialects/oracle/oracleProvider.js +14 -6
- package/dist/dialects/oracle/oracleProvider.js.map +1 -1
- package/dist/dialects/postgresql/postgreSqlProvider.d.ts +2 -1
- package/dist/dialects/postgresql/postgreSqlProvider.js +4 -1
- package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
- package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +2 -1
- package/dist/dialects/sqlite/sqliteSqlProvider.js +1 -2
- package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
- package/dist/index.d.ts +9 -4
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/lib/code-flow/codeFlow.js.map +1 -1
- package/dist/lib/markdown-object/markdownModel.d.ts +0 -4
- package/dist/lib/markdown-object/markdownModel.js +0 -4
- package/dist/lib/markdown-object/markdownModel.js.map +1 -1
- package/dist/lib/markdown-object/markdownReader.d.ts +19 -0
- package/dist/lib/markdown-object/markdownReader.js +85 -28
- package/dist/lib/markdown-object/markdownReader.js.map +1 -1
- package/dist/lib/markdown-object/markdownWriter.d.ts +25 -1
- package/dist/lib/markdown-object/markdownWriter.js +117 -52
- package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
- package/dist/lib/markdown-object/readerContext.js +3 -1
- package/dist/lib/markdown-object/readerContext.js.map +1 -1
- package/dist/lib/utils/fileHelper.d.ts +4 -0
- package/dist/lib/utils/fileHelper.js +20 -1
- package/dist/lib/utils/fileHelper.js.map +1 -1
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/markdownParser.js +3 -6
- package/dist/lib/utils/markdownParser.js.map +1 -1
- package/dist/lib/utils/sqlHelper.js.map +1 -1
- package/dist/lib/utils/textFileReader.js +2 -2
- package/dist/lib/utils/textFileReader.js.map +1 -1
- package/dist/lib/utils/textHelper.d.ts +18 -0
- package/dist/lib/utils/textHelper.js +62 -0
- package/dist/lib/utils/textHelper.js.map +1 -1
- package/dist/{services → models}/databaseTypes.d.ts +0 -0
- package/dist/{services → models}/databaseTypes.js +0 -0
- package/dist/models/databaseTypes.js.map +1 -0
- package/dist/models/dbColumn.d.ts +43 -0
- package/dist/models/dbColumn.js +3 -0
- package/dist/models/dbColumn.js.map +1 -0
- package/dist/models/dbDiffModel.d.ts +43 -0
- package/dist/models/dbDiffModel.js +3 -0
- package/dist/models/dbDiffModel.js.map +1 -0
- package/dist/models/dbForeignKey.d.ts +33 -0
- package/dist/models/dbForeignKey.js +3 -0
- package/dist/models/dbForeignKey.js.map +1 -0
- package/dist/models/dbIndex.d.ts +28 -0
- package/dist/models/dbIndex.js +3 -0
- package/dist/models/dbIndex.js.map +1 -0
- package/dist/models/dbIndexType.d.ts +8 -0
- package/dist/models/dbIndexType.js +13 -0
- package/dist/models/dbIndexType.js.map +1 -0
- package/dist/models/dbModel.d.ts +10 -0
- package/dist/{services → models}/dbModel.js +0 -0
- package/dist/{services → models}/dbModel.js.map +1 -1
- package/dist/models/dbPrimaryKey.d.ts +16 -0
- package/dist/models/dbPrimaryKey.js +3 -0
- package/dist/models/dbPrimaryKey.js.map +1 -0
- package/dist/models/dbTable.d.ts +49 -0
- package/dist/models/dbTable.js +3 -0
- package/dist/models/dbTable.js.map +1 -0
- package/dist/models/dbTableMarkdown.d.ts +34 -0
- package/dist/models/dbTableMarkdown.js +3 -0
- package/dist/models/dbTableMarkdown.js.map +1 -0
- package/dist/services/dbOptions.d.ts +35 -0
- package/dist/services/dbOptions.js +18 -0
- package/dist/services/dbOptions.js.map +1 -0
- package/dist/services/dbmOptions.d.ts +1 -1
- package/dist/services/dbmOptions.js +1 -1
- package/dist/services/dbmOptions.js.map +1 -1
- package/dist/services/dbmService.d.ts +36 -1
- package/dist/services/dbmService.js +80 -13
- package/dist/services/dbmService.js.map +1 -1
- package/package.json +32 -40
- package/dist/services/databaseTypes.js.map +0 -1
- package/dist/services/dbModel.d.ts +0 -135
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultOptions = exports.DbmOptions = void 0;
|
|
4
|
-
const databaseTypes_1 = require("
|
|
4
|
+
const databaseTypes_1 = require("../models/databaseTypes");
|
|
5
5
|
/**
|
|
6
6
|
* Options for generation functions
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbmOptions.js","sourceRoot":"","sources":["../../src/services/dbmOptions.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"dbmOptions.js","sourceRoot":"","sources":["../../src/services/dbmOptions.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAEvD;;GAEG;AACH,MAAa,UAAU;IAAvB;QACC;;WAEG;QACH,aAAQ,GAAkB,6BAAa,CAAC,KAAK,CAAA;QAE7C;;;WAGG;QACH,oBAAe,GAAW,QAAQ,CAAA;QAElC;;WAEG;QACH,iBAAY,GAAW,EAAE,CAAA;QAEzB;;WAEG;QACH,eAAU,GAAW,EAAE,CAAA;IACxB,CAAC;CAAA;AArBD,gCAqBC;AAEY,QAAA,cAAc,GAAG,IAAI,UAAU,EAAE,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { DbModel } from '
|
|
1
|
+
import { DbModel } from '../models/dbModel';
|
|
2
2
|
import { DbmOptions } from './dbmOptions';
|
|
3
|
+
import { DbOptions } from './dbOptions';
|
|
3
4
|
/**
|
|
4
5
|
* The database modeling markdown service.
|
|
5
6
|
*/
|
|
@@ -31,11 +32,30 @@ export declare class DbmService {
|
|
|
31
32
|
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
32
33
|
*/
|
|
33
34
|
static toDropThenCreateTableSql(options: DbmOptions): string;
|
|
35
|
+
/**
|
|
36
|
+
* Generate a SQL file with upgrade scripts.
|
|
37
|
+
* support:
|
|
38
|
+
* - new tables,
|
|
39
|
+
* - new columns,
|
|
40
|
+
* - new primary keys
|
|
41
|
+
* - new indexes
|
|
42
|
+
* - new foreign keys
|
|
43
|
+
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
44
|
+
*/
|
|
45
|
+
static toUpgradeSql(fromOptions: DbmOptions, options: DbmOptions): string;
|
|
34
46
|
/**
|
|
35
47
|
* Generate a JSON file.
|
|
36
48
|
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
37
49
|
*/
|
|
38
50
|
static toJson(options: DbmOptions): string;
|
|
51
|
+
/**
|
|
52
|
+
* Generate markdown files from a json file
|
|
53
|
+
* @param jsonFile the json file path
|
|
54
|
+
* @param markdownFolder the folder to which we will write
|
|
55
|
+
* @param force If true, delete all files whose extension matched, default: `false`.
|
|
56
|
+
* @param fileExtension generated file extension, default: `.db.md`.
|
|
57
|
+
*/
|
|
58
|
+
static fromJsonFile(jsonFile: string, markdownFolder: string, force?: boolean, fileExtension?: string): void;
|
|
39
59
|
/**
|
|
40
60
|
* Generate markdown files from a model
|
|
41
61
|
* @param model the model object with
|
|
@@ -44,9 +64,24 @@ export declare class DbmService {
|
|
|
44
64
|
* @param fileExtension generated file extension, default: `.db.md`.
|
|
45
65
|
*/
|
|
46
66
|
static toMarkdown(model: DbModel, markdownFolder: string, force?: boolean, fileExtension?: string): void;
|
|
67
|
+
/**
|
|
68
|
+
* Generate a index file for a model
|
|
69
|
+
* @param model the model object with
|
|
70
|
+
* @param markdownFolder the folder to which we will write
|
|
71
|
+
* @param filename generated file name, default: `index.md`.
|
|
72
|
+
*/
|
|
73
|
+
static genIndexFile(model: DbModel, markdownFolder: string, filename?: string): void;
|
|
47
74
|
/**
|
|
48
75
|
* Get a model object.
|
|
49
76
|
* @param options the options, required: `database`, `sourceFolder`.
|
|
50
77
|
*/
|
|
51
78
|
static toModel(options: DbmOptions): DbModel;
|
|
79
|
+
/**
|
|
80
|
+
* Generate markdown files from a database
|
|
81
|
+
* @param dbOptions the datbase connection configure
|
|
82
|
+
* @param markdownFolder the folder to which we will write
|
|
83
|
+
* @param force If true, delete all files whose extension matched, default: `false`.
|
|
84
|
+
* @param fileExtension generated file extension, default: `.db.md`.
|
|
85
|
+
*/
|
|
86
|
+
static fromDatabase(dbOptions: DbOptions, markdownFolder: string, force?: boolean, fileExtension?: string): Promise<void>;
|
|
52
87
|
}
|
|
@@ -3,10 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DbmService = void 0;
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const path = require("path");
|
|
6
|
-
const
|
|
6
|
+
const providerFactory_1 = require("../dialects/core/providerFactory");
|
|
7
7
|
const markdownReader_1 = require("../lib/markdown-object/markdownReader");
|
|
8
8
|
const markdownWriter_1 = require("../lib/markdown-object/markdownWriter");
|
|
9
|
-
const
|
|
9
|
+
const fileHelper_1 = require("../lib/utils/fileHelper");
|
|
10
|
+
const databaseTypes_1 = require("../models/databaseTypes");
|
|
10
11
|
/**
|
|
11
12
|
* The database modeling markdown service.
|
|
12
13
|
*/
|
|
@@ -64,9 +65,8 @@ class DbmService {
|
|
|
64
65
|
],
|
|
65
66
|
};
|
|
66
67
|
const table = model.tables[0];
|
|
67
|
-
|
|
68
|
+
return markdownWriter_1.MarkdownWriter.renderTable(table, options.sourceFolder &&
|
|
68
69
|
path.join(options.sourceFolder, `${table.name}${options.mdFileExtension}`));
|
|
69
|
-
return content;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Generate a SQL file with create-table-if-not-exists scripts.
|
|
@@ -120,6 +120,26 @@ class DbmService {
|
|
|
120
120
|
}
|
|
121
121
|
return sql;
|
|
122
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Generate a SQL file with upgrade scripts.
|
|
125
|
+
* support:
|
|
126
|
+
* - new tables,
|
|
127
|
+
* - new columns,
|
|
128
|
+
* - new primary keys
|
|
129
|
+
* - new indexes
|
|
130
|
+
* - new foreign keys
|
|
131
|
+
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
132
|
+
*/
|
|
133
|
+
static toUpgradeSql(fromOptions, options) {
|
|
134
|
+
const fromModel = this.toModel(fromOptions);
|
|
135
|
+
const model = this.toModel(options);
|
|
136
|
+
const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
|
|
137
|
+
const sql = provider.getUpgradeSql(fromModel, model, true);
|
|
138
|
+
if (options.targetPath) {
|
|
139
|
+
fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
|
|
140
|
+
}
|
|
141
|
+
return sql;
|
|
142
|
+
}
|
|
123
143
|
/**
|
|
124
144
|
* Generate a JSON file.
|
|
125
145
|
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
@@ -131,6 +151,17 @@ class DbmService {
|
|
|
131
151
|
}
|
|
132
152
|
return JSON.stringify(model, null, 2);
|
|
133
153
|
}
|
|
154
|
+
/**
|
|
155
|
+
* Generate markdown files from a json file
|
|
156
|
+
* @param jsonFile the json file path
|
|
157
|
+
* @param markdownFolder the folder to which we will write
|
|
158
|
+
* @param force If true, delete all files whose extension matched, default: `false`.
|
|
159
|
+
* @param fileExtension generated file extension, default: `.db.md`.
|
|
160
|
+
*/
|
|
161
|
+
static fromJsonFile(jsonFile, markdownFolder, force = false, fileExtension = '.db.md') {
|
|
162
|
+
const model = JSON.parse(fileHelper_1.FileHelper.readJsonFileSync(jsonFile));
|
|
163
|
+
this.toMarkdown(model, markdownFolder, force, fileExtension);
|
|
164
|
+
}
|
|
134
165
|
/**
|
|
135
166
|
* Generate markdown files from a model
|
|
136
167
|
* @param model the model object with
|
|
@@ -139,20 +170,44 @@ class DbmService {
|
|
|
139
170
|
* @param fileExtension generated file extension, default: `.db.md`.
|
|
140
171
|
*/
|
|
141
172
|
static toMarkdown(model, markdownFolder, force = false, fileExtension = '.db.md') {
|
|
142
|
-
if (fs.existsSync(markdownFolder)) {
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
fs.unlinkSync(path.join(markdownFolder, file.name));
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
}
|
|
173
|
+
if (force && fs.existsSync(markdownFolder)) {
|
|
174
|
+
fileHelper_1.FileHelper.removeAllFilesSync(markdownFolder, fileExtension);
|
|
175
|
+
}
|
|
176
|
+
if (!fs.existsSync(markdownFolder)) {
|
|
177
|
+
fileHelper_1.FileHelper.mkdirSync(markdownFolder);
|
|
151
178
|
}
|
|
152
179
|
model.tables.forEach((table) => {
|
|
153
180
|
markdownWriter_1.MarkdownWriter.renderTable(table, path.join(markdownFolder, `${table.name}${fileExtension}`));
|
|
154
181
|
});
|
|
155
182
|
}
|
|
183
|
+
/**
|
|
184
|
+
* Generate a index file for a model
|
|
185
|
+
* @param model the model object with
|
|
186
|
+
* @param markdownFolder the folder to which we will write
|
|
187
|
+
* @param filename generated file name, default: `index.md`.
|
|
188
|
+
*/
|
|
189
|
+
static genIndexFile(model, markdownFolder, filename = 'index.md') {
|
|
190
|
+
const file = path.join(markdownFolder, filename);
|
|
191
|
+
fileHelper_1.FileHelper.removeFileSync(file);
|
|
192
|
+
let data = '# Database Design\n\n';
|
|
193
|
+
data += '## Index\n\n';
|
|
194
|
+
const columnWidths = [5, 6];
|
|
195
|
+
model.tables.forEach((table) => {
|
|
196
|
+
if (table.name.length * 2 + 10 > columnWidths[0]) {
|
|
197
|
+
columnWidths[0] = table.name.length * 2 + 10;
|
|
198
|
+
}
|
|
199
|
+
if (table.comment && table.comment.length > columnWidths[1]) {
|
|
200
|
+
columnWidths[1] = table.comment.length;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
data += `| ${'Table'.padEnd(columnWidths[0], ' ')} | ${'Comment'.padEnd(columnWidths[1], ' ')} |\n`;
|
|
204
|
+
data += `| ${''.padEnd(columnWidths[0], '-')} | ${''.padEnd(columnWidths[1], '-')} |\n`;
|
|
205
|
+
model.tables.forEach((table) => {
|
|
206
|
+
const name = `[${table.name}](${table.name}.db.md)`;
|
|
207
|
+
data += `| ${name.padEnd(columnWidths[0], ' ')} | ${table.comment?.padEnd(columnWidths[1], ' ')} |\n`;
|
|
208
|
+
});
|
|
209
|
+
fileHelper_1.FileHelper.writeFileSync(file, data);
|
|
210
|
+
}
|
|
156
211
|
/**
|
|
157
212
|
* Get a model object.
|
|
158
213
|
* @param options the options, required: `database`, `sourceFolder`.
|
|
@@ -168,6 +223,18 @@ class DbmService {
|
|
|
168
223
|
});
|
|
169
224
|
return model;
|
|
170
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Generate markdown files from a database
|
|
228
|
+
* @param dbOptions the datbase connection configure
|
|
229
|
+
* @param markdownFolder the folder to which we will write
|
|
230
|
+
* @param force If true, delete all files whose extension matched, default: `false`.
|
|
231
|
+
* @param fileExtension generated file extension, default: `.db.md`.
|
|
232
|
+
*/
|
|
233
|
+
static async fromDatabase(dbOptions, markdownFolder, force = false, fileExtension = '.db.md') {
|
|
234
|
+
const provider = providerFactory_1.ProviderFactory.getImportProvider(databaseTypes_1.DatabaseTypes.mariadb);
|
|
235
|
+
const model = await provider.getModel(dbOptions);
|
|
236
|
+
this.toMarkdown(model, markdownFolder, force, fileExtension);
|
|
237
|
+
}
|
|
171
238
|
}
|
|
172
239
|
exports.DbmService = DbmService;
|
|
173
240
|
//# sourceMappingURL=dbmService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dbmService.js","sourceRoot":"","sources":["../../src/services/dbmService.ts"],"names":[],"mappings":";;;AAAA,
|
|
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;AAMvD;;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;wBAC5B,OAAO,EAAE,KAAK;qBACd;oBACD,OAAO,EAAE;wBACR;4BACC,OAAO,EAAE,EAAE;4BACX,MAAM,EAAE,IAAI;4BACZ,OAAO,EAAE,KAAK;yBACd;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;YACvB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;SACjD;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;YACvB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;SACjD;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;YACvB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;SACjD;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;YACvB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;SACjD;QACD,OAAO,GAAG,CAAA;IACX,CAAC;IAED;;;;;;;;;OASG;IACI,MAAM,CAAC,YAAY,CAAC,WAAuB,EAAE,OAAmB;QACtE,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;YACvB,uBAAU,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAA;SACjD;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;YACvB,uBAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;SACvD;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;YAC3C,uBAAU,CAAC,kBAAkB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAA;SAC5D;QACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YACnC,uBAAU,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;SACpC;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;gBACjD,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAA;aAC5C;YACD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,EAAE;gBAC5D,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAA;aACtC;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;gBAChD,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;aACxB;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;IAC7D,CAAC;CACD;AAxRD,gCAwRC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "db-modeling-markdown",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "database modeling markdown lib",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -9,10 +9,11 @@
|
|
|
9
9
|
"coverage": "jest --coverage",
|
|
10
10
|
"doc": "npm run gulp doc && npm run gulp docs:copy",
|
|
11
11
|
"gulp": "gulp",
|
|
12
|
-
"lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"
|
|
13
|
-
"lint:fix": "eslint --fix \"src/**/*.ts\"
|
|
12
|
+
"lint": "eslint \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
13
|
+
"lint:fix": "eslint --fix \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
14
14
|
"test": "jest",
|
|
15
|
-
"prepare": "husky install"
|
|
15
|
+
"prepare": "husky install",
|
|
16
|
+
"pretty": "prettier --write \"src/**/*.ts\" && prettier --write \"tests/**/*.ts\""
|
|
16
17
|
},
|
|
17
18
|
"repository": {
|
|
18
19
|
"type": "git",
|
|
@@ -25,7 +26,7 @@
|
|
|
25
26
|
],
|
|
26
27
|
"author": {
|
|
27
28
|
"name": "Steven Yang",
|
|
28
|
-
"email": "steven_nyang@
|
|
29
|
+
"email": "steven_nyang@qq.com"
|
|
29
30
|
},
|
|
30
31
|
"license": "MIT",
|
|
31
32
|
"bugs": {
|
|
@@ -33,50 +34,41 @@
|
|
|
33
34
|
},
|
|
34
35
|
"homepage": "https://gitee.com/sn-yang/db-modeling-markdown#readme",
|
|
35
36
|
"dependencies": {
|
|
37
|
+
"mariadb": "^3.0.1",
|
|
38
|
+
"nunjucks": "^3.2.3",
|
|
36
39
|
"regexp-coder": "2.0.2"
|
|
37
40
|
},
|
|
38
41
|
"devDependencies": {
|
|
39
|
-
"@types/babel__core": "7.1.
|
|
40
|
-
"@types/glob": "^
|
|
41
|
-
"@types/jest": "
|
|
42
|
-
"@types/lodash": "^4.14.
|
|
43
|
-
"@types/node": "^
|
|
44
|
-
"@typescript-eslint/eslint-plugin": "^5.
|
|
45
|
-
"@typescript-eslint/parser": "^5.
|
|
46
|
-
"
|
|
42
|
+
"@types/babel__core": "7.1.19",
|
|
43
|
+
"@types/glob": "^8.0.0",
|
|
44
|
+
"@types/jest": "^29.0.0",
|
|
45
|
+
"@types/lodash": "^4.14.184",
|
|
46
|
+
"@types/node": "^18.7.16",
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "^5.36.2",
|
|
48
|
+
"@typescript-eslint/parser": "^5.36.2",
|
|
49
|
+
"dotenv": "^16.0.3",
|
|
50
|
+
"eslint": "^8.23.0",
|
|
47
51
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
48
|
-
"eslint-config-airbnb-typescript": "^
|
|
49
|
-
"eslint-config-prettier": "^8.
|
|
52
|
+
"eslint-config-airbnb-typescript": "^17.0.0",
|
|
53
|
+
"eslint-config-prettier": "^8.5.0",
|
|
50
54
|
"eslint-config-tslint": "^0.2.1",
|
|
51
|
-
"eslint-plugin-import": "^2.
|
|
52
|
-
"eslint-plugin-simple-import-sort": "^
|
|
53
|
-
"eslint-plugin-sort-
|
|
54
|
-
"
|
|
55
|
-
"glob": "^7.2.0",
|
|
55
|
+
"eslint-plugin-import": "^2.26.0",
|
|
56
|
+
"eslint-plugin-simple-import-sort": "^8.0.0",
|
|
57
|
+
"eslint-plugin-typescript-sort-keys": "2.1.0",
|
|
58
|
+
"glob": "^8.0.3",
|
|
56
59
|
"gulp": "^4.0.2",
|
|
57
60
|
"gulp-shell": "^0.8.0",
|
|
58
61
|
"gulp-sourcemaps": "^3.0.0",
|
|
59
62
|
"gulp-typescript": "^5.0.1",
|
|
60
|
-
"husky": "^
|
|
61
|
-
"jest": "
|
|
62
|
-
"jscodeshift": "0.13.
|
|
63
|
-
"lint-staged": "^
|
|
64
|
-
"sort-class-members-codemod": "0.5.1",
|
|
65
|
-
"ts-jest": "
|
|
66
|
-
"ts-node": "^10.
|
|
67
|
-
"typedoc": "^0.
|
|
68
|
-
"typescript": "^4.
|
|
63
|
+
"husky": "^8.0.0",
|
|
64
|
+
"jest": "^29.0.3",
|
|
65
|
+
"jscodeshift": "^0.13.1",
|
|
66
|
+
"lint-staged": "^13.0.3",
|
|
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",
|
|
69
72
|
"vscode-test": "^1.6.1"
|
|
70
|
-
},
|
|
71
|
-
"husky": {
|
|
72
|
-
"hooks": {
|
|
73
|
-
"pre-commit": "tsc --noEmit && lint-staged"
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
"lint-staged": {
|
|
77
|
-
"*.{ts}": [
|
|
78
|
-
"eslint --fix",
|
|
79
|
-
"git add"
|
|
80
|
-
]
|
|
81
73
|
}
|
|
82
74
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"databaseTypes.js","sourceRoot":"","sources":["../../src/services/databaseTypes.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,aAmCX;AAnCD,WAAY,aAAa;IACxB;;OAEG;IACH,4BAAW,CAAA;IAEX;;OAEG;IACH,oCAAmB,CAAA;IAEnB;;OAEG;IACH,gCAAe,CAAA;IAEf;;OAEG;IACH,gCAAe,CAAA;IAEf;;OAEG;IACH,kCAAiB,CAAA;IAEjB;;OAEG;IACH,0CAAyB,CAAA;IAEzB;;OAEG;IACH,kCAAiB,CAAA;AAClB,CAAC,EAnCW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAmCxB"}
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Describe a database model
|
|
3
|
-
*/
|
|
4
|
-
export interface DbModel {
|
|
5
|
-
/**
|
|
6
|
-
* The model tables
|
|
7
|
-
*/
|
|
8
|
-
tables: DbTable[];
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Describe a table
|
|
12
|
-
*/
|
|
13
|
-
export interface DbTable {
|
|
14
|
-
/**
|
|
15
|
-
* The table columns
|
|
16
|
-
*/
|
|
17
|
-
columns: DbColumn[];
|
|
18
|
-
/**
|
|
19
|
-
* The table comment
|
|
20
|
-
*/
|
|
21
|
-
comment?: string;
|
|
22
|
-
/**
|
|
23
|
-
* The table foreign keys
|
|
24
|
-
*/
|
|
25
|
-
foreignKeys: DbForeignKey[];
|
|
26
|
-
/**
|
|
27
|
-
* The table indexes
|
|
28
|
-
*/
|
|
29
|
-
indexes: DbIndex[];
|
|
30
|
-
/**
|
|
31
|
-
* The table name
|
|
32
|
-
*/
|
|
33
|
-
name: string;
|
|
34
|
-
/**
|
|
35
|
-
* The table primary key
|
|
36
|
-
*/
|
|
37
|
-
primaryKey?: DbPrimaryKey;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Describe a table column
|
|
41
|
-
*/
|
|
42
|
-
export interface DbColumn {
|
|
43
|
-
/**
|
|
44
|
-
* The column comment
|
|
45
|
-
*/
|
|
46
|
-
comment?: string;
|
|
47
|
-
/**
|
|
48
|
-
* The table default value.
|
|
49
|
-
* <empty> is no default value.
|
|
50
|
-
* Value `''` for default value empty
|
|
51
|
-
*
|
|
52
|
-
*/
|
|
53
|
-
default?: string;
|
|
54
|
-
/**
|
|
55
|
-
* The column table
|
|
56
|
-
*/
|
|
57
|
-
label?: string;
|
|
58
|
-
/**
|
|
59
|
-
* The column name
|
|
60
|
-
*/
|
|
61
|
-
name: string;
|
|
62
|
-
/**
|
|
63
|
-
* If the column nullable
|
|
64
|
-
*/
|
|
65
|
-
nullable?: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* The column data type
|
|
68
|
-
*/
|
|
69
|
-
type: string;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Describe table primary key
|
|
73
|
-
*/
|
|
74
|
-
export interface DbPrimaryKey {
|
|
75
|
-
/**
|
|
76
|
-
* If the primary key is clusterred
|
|
77
|
-
*/
|
|
78
|
-
cluster?: boolean;
|
|
79
|
-
/**
|
|
80
|
-
* The primary key columns.
|
|
81
|
-
*
|
|
82
|
-
* Use comma `,` to split multiple columns.
|
|
83
|
-
* E.g. `column, column2`
|
|
84
|
-
*/
|
|
85
|
-
columns: string;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Describe the table index
|
|
89
|
-
*/
|
|
90
|
-
export interface DbIndex {
|
|
91
|
-
/**
|
|
92
|
-
* If the index is clusterred
|
|
93
|
-
*/
|
|
94
|
-
cluster?: boolean;
|
|
95
|
-
/**
|
|
96
|
-
* The index columns.
|
|
97
|
-
*
|
|
98
|
-
* Use comma `,` to split multiple columns.
|
|
99
|
-
* E.g. `column, column2`
|
|
100
|
-
*/
|
|
101
|
-
columns: string;
|
|
102
|
-
/**
|
|
103
|
-
* If the index is unique
|
|
104
|
-
*/
|
|
105
|
-
unique?: boolean;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Describe the table foreign key
|
|
109
|
-
*/
|
|
110
|
-
export interface DbForeignKey {
|
|
111
|
-
/**
|
|
112
|
-
* The foreign key columns.
|
|
113
|
-
*
|
|
114
|
-
* Use comma `,` to split multiple columns.
|
|
115
|
-
* E.g. `column, column2`
|
|
116
|
-
*/
|
|
117
|
-
columns: string;
|
|
118
|
-
/**
|
|
119
|
-
* The foreign key options
|
|
120
|
-
*
|
|
121
|
-
* E.g. `ON DELETE CASCADE`
|
|
122
|
-
*/
|
|
123
|
-
options?: string;
|
|
124
|
-
/**
|
|
125
|
-
* The reference columns of the foreign key columns.
|
|
126
|
-
*
|
|
127
|
-
* Use comma `,` to split multiple columns.
|
|
128
|
-
* E.g. `column, column2`
|
|
129
|
-
*/
|
|
130
|
-
refColumns: string;
|
|
131
|
-
/**
|
|
132
|
-
* The reference table of the foreign key
|
|
133
|
-
*/
|
|
134
|
-
refTable: string;
|
|
135
|
-
}
|