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.
Files changed (114) hide show
  1. package/CHANGELOG.md +19 -4
  2. package/CONTRIBUTING.md +34 -9
  3. package/README.md +92 -48
  4. package/dist/dialects/core/dbImportProvider.d.ts +5 -0
  5. package/dist/dialects/core/dbImportProvider.js +7 -0
  6. package/dist/dialects/core/dbImportProvider.js.map +1 -0
  7. package/dist/dialects/core/dbProvider.d.ts +19 -6
  8. package/dist/dialects/core/dbProvider.js +40 -6
  9. package/dist/dialects/core/dbProvider.js.map +1 -1
  10. package/dist/dialects/core/dbUtils.d.ts +35 -0
  11. package/dist/dialects/core/dbUtils.js +159 -0
  12. package/dist/dialects/core/dbUtils.js.map +1 -0
  13. package/dist/dialects/core/providerFactory.d.ts +3 -1
  14. package/dist/dialects/core/providerFactory.js +28 -3
  15. package/dist/dialects/core/providerFactory.js.map +1 -1
  16. package/dist/dialects/db2/db2Provider.d.ts +2 -1
  17. package/dist/dialects/db2/db2Provider.js +2 -3
  18. package/dist/dialects/db2/db2Provider.js.map +1 -1
  19. package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -0
  20. package/dist/dialects/mariadb/mariaDbImportProvider.js +254 -0
  21. package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -0
  22. package/dist/dialects/mariadb/mariaDbProvider.d.ts +11 -11
  23. package/dist/dialects/mariadb/mariaDbProvider.js +129 -214
  24. package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
  25. package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -0
  26. package/dist/dialects/mariadb/mariaDbUtil.js +23 -0
  27. package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -0
  28. package/dist/dialects/mssql/msSqlProvider.d.ts +2 -1
  29. package/dist/dialects/mssql/msSqlProvider.js +4 -8
  30. package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
  31. package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -0
  32. package/dist/dialects/mysql/mySqlImportProvider.js +8 -0
  33. package/dist/dialects/mysql/mySqlImportProvider.js.map +1 -0
  34. package/dist/dialects/mysql/mySqlProvider.d.ts +2 -20
  35. package/dist/dialects/mysql/mySqlProvider.js +2 -233
  36. package/dist/dialects/mysql/mySqlProvider.js.map +1 -1
  37. package/dist/dialects/oracle/oracleProvider.d.ts +5 -1
  38. package/dist/dialects/oracle/oracleProvider.js +14 -6
  39. package/dist/dialects/oracle/oracleProvider.js.map +1 -1
  40. package/dist/dialects/postgresql/postgreSqlProvider.d.ts +2 -1
  41. package/dist/dialects/postgresql/postgreSqlProvider.js +4 -1
  42. package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
  43. package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +2 -1
  44. package/dist/dialects/sqlite/sqliteSqlProvider.js +1 -2
  45. package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
  46. package/dist/index.d.ts +9 -4
  47. package/dist/index.js +5 -5
  48. package/dist/index.js.map +1 -1
  49. package/dist/lib/code-flow/codeFlow.js.map +1 -1
  50. package/dist/lib/markdown-object/markdownModel.d.ts +0 -4
  51. package/dist/lib/markdown-object/markdownModel.js +0 -4
  52. package/dist/lib/markdown-object/markdownModel.js.map +1 -1
  53. package/dist/lib/markdown-object/markdownReader.d.ts +19 -0
  54. package/dist/lib/markdown-object/markdownReader.js +85 -28
  55. package/dist/lib/markdown-object/markdownReader.js.map +1 -1
  56. package/dist/lib/markdown-object/markdownWriter.d.ts +25 -1
  57. package/dist/lib/markdown-object/markdownWriter.js +117 -52
  58. package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
  59. package/dist/lib/markdown-object/readerContext.js +3 -1
  60. package/dist/lib/markdown-object/readerContext.js.map +1 -1
  61. package/dist/lib/utils/fileHelper.d.ts +4 -0
  62. package/dist/lib/utils/fileHelper.js +20 -1
  63. package/dist/lib/utils/fileHelper.js.map +1 -1
  64. package/dist/lib/utils/logger.js.map +1 -1
  65. package/dist/lib/utils/markdownParser.js +3 -6
  66. package/dist/lib/utils/markdownParser.js.map +1 -1
  67. package/dist/lib/utils/sqlHelper.js.map +1 -1
  68. package/dist/lib/utils/textFileReader.js +2 -2
  69. package/dist/lib/utils/textFileReader.js.map +1 -1
  70. package/dist/lib/utils/textHelper.d.ts +18 -0
  71. package/dist/lib/utils/textHelper.js +62 -0
  72. package/dist/lib/utils/textHelper.js.map +1 -1
  73. package/dist/{services → models}/databaseTypes.d.ts +0 -0
  74. package/dist/{services → models}/databaseTypes.js +0 -0
  75. package/dist/models/databaseTypes.js.map +1 -0
  76. package/dist/models/dbColumn.d.ts +43 -0
  77. package/dist/models/dbColumn.js +3 -0
  78. package/dist/models/dbColumn.js.map +1 -0
  79. package/dist/models/dbDiffModel.d.ts +43 -0
  80. package/dist/models/dbDiffModel.js +3 -0
  81. package/dist/models/dbDiffModel.js.map +1 -0
  82. package/dist/models/dbForeignKey.d.ts +33 -0
  83. package/dist/models/dbForeignKey.js +3 -0
  84. package/dist/models/dbForeignKey.js.map +1 -0
  85. package/dist/models/dbIndex.d.ts +28 -0
  86. package/dist/models/dbIndex.js +3 -0
  87. package/dist/models/dbIndex.js.map +1 -0
  88. package/dist/models/dbIndexType.d.ts +8 -0
  89. package/dist/models/dbIndexType.js +13 -0
  90. package/dist/models/dbIndexType.js.map +1 -0
  91. package/dist/models/dbModel.d.ts +10 -0
  92. package/dist/{services → models}/dbModel.js +0 -0
  93. package/dist/{services → models}/dbModel.js.map +1 -1
  94. package/dist/models/dbPrimaryKey.d.ts +16 -0
  95. package/dist/models/dbPrimaryKey.js +3 -0
  96. package/dist/models/dbPrimaryKey.js.map +1 -0
  97. package/dist/models/dbTable.d.ts +49 -0
  98. package/dist/models/dbTable.js +3 -0
  99. package/dist/models/dbTable.js.map +1 -0
  100. package/dist/models/dbTableMarkdown.d.ts +34 -0
  101. package/dist/models/dbTableMarkdown.js +3 -0
  102. package/dist/models/dbTableMarkdown.js.map +1 -0
  103. package/dist/services/dbOptions.d.ts +35 -0
  104. package/dist/services/dbOptions.js +18 -0
  105. package/dist/services/dbOptions.js.map +1 -0
  106. package/dist/services/dbmOptions.d.ts +7 -3
  107. package/dist/services/dbmOptions.js +7 -3
  108. package/dist/services/dbmOptions.js.map +1 -1
  109. package/dist/services/dbmService.d.ts +36 -1
  110. package/dist/services/dbmService.js +87 -13
  111. package/dist/services/dbmService.js.map +1 -1
  112. package/package.json +32 -40
  113. package/dist/services/databaseTypes.js.map +0 -1
  114. package/dist/services/dbModel.d.ts +0 -135
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MarkdownReader = void 0;
4
+ const markdownParser_1 = require("../utils/markdownParser");
4
5
  const textFileReader_1 = require("../utils/textFileReader");
