db-modeling-markdown 1.0.6 → 2.0.1
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 +34 -9
- package/README.md +92 -48
- 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 +7 -3
- package/dist/services/dbmOptions.js +7 -3
- package/dist/services/dbmOptions.js.map +1 -1
- package/dist/services/dbmService.d.ts +36 -1
- package/dist/services/dbmService.js +87 -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,4 +1,4 @@
|
|
|
1
|
-
import { DatabaseTypes } from '
|
|
1
|
+
import { DatabaseTypes } from '../models/databaseTypes';
|
|
2
2
|
/**
|
|
3
3
|
* Options for generation functions
|
|
4
4
|
*/
|
|
@@ -13,12 +13,16 @@ export declare class DbmOptions {
|
|
|
13
13
|
*/
|
|
14
14
|
mdFileExtension: string;
|
|
15
15
|
/**
|
|
16
|
-
* The
|
|
16
|
+
* The markdown file directory of the database model.
|
|
17
17
|
*/
|
|
18
18
|
sourceFolder: string;
|
|
19
19
|
/**
|
|
20
|
-
* The path of the output file
|
|
20
|
+
* The path of the output file.
|
|
21
21
|
*/
|
|
22
22
|
targetPath: string;
|
|
23
|
+
/**
|
|
24
|
+
* The markdown file directory of the previous database version.
|
|
25
|
+
*/
|
|
26
|
+
previousVersionFolder: string;
|
|
23
27
|
}
|
|
24
28
|
export declare const DefaultOptions: DbmOptions;
|
|
@@ -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
|
*/
|
|
@@ -17,13 +17,17 @@ class DbmOptions {
|
|
|
17
17
|
*/
|
|
18
18
|
this.mdFileExtension = '.db.md';
|
|
19
19
|
/**
|
|
20
|
-
* The
|
|
20
|
+
* The markdown file directory of the database model.
|
|
21
21
|
*/
|
|
22
22
|
this.sourceFolder = '';
|
|
23
23
|
/**
|
|
24
|
-
* The path of the output file
|
|
24
|
+
* The path of the output file.
|
|
25
25
|
*/
|
|
26
26
|
this.targetPath = '';
|
|
27
|
+
/**
|
|
28
|
+
* The markdown file directory of the previous database version.
|
|
29
|
+
*/
|
|
30
|
+
this.previousVersionFolder = '';
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
33
|
exports.DbmOptions = DbmOptions;
|
|
@@ -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;QAEvB;;WAEG;QACH,0BAAqB,GAAW,EAAE,CAAA;IACnC,CAAC;CAAA;AA1BD,gCA0BC;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`, `previousVersionFolder`.
|
|
44
|
+
*/
|
|
45
|
+
static toUpgradeSql(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,12 @@ 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");
|
|
11
|
+
const dbmOptions_1 = require("./dbmOptions");
|
|
10
12
|
/**
|
|
11
13
|
* The database modeling markdown service.
|
|
12
14
|
*/
|
|
@@ -64,9 +66,8 @@ class DbmService {
|
|
|
64
66
|
],
|
|
65
67
|
};
|
|
66
68
|
const table = model.tables[0];
|
|
67
|
-
|
|
69
|
+
return markdownWriter_1.MarkdownWriter.renderTable(table, options.sourceFolder &&
|
|
68
70
|
path.join(options.sourceFolder, `${table.name}${options.mdFileExtension}`));
|
|
69
|
-
return content;
|
|
70
71
|
}
|
|
71
72
|
/**
|
|
72
73
|
* Generate a SQL file with create-table-if-not-exists scripts.
|
|
@@ -120,6 +121,30 @@ class DbmService {
|
|
|
120
121
|
}
|
|
121
122
|
return sql;
|
|
122
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Generate a SQL file with upgrade scripts.
|
|
126
|
+
* support:
|
|
127
|
+
* - new tables,
|
|
128
|
+
* - new columns,
|
|
129
|
+
* - new primary keys
|
|
130
|
+
* - new indexes
|
|
131
|
+
* - new foreign keys
|
|
132
|
+
* @param options the options, required: `database`, `sourceFolder`, `targetPath`, `previousVersionFolder`.
|
|
133
|
+
*/
|
|
134
|
+
static toUpgradeSql(options) {
|
|
135
|
+
const fromOptions = new dbmOptions_1.DbmOptions();
|
|
136
|
+
fromOptions.database = options.database;
|
|
137
|
+
fromOptions.mdFileExtension = options.mdFileExtension;
|
|
138
|
+
fromOptions.sourceFolder = options.previousVersionFolder;
|
|
139
|
+
const fromModel = this.toModel(fromOptions);
|
|
140
|
+
const model = this.toModel(options);
|
|
141
|
+
const provider = providerFactory_1.ProviderFactory.getProvider(options.database);
|
|
142
|
+
const sql = provider.getUpgradeSql(fromModel, model, true);
|
|
143
|
+
if (options.targetPath) {
|
|
144
|
+
fileHelper_1.FileHelper.writeFileSync(options.targetPath, sql);
|
|
145
|
+
}
|
|
146
|
+
return sql;
|
|
147
|
+
}
|
|
123
148
|
/**
|
|
124
149
|
* Generate a JSON file.
|
|
125
150
|
* @param options the options, required: `database`, `sourceFolder`, `targetPath`.
|
|
@@ -131,6 +156,17 @@ class DbmService {
|
|
|
131
156
|
}
|
|
132
157
|
return JSON.stringify(model, null, 2);
|
|
133
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* Generate markdown files from a json file
|
|
161
|
+
* @param jsonFile the json file path
|
|
162
|
+
* @param markdownFolder the folder to which we will write
|
|
163
|
+
* @param force If true, delete all files whose extension matched, default: `false`.
|
|
164
|
+
* @param fileExtension generated file extension, default: `.db.md`.
|
|
165
|
+
*/
|
|
166
|
+
static fromJsonFile(jsonFile, markdownFolder, force = false, fileExtension = '.db.md') {
|
|
167
|
+
const model = JSON.parse(fileHelper_1.FileHelper.readJsonFileSync(jsonFile));
|
|
168
|
+
this.toMarkdown(model, markdownFolder, force, fileExtension);
|
|
169
|
+
}
|
|
134
170
|
/**
|
|
135
171
|
* Generate markdown files from a model
|
|
136
172
|
* @param model the model object with
|
|
@@ -139,20 +175,44 @@ class DbmService {
|
|
|
139
175
|
* @param fileExtension generated file extension, default: `.db.md`.
|
|
140
176
|
*/
|
|
141
177
|
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
|
-
}
|
|
178
|
+
if (force && fs.existsSync(markdownFolder)) {
|
|
179
|
+
fileHelper_1.FileHelper.removeAllFilesSync(markdownFolder, fileExtension);
|
|
180
|
+
}
|
|
181
|
+
if (!fs.existsSync(markdownFolder)) {
|
|
182
|
+
fileHelper_1.FileHelper.mkdirSync(markdownFolder);
|
|
151
183
|
}
|
|
152
184
|
model.tables.forEach((table) => {
|
|
153
185
|
markdownWriter_1.MarkdownWriter.renderTable(table, path.join(markdownFolder, `${table.name}${fileExtension}`));
|
|
154
186
|
});
|
|
155
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Generate a index file for a model
|
|
190
|
+
* @param model the model object with
|
|
191
|
+
* @param markdownFolder the folder to which we will write
|
|
192
|
+
* @param filename generated file name, default: `index.md`.
|
|
193
|
+
*/
|
|
194
|
+
static genIndexFile(model, markdownFolder, filename = 'index.md') {
|
|
195
|
+
const file = path.join(markdownFolder, filename);
|
|
196
|
+
fileHelper_1.FileHelper.removeFileSync(file);
|
|
197
|
+
let data = '# Database Design\n\n';
|
|
198
|
+
data += '## Index\n\n';
|
|
199
|
+
const columnWidths = [5, 6];
|
|
200
|
+
model.tables.forEach((table) => {
|
|
201
|
+
if (table.name.length * 2 + 10 > columnWidths[0]) {
|
|
202
|
+
columnWidths[0] = table.name.length * 2 + 10;
|
|
203
|
+
}
|
|
204
|
+
if (table.comment && table.comment.length > columnWidths[1]) {
|
|
205
|
+
columnWidths[1] = table.comment.length;
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
data += `| ${'Table'.padEnd(columnWidths[0], ' ')} | ${'Comment'.padEnd(columnWidths[1], ' ')} |\n`;
|
|
209
|
+
data += `| ${''.padEnd(columnWidths[0], '-')} | ${''.padEnd(columnWidths[1], '-')} |\n`;
|
|
210
|
+
model.tables.forEach((table) => {
|
|
211
|
+
const name = `[${table.name}](${table.name}.db.md)`;
|
|
212
|
+
data += `| ${name.padEnd(columnWidths[0], ' ')} | ${table.comment?.padEnd(columnWidths[1], ' ')} |\n`;
|
|
213
|
+
});
|
|
214
|
+
fileHelper_1.FileHelper.writeFileSync(file, data);
|
|
215
|
+
}
|
|
156
216
|
/**
|
|
157
217
|
* Get a model object.
|
|
158
218
|
* @param options the options, required: `database`, `sourceFolder`.
|
|
@@ -168,6 +228,20 @@ class DbmService {
|
|
|
168
228
|
});
|
|
169
229
|
return model;
|
|
170
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Generate markdown files from a database
|
|
233
|
+
* @param dbOptions the datbase connection configure
|
|
234
|
+
* @param markdownFolder the folder to which we will write
|
|
235
|
+
* @param force If true, delete all files whose extension matched, default: `false`.
|
|
236
|
+
* @param fileExtension generated file extension, default: `.db.md`.
|
|
237
|
+
*/
|
|
238
|
+
static async fromDatabase(dbOptions, markdownFolder, force = false, fileExtension = '.db.md') {
|
|
239
|
+
const provider = providerFactory_1.ProviderFactory.getImportProvider(databaseTypes_1.DatabaseTypes.mariadb);
|
|
240
|
+
const model = await provider.getModel(dbOptions);
|
|
241
|
+
this.toMarkdown(model, markdownFolder, force, fileExtension);
|
|
242
|
+
// generate an index.md for the imported model
|
|
243
|
+
this.genIndexFile(model, markdownFolder);
|
|
244
|
+
}
|
|
171
245
|
}
|
|
172
246
|
exports.DbmService = DbmService;
|
|
173
247
|
//# 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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "db-modeling-markdown",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.1",
|
|
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
|
-
}
|