6
+ const textHelper_1 = require("../utils/textHelper");
5
7
  const markdownModel_1 = require("./markdownModel");
6
8
  const readerContext_1 = require("./readerContext");
7
- const markdownParser_1 = require("../utils/markdownParser");
8
9
  /**
9
10
  * Main functions:
10
11
  * read a markdown file into an object
@@ -27,13 +28,11 @@ class MarkdownReader {
27
28
  }
28
29
  let propertyName = MarkdownReader.normalize(element.name, true);
29
30
  // case: the property is an array
30
- let isArray = false;
31
31
  if (propertyName.endsWith('[]')) {
32
- isArray = true;
33
32
  propertyName = propertyName.substring(0, propertyName.length - 2).trim();
34
33
  }
35
34
  // generate the property
36
- context.push(propertyName, isArray ? [] : null);
35
+ context.push(propertyName, null);
37
36
  }
38
37
  static createListItem(array, context) {
39
38
  const element = {
@@ -90,6 +89,7 @@ class MarkdownReader {
90
89
  reader.move();
91
90
  context.current = [];
92
91
  const headers = MarkdownReader.normalizeTableRow(headerLine, true);
92
+ const isArray = MarkdownReader.isArrayTable(headers);
93
93
  // now: it is a table, read table rows
94
94
  while (reader.hasMore(1)) {
95
95
  dataLine = reader.peak().trim();
@@ -105,26 +105,40 @@ class MarkdownReader {
105
105
  reader.move();
106
106
  // read a data row
107
107
  const cells = MarkdownReader.normalizeTableRow(dataLine);
108
- // data row -> data row object
109
- const rowObject = {};
110
- headers.some((header, index) => {
111
- if (index >= cells.length) {
112
- return true;
108
+ if (isArray) {
109
+ if (!context.current) {
110
+ context.current = [];
111
+ }
112
+ context.current.push(cells);
113
+ }
114
+ else {
115
+ // data row -> data row object
116
+ const rowObject = {};
117
+ headers.some((header, index) => {
118
+ if (index >= cells.length) {
119
+ return true;
120
+ }
121
+ rowObject[header] = cells[index];
122
+ return false;
123
+ });
124
+ // put into the result
125
+ if (!MarkdownReader.mergeTableRow(headers, rowObject, context)) {
126
+ context.current.push(rowObject);
113
127
  }
114
- rowObject[header] = cells[index];
115
- return false;
116
- });
117
- // put into the result
118
- if (!MarkdownReader.mergeTableRow(headers, rowObject, context)) {
119
- context.current.push(rowObject);
120
128
  }
121
129
  }
122
130
  return false;
123
131
  }
132
+ static isArrayTable(headers) {
133
+ for (let i = 0; i < headers.length; i += 1) {
134
+ if (headers[i].length > 0) {
135
+ return false;
136
+ }
137
+ }
138
+ return true;
139
+ }
124
140
  static mergeTableRow(headers, rowObject, context) {
125
- if (context.current.length === 0
126
- || rowObject[headers[0]] !== ''
127
- || rowObject[headers[1]] !== '') {
141
+ if (context.current.length === 0 || rowObject[headers[0]] !== '' || rowObject[headers[1]] !== '') {
128
142
  return false;
129
143
  }
130
144
  const lastObject = context.current[context.current.length - 1];
@@ -141,33 +155,34 @@ class MarkdownReader {
141
155
  if (!value) {
142
156
  return value;
143
157
  }
144
- let newValue = value.trim();
158
+ let newValue = textHelper_1.TextHelper.decodeMarkdown(value.trim());
145
159
  // case: inline code
146
160
  if (newValue.length >= 2 && newValue[0] === '`' && newValue[newValue.length - 1] === '`') {
147
- newValue = newValue.substring(1, newValue.length - 1);
161
+ const blockValue = newValue.substring(1, newValue.length - 1);
148
162
  if (!isPropertyName) {
149
- if (newValue.toLocaleLowerCase() === 'yes'
150
- || newValue.toLocaleLowerCase() === 'true') {
163
+ if (blockValue.toLocaleLowerCase() === 'yes' || blockValue.toLocaleLowerCase() === 'true') {
151
164
  newValue = true;
152
165
  }
153
- else if (newValue.toLocaleLowerCase() === 'no'
154
- || newValue.toLocaleLowerCase() === 'false') {
166
+ else if (blockValue.toLocaleLowerCase() === 'no' || blockValue.toLocaleLowerCase() === 'false') {
155
167
  newValue = false;
156
168
  }
157
- else if (newValue.toLocaleLowerCase() === 'null') {
169
+ else if (blockValue.toLocaleLowerCase() === 'null') {
158
170
  newValue = null;
159
171
  }
160
172
  else {
161
- const testValue = parseFloat(newValue);
173
+ const testValue = parseFloat(blockValue);
162
174
  // eslint-disable-next-line no-restricted-globals
163
175
  if (!isNaN(testValue)) {
164
176
  newValue = testValue;
165
177
  }
166
178
  }
167
179
  }
180
+ else {
181
+ newValue = newValue.substring(1, newValue.length - 1);
182
+ }
168
183
  }
169
184
  // case: produce a good property name
170
- if (isPropertyName && typeof (newValue) === 'string' && newValue.length > 0) {
185
+ if (isPropertyName && typeof newValue === 'string' && newValue.length > 0) {
171
186
  // case: remove spaces
172
187
  newValue = newValue.replace(' ', '');
173
188
  // case: camelCase
@@ -195,7 +210,49 @@ class MarkdownReader {
195
210
  while (reader.hasMore()) {
196
211
  MarkdownReader.readLine(reader.read().trim(), reader, context);
197
212
  }
198
- return context.root;
213
+ return MarkdownReader.upgrade(context.root);
214
+ }
215
+ /**
216
+ * convert the markdown object to the model object
217
+ * @param table the markdown object
218
+ * @returns the dbTable object
219
+ */
220
+ static upgrade(table) {
221
+ if (table.name) {
222
+ return MarkdownReader.upgradeV1(table);
223
+ }
224
+ return MarkdownReader.upgradeV2(table);
225
+ }
226
+ /**
227
+ * Version 1
228
+ * @param table the markdown object
229
+ * @returns the dbTable object
230
+ */
231
+ static upgradeV1(table) {
232
+ return {
233
+ name: table.name,
234
+ comment: table.comment,
235
+ primaryKey: table.primaryKey,
236
+ indexes: table.indexes || [],
237
+ foreignKeys: table.foreignKeys || [],
238
+ columns: table.columns || [],
239
+ };
240
+ }
241
+ /**
242
+ * Version 2
243
+ * @param table the markdown object
244
+ * @returns the dbTable object
245
+ */
246
+ static upgradeV2(table) {
247
+ const basic = table.table && table.table.length > 0 ? table.table[0] : undefined;
248
+ return {
249
+ name: basic?.name,
250
+ comment: basic?.comment,
251
+ primaryKey: table.primaryKey?.length > 0 ? table.primaryKey[0] : undefined,
252
+ indexes: table.indexes || [],
253
+ foreignKeys: table.foreignKeys || [],
254
+ columns: table.columns || [],
255
+ };
199
256
  }
200
257
  }
201
258
  exports.MarkdownReader = MarkdownReader;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownReader.js","sourceRoot":"","sources":["../../../src/lib/markdown-object/markdownReader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdownReader.js","sourceRoot":"","sources":["../../../src/lib/markdown-object/markdownReader.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,36 @@
1
1
  export declare class MarkdownWriter {
2
2
  /**
3
- * Render an array into a markdown table
3
+ * Render an array to a markdown table
4
4
  * - Support object
5
5
  * @param items array values
6
6
  */
7
7
  private static renderArray;
8
+ /**
9
+ * Render an array to a markdown table without headers
10
+ * @param items array values
11
+ * @returns a string of table without headers
12
+ */
13
+ private static render2dArray;
14
+ /**
15
+ * Render an array to a markdown table with headers
16
+ * @param items array values
17
+ * @returns a string of table with headers
18
+ */
19
+ private static renderObjectArray;
20
+ /**
21
+ * Render an array to a markdown table
22
+ * @param headers array values of table headers
23
+ * @param rows 2-d array values of table rows
24
+ * @returns a string of a markdown table
25
+ */
26
+ private static toMarkdownTable;
8
27
  private static renderKey;
9
28
  private static renderObject;
10
29
  static renderTable(table: any, markdownPath: string): string;
11
30
  static renderValue(value: any): string;
31
+ /**
32
+ * Convert the dbTable object to markdown table for serializing
33
+ * @param table the db table
34
+ */
35
+ private static onMarkdown;
12
36
  }
@@ -2,9 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MarkdownWriter = void 0;
4
4
  const fileHelper_1 = require("../utils/fileHelper");
5
+ const textHelper_1 = require("../utils/textHelper");
5
6
  class MarkdownWriter {
6
7
  /**
7
- * Render an array into a markdown table
8
+ * Render an array to a markdown table
8
9
  * - Support object
9
10
  * @param items array values
10
11
  */
@@ -12,66 +13,109 @@ class MarkdownWriter {
12
13
  if (!items || items.length === 0) {
13
14
  return '';
14
15
  }
15
- let data = '';
16
16
  const obj = items[0];
17
- // get headers adn rows and width
18
- const columnsWidth = [];
17
+ if (Array.isArray(obj)) {
18
+ return MarkdownWriter.render2dArray(items);
19
+ }
20
+ return MarkdownWriter.renderObjectArray(items);
21
+ }
22
+ /**
23
+ * Render an array to a markdown table without headers
24
+ * @param items array values
25
+ * @returns a string of table without headers
26
+ */
27
+ static render2dArray(items) {
28
+ const headers = [];
29
+ const rows = [];
30
+ let length = 0;
31
+ items.forEach((item) => {
32
+ if (item.length > length) {
33
+ length = item.length;
34
+ }
35
+ const row = [];
36
+ item.forEach((value) => {
37
+ const cell = MarkdownWriter.renderValue(value);
38
+ row.push(cell);
39
+ });
40
+ rows.push(row);
41
+ });
42
+ // init empty headers
43
+ for (let i = 0; i < length; i += 1) {
44
+ headers.push('');
45
+ }
46
+ return MarkdownWriter.toMarkdownTable(headers, rows);
47
+ }
48
+ /**
49
+ * Render an array to a markdown table with headers
50
+ * @param items array values
51
+ * @returns a string of table with headers
52
+ */
53
+ static renderObjectArray(items) {
54
+ const obj = items[0];
19
55
  const headers = [];
20
56
  const rows = [];
21
57
  Object.keys(obj).forEach((key) => {
22
58
  const renderredKey = MarkdownWriter.renderKey(key);
23
59
  headers.push(renderredKey);
24
- let width = 1;
25
- if (renderredKey.length > width) {
26
- width = renderredKey.length;
27
- }
28
- columnsWidth.push(width);
29
60
  });
30
61
  items.forEach((item) => {
31
62
  const row = [];
32
- Object.keys(obj).forEach((key, columnIndex) => {
63
+ Object.keys(obj).forEach((key) => {
33
64
  const cell = MarkdownWriter.renderValue(item[key]);
34
65
  row.push(cell);
35
- const width = columnsWidth[columnIndex];
36
- if (cell.length > width) {
37
- columnsWidth[columnIndex] = cell.length;
38
- }
39
66
  });
40
67
  rows.push(row);
41
68
  });
42
- // pad headers and rows
43
- headers.forEach((header, index) => {
44
- const width = columnsWidth[index];
45
- if (header.length < width) {
46
- headers[index] = header.padEnd(width, ' ');
69
+ return MarkdownWriter.toMarkdownTable(headers, rows);
70
+ }
71
+ /**
72
+ * Render an array to a markdown table
73
+ * @param headers array values of table headers
74
+ * @param rows 2-d array values of table rows
75
+ * @returns a string of a markdown table
76
+ */
77
+ static toMarkdownTable(headers, rows) {
78
+ // get headers and rows and width
79
+ const columnsWidth = [];
80
+ headers.forEach((header) => {
81
+ let width = 1;
82
+ const cellWidth = textHelper_1.TextHelper.width(header);
83
+ if (cellWidth > width) {
84
+ width = cellWidth;
47
85
  }
86
+ columnsWidth.push(width);
48
87
  });
49
88
  rows.forEach((row) => {
50
- row.forEach((cell, index) => {
51
- const width = columnsWidth[index];
52
- if (cell.length < width) {
53
- row[index] = cell.padEnd(width, ' ');
89
+ row.forEach((cell, columnIndex) => {
90
+ const width = columnsWidth[columnIndex];
91
+ const cellWidth = textHelper_1.TextHelper.width(cell);
92
+ if (cellWidth > width) {
93
+ columnsWidth[columnIndex] = cellWidth;
54
94
  }
55
95
  });
56
96
  });
97
+ let table = '';
98
+ let headerText = '|';
57
99
  let headerLine = '|';
58
- let line = '|';
59
- headers.forEach((header) => {
60
- headerLine += ` ${header} |`;
61
- line += ` ${''.padEnd(header.length, '-')} |`;
100
+ // pad headers and rows
101
+ headers.forEach((header, index) => {
102
+ const width = columnsWidth[index];
103
+ headerText += ` ${textHelper_1.TextHelper.padEnd(header, width, ' ')} |`;
104
+ headerLine += ` ${''.padEnd(width, '-')} |`;
62
105
  });
63
- data += `${headerLine}\n`;
64
- data += `${line}\n`;
106
+ table += `${headerText}\n`;
107
+ table += `${headerLine}\n`;
65
108
  rows.forEach((row) => {
66
- line = '|';
67
- row.forEach((cell) => {
68
- line += ` ${cell} |`;
109
+ let rowText = '|';
110
+ row.forEach((cell, index) => {
111
+ const width = columnsWidth[index];
112
+ rowText += ` ${textHelper_1.TextHelper.padEnd(cell, width, ' ')} |`;
69
113
  });
70
- data += `${line}\n`;
114
+ table += `${rowText}\n`;
71
115
  });
72
- return data;
116
+ return table;
73
117
  }
74
- static renderKey(key, isArrayProperty = false) {
118
+ static renderKey(key) {
75
119
  if (!key) {
76
120
  return '';
77
121
  }
@@ -84,14 +128,14 @@ class MarkdownWriter {
84
128
  }
85
129
  else {
86
130
  const prevCode = value.charCodeAt(i - 1);
87
- const preIsLowerCase = (prevCode >= 97 && prevCode <= 122);
88
- const curIsCapitalCase = (currentCode >= 65 && currentCode <= 90);
131
+ const preIsLowerCase = prevCode >= 97 && prevCode <= 122;
132
+ const curIsCapitalCase = currentCode >= 65 && currentCode <= 90;
89
133
  if (preIsLowerCase && curIsCapitalCase) {
90
134
  value = `${value.substring(0, i)} ${value.substring(i)}`;
91
135
  }
92
136
  }
93
137
  }
94
- value = `\`${value}${isArrayProperty ? '[]' : ''}\``;
138
+ value = `\`${value}\``;
95
139
  return value;
96
140
  }
97
141
  static renderObject(obj, level = 1) {
@@ -101,7 +145,7 @@ class MarkdownWriter {
101
145
  Object.keys(obj).forEach((propKey) => {
102
146
  const propValue = obj[propKey];
103
147
  if (Array.isArray(propValue)) {
104
- objects += `\n${''.padEnd(level + 1, '#')} ${MarkdownWriter.renderKey(propKey, true)}\n`;
148
+ objects += `\n${''.padEnd(level + 1, '#')} ${MarkdownWriter.renderKey(propKey)}\n`;
105
149
  const subData = MarkdownWriter.renderArray(propValue);
106
150
  if (subData.length > 0) {
107
151
  objects += `\n${subData}`;
@@ -117,7 +161,7 @@ class MarkdownWriter {
117
161
  else {
118
162
  const text = MarkdownWriter.renderValue(propValue);
119
163
  listItems += `- ${MarkdownWriter.renderKey(propKey)}`;
120
- listItems += `:${text.length > 0 ? ` ${text}` : ''}\n`;
164
+ listItems += text.length > 0 ? `:${text}\n` : ':\n';
121
165
  }
122
166
  });
123
167
  if (listItems.length > 0) {
@@ -128,9 +172,10 @@ class MarkdownWriter {
128
172
  }
129
173
  static renderTable(table, markdownPath) {
130
174
  let data = `# Table: ${table.name}\n`;
131
- const subData = MarkdownWriter.renderObject(table);
175
+ const newTable = MarkdownWriter.onMarkdown(table);
176
+ const subData = MarkdownWriter.renderObject(newTable);
132
177
  if (subData.length > 0) {
133
- data += `\n${subData}`;
178
+ data += `${subData}`;
134
179
  }
135
180
  if (markdownPath) {
136
181
  fileHelper_1.FileHelper.writeFileSync(markdownPath, data);
@@ -141,18 +186,38 @@ class MarkdownWriter {
141
186
  if (value === null) {
142
187
  return '`null`';
143
188
  }
144
- if (typeof (value) !== 'string') {
145
- return `\`${value.toString()}\``;
189
+ if (value === undefined) {
190
+ return '``';
146
191
  }
147
- // case: ' text ' => '` text `'
148
- // case: '` text `' => '`` text ``'
149
- if (value.startsWith(' ')
150
- || value.startsWith('`')
151
- || value.endsWith(' ')
152
- || value.endsWith('`')) {
153
- return `\`${value}\``;
192
+ if (typeof value === 'boolean') {
193
+ return value ? '`Yes`' : '`No`';
154
194
  }
155
- return value;
195
+ if (typeof value !== 'string') {
196
+ return `\`${value.toString()}\``;
197
+ }
198
+ const text = textHelper_1.TextHelper.encodeMarkdown(value);
199
+ // TODO: get escaped text
200
+ return text;
201
+ }
202
+ /**
203
+ * Convert the dbTable object to markdown table for serializing
204
+ * @param table the db table
205
+ */
206
+ static onMarkdown(table) {
207
+ return {
208
+ table: [
209
+ {
210
+ name: table.name,
211
+ comment: table.comment,
212
+ characterSet: table.characterSet,
213
+ collation: table.collation,
214
+ },
215
+ ],
216
+ primaryKey: table.primaryKey ? [table.primaryKey] : [],
217
+ indexes: table.indexes,
218
+ foreignKeys: table.foreignKeys,
219
+ columns: table.columns,
220
+ };
156
221
  }
157
222
  }
158
223
  exports.MarkdownWriter = MarkdownWriter;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownWriter.js","sourceRoot":"","sources":["../../../src/lib/markdown-object/markdownWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdownWriter.js","sourceRoot":"","sources":["../../../src/lib/markdown-object/markdownWriter.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,9 @@ class ReadContext {
12
12
  }
13
13
  set current(value) {
14
14
  this.stacks[this.stacks.length - 1] = value;
15
- this.stacks[this.stacks.length - 2][this.currentKey] = value;
15
+ if (this.stacks.length >= 2) {
16
+ this.stacks[this.stacks.length - 2][this.currentKey] = value;
17
+ }
16
18
  }
17
19
  get currentKey() {
18
20
  return this.stackKeys[this.stackKeys.length - 1];
@@ -1 +1 @@
1
- {"version":3,"file":"readerContext.js","sourceRoot":"","sources":["../../../src/lib/markdown-object/readerContext.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IAAxB;QACC,WAAM,GAAU,CAAC,EAAE,CAAC,CAAC;QAErB,oBAAoB;QACZ,cAAS,GAAa,EAAE,CAAC;IA4ClC,CAAC;IA1CA,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAW,OAAO,CAAC,KAAU;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;IAC9D,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC3B,CAAC;IAEM,GAAG,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;SACrB;IACF,CAAC;IAEM,IAAI,CAAC,GAAW,EAAE,QAAa,IAAI;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAEM,kBAAkB,CAAC,GAAW,EAAE,KAAU;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACvB,IAAI,GAAG,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;SACnB;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClB,CAAC;CACD;AAhDD,kCAgDC"}
1
+ {"version":3,"file":"readerContext.js","sourceRoot":"","sources":["../../../src/lib/markdown-object/readerContext.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IAAxB;QACC,WAAM,GAAU,CAAC,EAAE,CAAC,CAAA;QAEpB,oBAAoB;QACZ,cAAS,GAAa,EAAE,CAAA;IA8CjC,CAAC;IA5CA,IAAW,OAAO;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,IAAW,OAAO,CAAC,KAAU;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;QAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAA;SAC5D;IACF,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAA;IAC1B,CAAC;IAEM,GAAG,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,QAAQ,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YACjB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;SACpB;IACF,CAAC;IAEM,IAAI,CAAC,GAAW,EAAE,QAAa,IAAI;QACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACzB,CAAC;IAED,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IACtB,CAAC;IAEM,kBAAkB,CAAC,GAAW,EAAE,KAAU;QAChD,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;QACtB,IAAI,GAAG,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;YACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAA;SAClB;QACD,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;IACjB,CAAC;CACD;AAlDD,kCAkDC"}
@@ -2,10 +2,14 @@
2
2
  import * as fs from 'fs';
3
3
  export declare class FileHelper {
4
4
  static mkdirSync(filename: string): void;
5
+ static removeAllFilesSync(dirname: string, fileExtension: string): void;
6
+ static removeFileSync(filename: string): void;
5
7
  static readdirSync(dirname: string): fs.Dirent[];
6
8
  static readFileSync(filepath: string): string;
7
9
  static readJsonFileSync(filename: string): any;
8
10
  static rmdirSync(filename: string): void;
9
11
  static writeFileSync(filepath: string, data: string): void;
10
12
  static writeJsonFileSync(filename: string, data: any): void;
13
+ static getResourceFile(...paths: string[]): string;
14
+ static getAppPath(...paths: string[]): string;
11
15
  }
@@ -9,6 +9,19 @@ class FileHelper {
9
9
  fs.mkdirSync(filename, { recursive: true });
10
10
  }
11
11
  }
12
+ static removeAllFilesSync(dirname, fileExtension) {
13
+ const files = FileHelper.readdirSync(dirname);
14
+ files.forEach((file) => {
15
+ if (file.name.endsWith(fileExtension)) {
16
+ fs.unlinkSync(path.join(dirname, file.name));
17
+ }
18
+ });
19
+ }
20
+ static removeFileSync(filename) {
21
+ if (fs.existsSync(filename)) {
22
+ fs.unlinkSync(filename);
23
+ }
24
+ }
12
25
  static readdirSync(dirname) {
13
26
  return fs.readdirSync(dirname, { withFileTypes: true });
14
27
  }
@@ -21,7 +34,7 @@ class FileHelper {
21
34
  }
22
35
  static rmdirSync(filename) {
23
36
  if (fs.existsSync(filename)) {
24
- fs.rmdirSync(filename, { recursive: true });
37
+ fs.rmSync(filename, { recursive: true });
25
38
  }
26
39
  }
27
40
  static writeFileSync(filepath, data) {
@@ -34,6 +47,12 @@ class FileHelper {
34
47
  }
35
48
  this.writeFileSync(filename, JSON.stringify(data, null, 2));
36
49
  }
50
+ static getResourceFile(...paths) {
51
+ return path.join(path.dirname(__dirname), '../resources', ...paths);
52
+ }
53
+ static getAppPath(...paths) {
54
+ return path.join(path.dirname(__dirname), '..', ...paths);
55
+ }
37
56
  }
38
57
  exports.FileHelper = FileHelper;
39
58
  //# sourceMappingURL=fileHelper.js.map