db-modeling-markdown 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +168 -164
  2. package/dist/dialects/core/dbImportProvider.d.ts +5 -5
  3. package/dist/dialects/core/dbImportProvider.js +6 -6
  4. package/dist/dialects/core/dbProvider.d.ts +34 -34
  5. package/dist/dialects/core/dbProvider.js +119 -119
  6. package/dist/dialects/core/dbProvider.js.map +1 -1
  7. package/dist/dialects/core/dbUtils.d.ts +35 -35
  8. package/dist/dialects/core/dbUtils.js +157 -158
  9. package/dist/dialects/core/dbUtils.js.map +1 -1
  10. package/dist/dialects/core/providerFactory.d.ts +7 -7
  11. package/dist/dialects/core/providerFactory.js +63 -63
  12. package/dist/dialects/core/providerFactory.js.map +1 -1
  13. package/dist/dialects/db2/db2Provider.d.ts +19 -19
  14. package/dist/dialects/db2/db2Provider.js +185 -186
  15. package/dist/dialects/db2/db2Provider.js.map +1 -1
  16. package/dist/dialects/mariadb/mariaDbImportProvider.d.ts +19 -19
  17. package/dist/dialects/mariadb/mariaDbImportProvider.js +260 -260
  18. package/dist/dialects/mariadb/mariaDbImportProvider.js.map +1 -1
  19. package/dist/dialects/mariadb/mariaDbProvider.d.ts +18 -18
  20. package/dist/dialects/mariadb/mariaDbProvider.js +152 -153
  21. package/dist/dialects/mariadb/mariaDbProvider.js.map +1 -1
  22. package/dist/dialects/mariadb/mariaDbUtil.d.ts +6 -6
  23. package/dist/dialects/mariadb/mariaDbUtil.js +22 -22
  24. package/dist/dialects/mariadb/mariaDbUtil.js.map +1 -1
  25. package/dist/dialects/mssql/msSqlProvider.d.ts +21 -21
  26. package/dist/dialects/mssql/msSqlProvider.js +264 -265
  27. package/dist/dialects/mssql/msSqlProvider.js.map +1 -1
  28. package/dist/dialects/mysql/mySqlImportProvider.d.ts +3 -3
  29. package/dist/dialects/mysql/mySqlImportProvider.js +7 -7
  30. package/dist/dialects/mysql/mySqlProvider.d.ts +3 -3
  31. package/dist/dialects/mysql/mySqlProvider.js +7 -7
  32. package/dist/dialects/oracle/oracleProvider.d.ts +35 -35
  33. package/dist/dialects/oracle/oracleProvider.js +327 -327
  34. package/dist/dialects/oracle/oracleProvider.js.map +1 -1
  35. package/dist/dialects/postgresql/postgreSqlProvider.d.ts +19 -19
  36. package/dist/dialects/postgresql/postgreSqlProvider.js +172 -173
  37. package/dist/dialects/postgresql/postgreSqlProvider.js.map +1 -1
  38. package/dist/dialects/sqlite/sqliteSqlProvider.d.ts +23 -23
  39. package/dist/dialects/sqlite/sqliteSqlProvider.js +147 -148
  40. package/dist/dialects/sqlite/sqliteSqlProvider.js.map +1 -1
  41. package/dist/index.d.ts +10 -10
  42. package/dist/index.js +9 -9
  43. package/dist/lib/code-flow/codeFlow.d.ts +37 -37
  44. package/dist/lib/code-flow/codeFlow.js +61 -61
  45. package/dist/lib/markdown-object/markdownModel.d.ts +14 -14
  46. package/dist/lib/markdown-object/markdownModel.js +12 -12
  47. package/dist/lib/markdown-object/markdownModel.js.map +1 -1
  48. package/dist/lib/markdown-object/markdownReader.d.ts +39 -39
  49. package/dist/lib/markdown-object/markdownReader.js +261 -261
  50. package/dist/lib/markdown-object/markdownReader.js.map +1 -1
  51. package/dist/lib/markdown-object/markdownWriter.d.ts +36 -36
  52. package/dist/lib/markdown-object/markdownWriter.js +224 -224
  53. package/dist/lib/markdown-object/markdownWriter.js.map +1 -1
  54. package/dist/lib/markdown-object/readerContext.d.ts +12 -12
  55. package/dist/lib/markdown-object/readerContext.js +48 -48
  56. package/dist/lib/markdown-object/readerContext.js.map +1 -1
  57. package/dist/lib/utils/fileHelper.d.ts +14 -15
  58. package/dist/lib/utils/fileHelper.js +58 -57
  59. package/dist/lib/utils/fileHelper.js.map +1 -1
  60. package/dist/lib/utils/logger.d.ts +9 -9
  61. package/dist/lib/utils/logger.js +60 -60
  62. package/dist/lib/utils/logger.js.map +1 -1
  63. package/dist/lib/utils/markdownParser.d.ts +22 -22
  64. package/dist/lib/utils/markdownParser.js +99 -95
  65. package/dist/lib/utils/markdownParser.js.map +1 -1
  66. package/dist/lib/utils/sqlHelper.d.ts +3 -3
  67. package/dist/lib/utils/sqlHelper.js +23 -23
  68. package/dist/lib/utils/sqlHelper.js.map +1 -1
  69. package/dist/lib/utils/systemHelper.d.ts +2 -2
  70. package/dist/lib/utils/systemHelper.js +6 -6
  71. package/dist/lib/utils/textFileReader.d.ts +25 -25
  72. package/dist/lib/utils/textFileReader.js +57 -57
  73. package/dist/lib/utils/textFileReader.js.map +1 -1
  74. package/dist/lib/utils/textHelper.d.ts +21 -21
  75. package/dist/lib/utils/textHelper.js +75 -71
  76. package/dist/lib/utils/textHelper.js.map +1 -1
  77. package/dist/models/databaseTypes.d.ts +33 -33
  78. package/dist/models/databaseTypes.js +37 -37
  79. package/dist/models/databaseTypes.js.map +1 -1
  80. package/dist/models/dbColumn.d.ts +43 -43
  81. package/dist/models/dbColumn.js +2 -2
  82. package/dist/models/dbDiffModel.d.ts +43 -43
  83. package/dist/models/dbDiffModel.js +2 -2
  84. package/dist/models/dbForeignKey.d.ts +33 -33
  85. package/dist/models/dbForeignKey.js +2 -2
  86. package/dist/models/dbIndex.d.ts +28 -28
  87. package/dist/models/dbIndex.js +2 -2
  88. package/dist/models/dbIndexType.d.ts +8 -8
  89. package/dist/models/dbIndexType.js +12 -12
  90. package/dist/models/dbIndexType.js.map +1 -1
  91. package/dist/models/dbModel.d.ts +10 -10
  92. package/dist/models/dbModel.js +2 -2
  93. package/dist/models/dbPrimaryKey.d.ts +16 -16
  94. package/dist/models/dbPrimaryKey.js +2 -2
  95. package/dist/models/dbTable.d.ts +49 -49
  96. package/dist/models/dbTable.js +2 -2
  97. package/dist/models/dbTableMarkdown.d.ts +35 -35
  98. package/dist/models/dbTableMarkdown.js +2 -2
  99. package/dist/resources/mariadb/procAppUpgradeDB.sql +164 -164
  100. package/dist/resources/mariadb/sql-create-table-fk.njk +10 -10
  101. package/dist/resources/mariadb/sql-create-table.njk +11 -11
  102. package/dist/resources/mariadb/sql-create-tables.njk +8 -8
  103. package/dist/resources/mariadb/sql-upgrade-new-table.njk +14 -14
  104. package/dist/services/dbOptions.d.ts +35 -35
  105. package/dist/services/dbOptions.js +17 -17
  106. package/dist/services/dbmOptions.d.ts +28 -28
  107. package/dist/services/dbmOptions.js +34 -34
  108. package/dist/services/dbmService.d.ts +87 -87
  109. package/dist/services/dbmService.js +244 -244
  110. package/dist/services/dbmService.js.map +1 -1
  111. package/package.json +28 -34
  112. package/CHANGELOG.md +0 -81
  113. package/CONTRIBUTING.md +0 -85
@@ -1,39 +1,39 @@
1
- declare type ObjectValueType = null | string | number | boolean;
2
- /**
3
- * Main functions:
4
- * read a markdown file into an object
5
- */
6
- export declare class MarkdownReader {
7
- path: string;
8
- constructor(path: string);
9
- private static createHeader;
10
- private static createListItem;
11
- private static handleHeader;
12
- private static handleList;
13
- private static handleTable;
14
- private static isArrayTable;
15
- private static mergeTableRow;
16
- static normalize(value: string, isPropertyName?: boolean): ObjectValueType;
17
- private static normalizeTableRow;
18
- private static readLine;
19
- toObject(): any;
20
- /**
21
- * convert the markdown object to the model object
22
- * @param table the markdown object
23
- * @returns the dbTable object
24
- */
25
- private static upgrade;
26
- /**
27
- * Version 1
28
- * @param table the markdown object
29
- * @returns the dbTable object
30
- */
31
- private static upgradeV1;
32
- /**
33
- * Version 2
34
- * @param table the markdown object
35
- * @returns the dbTable object
36
- */
37
- private static upgradeV2;
38
- }
39
- export {};
1
+ type ObjectValueType = null | string | number | boolean;
2
+ /**
3
+ * Main functions:
4
+ * read a markdown file into an object
5
+ */
6
+ export declare class MarkdownReader {
7
+ path: string;
8
+ constructor(path: string);
9
+ private static createHeader;
10
+ private static createListItem;
11
+ private static handleHeader;
12
+ private static handleList;
13
+ private static handleTable;
14
+ private static isArrayTable;
15
+ private static mergeTableRow;
16
+ static normalize(value: string, isPropertyName?: boolean): ObjectValueType;
17
+ private static normalizeTableRow;
18
+ private static readLine;
19
+ toObject(): any;
20
+ /**
21
+ * convert the markdown object to the model object
22
+ * @param table the markdown object
23
+ * @returns the dbTable object
24
+ */
25
+ private static upgrade;
26
+ /**
27
+ * Version 1
28
+ * @param table the markdown object
29
+ * @returns the dbTable object
30
+ */
31
+ private static upgradeV1;
32
+ /**
33
+ * Version 2
34
+ * @param table the markdown object
35
+ * @returns the dbTable object
36
+ */
37
+ private static upgradeV2;
38
+ }
39
+ export {};
@@ -1,262 +1,262 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MarkdownReader = void 0;
4
- /* eslint-disable no-restricted-syntax */
5
- const markdownParser_1 = require("../utils/markdownParser");
6
- const textFileReader_1 = require("../utils/textFileReader");
7
- const textHelper_1 = require("../utils/textHelper");
8
- const markdownModel_1 = require("./markdownModel");
9
- const readerContext_1 = require("./readerContext");
10
- /**
11
- * Main functions:
12
- * read a markdown file into an object
13
- */
14
- class MarkdownReader {
15
- constructor(path) {
16
- this.path = path;
17
- }
18
- static createHeader(array, context) {
19
- const element = {
20
- type: markdownModel_1.MarkdownElementType.header,
21
- level: array[1].length,
22
- name: array[2],
23
- };
24
- if (element.level <= 1) {
25
- return;
26
- }
27
- if (element.level <= context.currentLevel) {
28
- context.pop(element.level - 1);
29
- }
30
- let propertyName = MarkdownReader.normalize(element.name, true);
31
- // case: the property is an array
32
- if (propertyName.endsWith('[]')) {
33
- propertyName = propertyName.substring(0, propertyName.length - 2).trim();
34
- }
35
- // generate the property
36
- context.push(propertyName, null);
37
- }
38
- static createListItem(array, context) {
39
- const element = {
40
- type: markdownModel_1.MarkdownElementType.listItem,
41
- level: 0,
42
- name: array[1],
43
- value: array[2],
44
- };
45
- // TODO: case: multiple lines value
46
- context.setCurrentProperty(MarkdownReader.normalize(element.name, true), MarkdownReader.normalize(element.value));
47
- }
48
- static handleHeader(line, reader, context) {
49
- if (!line) {
50
- return true;
51
- }
52
- const result = markdownParser_1.MarkdownParser.matchHeader(line);
53
- if (result) {
54
- MarkdownReader.createHeader(result, context);
55
- return true;
56
- }
57
- return false;
58
- }
59
- static handleList(line, reader, context) {
60
- if (!line) {
61
- return true;
62
- }
63
- const result = markdownParser_1.MarkdownParser.matchListItem(line);
64
- if (result) {
65
- MarkdownReader.createListItem(result, context);
66
- return true;
67
- }
68
- return false;
69
- }
70
- static handleTable(line, reader, context) {
71
- if (!line) {
72
- // case: end of file
73
- return true;
74
- }
75
- let isValid = markdownParser_1.MarkdownParser.testTableHeader(line);
76
- if (!isValid) {
77
- return false;
78
- }
79
- // check if the next line is table line row
80
- const headerLine = line;
81
- let dataLine = reader.peak();
82
- if (!dataLine) {
83
- // case: end of file
84
- return true;
85
- }
86
- isValid = markdownParser_1.MarkdownParser.testTableLine(dataLine);
87
- if (!isValid) {
88
- return false;
89
- }
90
- reader.move();
91
- context.current = [];
92
- const headers = MarkdownReader.normalizeTableRow(headerLine, true);
93
- const isArray = MarkdownReader.isArrayTable(headers);
94
- // now: it is a table, read table rows
95
- while (reader.hasMore(1)) {
96
- dataLine = reader.peak().trim();
97
- if (!dataLine) {
98
- // case: end of file
99
- return true;
100
- }
101
- isValid = markdownParser_1.MarkdownParser.testTableRow(dataLine);
102
- if (!isValid) {
103
- // true: indicate we use these read lines
104
- return true;
105
- }
106
- reader.move();
107
- // read a data row
108
- const cells = MarkdownReader.normalizeTableRow(dataLine);
109
- if (isArray) {
110
- if (!context.current) {
111
- context.current = [];
112
- }
113
- context.current.push(cells);
114
- }
115
- else {
116
- // data row -> data row object
117
- const rowObject = {};
118
- headers.some((header, index) => {
119
- if (index >= cells.length) {
120
- return true;
121
- }
122
- rowObject[header] = cells[index];
123
- return false;
124
- });
125
- // put into the result
126
- if (!MarkdownReader.mergeTableRow(headers, rowObject, context)) {
127
- context.current.push(rowObject);
128
- }
129
- }
130
- }
131
- return false;
132
- }
133
- static isArrayTable(headers) {
134
- for (const element of headers) {
135
- if (element.length > 0) {
136
- return false;
137
- }
138
- }
139
- return true;
140
- }
141
- static mergeTableRow(headers, rowObject, context) {
142
- if (context.current.length === 0 ||
143
- rowObject[headers[0]] !== '' ||
144
- rowObject[headers[1]] !== '') {
145
- return false;
146
- }
147
- const lastObject = context.current[context.current.length - 1];
148
- headers.forEach((header) => {
149
- const prop = rowObject[header];
150
- if (prop) {
151
- // TODO: merge with \r\n
152
- lastObject[header] = `${lastObject[header]} ${prop}`;
153
- }
154
- });
155
- return true;
156
- }
157
- static normalize(value, isPropertyName = false) {
158
- if (!value) {
159
- return value;
160
- }
161
- let newValue = textHelper_1.TextHelper.decodeMarkdown(value.trim());
162
- // case: inline code
163
- if (newValue.length >= 2 && newValue[0] === '`' && newValue[newValue.length - 1] === '`') {
164
- const blockValue = newValue.substring(1, newValue.length - 1);
165
- if (!isPropertyName) {
166
- if (blockValue.toLocaleLowerCase() === 'yes' || blockValue.toLocaleLowerCase() === 'true') {
167
- newValue = true;
168
- }
169
- else if (blockValue.toLocaleLowerCase() === 'no' ||
170
- blockValue.toLocaleLowerCase() === 'false') {
171
- newValue = false;
172
- }
173
- else if (blockValue.toLocaleLowerCase() === 'null') {
174
- newValue = null;
175
- }
176
- else {
177
- const testValue = parseFloat(blockValue);
178
- // eslint-disable-next-line no-restricted-globals
179
- if (!isNaN(testValue)) {
180
- newValue = testValue;
181
- }
182
- }
183
- }
184
- else {
185
- newValue = newValue.substring(1, newValue.length - 1);
186
- }
187
- }
188
- // case: produce a good property name
189
- if (isPropertyName && typeof newValue === 'string' && newValue.length > 0) {
190
- // case: remove spaces
191
- newValue = newValue.replace(' ', '');
192
- // case: camelCase
193
- newValue = newValue[0].toLocaleLowerCase() + newValue.substr(1, newValue.length);
194
- }
195
- return newValue;
196
- }
197
- static normalizeTableRow(line, isName = false) {
198
- const values = markdownParser_1.MarkdownParser.splitTableRowToCells(line);
199
- return values.map((value) => MarkdownReader.normalize(value, isName));
200
- }
201
- static readLine(line, reader, context) {
202
- if (MarkdownReader.handleHeader(line, reader, context)) {
203
- return;
204
- }
205
- if (MarkdownReader.handleList(line, reader, context)) {
206
- return;
207
- }
208
- MarkdownReader.handleTable(line, reader, context);
209
- }
210
- toObject() {
211
- const reader = new textFileReader_1.TextFileReader();
212
- const context = new readerContext_1.ReadContext();
213
- reader.open(this.path);
214
- while (reader.hasMore()) {
215
- MarkdownReader.readLine(reader.read().trim(), reader, context);
216
- }
217
- return MarkdownReader.upgrade(context.root);
218
- }
219
- /**
220
- * convert the markdown object to the model object
221
- * @param table the markdown object
222
- * @returns the dbTable object
223
- */
224
- static upgrade(table) {
225
- if (table.name) {
226
- return MarkdownReader.upgradeV1(table);
227
- }
228
- return MarkdownReader.upgradeV2(table);
229
- }
230
- /**
231
- * Version 1
232
- * @param table the markdown object
233
- * @returns the dbTable object
234
- */
235
- static upgradeV1(table) {
236
- return {
237
- name: table.name,
238
- comment: table.comment,
239
- primaryKey: table.primaryKey,
240
- indexes: table.indexes || [],
241
- foreignKeys: table.foreignKeys || [],
242
- columns: table.columns || [],
243
- };
244
- }
245
- /**
246
- * Version 2
247
- * @param table the markdown object
248
- * @returns the dbTable object
249
- */
250
- static upgradeV2(table) {
251
- const basic = table.table && table.table.length > 0 ? table.table[0] : undefined;
252
- return {
253
- ...basic,
254
- primaryKey: table.primaryKey?.length > 0 ? table.primaryKey[0] : undefined,
255
- indexes: table.indexes || [],
256
- foreignKeys: table.foreignKeys || [],
257
- columns: table.columns || [],
258
- };
259
- }
260
- }
261
- exports.MarkdownReader = MarkdownReader;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MarkdownReader = void 0;
4
+ /* eslint-disable no-restricted-syntax */
5
+ const markdownParser_1 = require("../utils/markdownParser");
6
+ const textFileReader_1 = require("../utils/textFileReader");
7
+ const textHelper_1 = require("../utils/textHelper");
8
+ const markdownModel_1 = require("./markdownModel");
9
+ const readerContext_1 = require("./readerContext");
10
+ /**
11
+ * Main functions:
12
+ * read a markdown file into an object
13
+ */
14
+ class MarkdownReader {
15
+ constructor(path) {
16
+ this.path = path;
17
+ }
18
+ static createHeader(array, context) {
19
+ const element = {
20
+ type: markdownModel_1.MarkdownElementType.header,
21
+ level: array[1].length,
22
+ name: array[2],
23
+ };
24
+ if (element.level <= 1) {
25
+ return;
26
+ }
27
+ if (element.level <= context.currentLevel) {
28
+ context.pop(element.level - 1);
29
+ }
30
+ let propertyName = MarkdownReader.normalize(element.name, true);
31
+ // case: the property is an array
32
+ if (propertyName.endsWith('[]')) {
33
+ propertyName = propertyName.substring(0, propertyName.length - 2).trim();
34
+ }
35
+ // generate the property
36
+ context.push(propertyName, null);
37
+ }
38
+ static createListItem(array, context) {
39
+ const element = {
40
+ type: markdownModel_1.MarkdownElementType.listItem,
41
+ level: 0,
42
+ name: array[1],
43
+ value: array[2],
44
+ };
45
+ // TODO: case: multiple lines value
46
+ context.setCurrentProperty(MarkdownReader.normalize(element.name, true), MarkdownReader.normalize(element.value));
47
+ }
48
+ static handleHeader(line, reader, context) {
49
+ if (!line) {
50
+ return true;
51
+ }
52
+ const result = markdownParser_1.MarkdownParser.matchHeader(line);
53
+ if (result) {
54
+ MarkdownReader.createHeader(result, context);
55
+ return true;
56
+ }
57
+ return false;
58
+ }
59
+ static handleList(line, reader, context) {
60
+ if (!line) {
61
+ return true;
62
+ }
63
+ const result = markdownParser_1.MarkdownParser.matchListItem(line);
64
+ if (result) {
65
+ MarkdownReader.createListItem(result, context);
66
+ return true;
67
+ }
68
+ return false;
69
+ }
70
+ static handleTable(line, reader, context) {
71
+ if (!line) {
72
+ // case: end of file
73
+ return true;
74
+ }
75
+ let isValid = markdownParser_1.MarkdownParser.testTableHeader(line);
76
+ if (!isValid) {
77
+ return false;
78
+ }
79
+ // check if the next line is table line row
80
+ const headerLine = line;
81
+ let dataLine = reader.peak();
82
+ if (!dataLine) {
83
+ // case: end of file
84
+ return true;
85
+ }
86
+ isValid = markdownParser_1.MarkdownParser.testTableLine(dataLine);
87
+ if (!isValid) {
88
+ return false;
89
+ }
90
+ reader.move();
91
+ context.current = [];
92
+ const headers = MarkdownReader.normalizeTableRow(headerLine, true);
93
+ const isArray = MarkdownReader.isArrayTable(headers);
94
+ // now: it is a table, read table rows
95
+ while (reader.hasMore(1)) {
96
+ dataLine = reader.peak().trim();
97
+ if (!dataLine) {
98
+ // case: end of file
99
+ return true;
100
+ }
101
+ isValid = markdownParser_1.MarkdownParser.testTableRow(dataLine);
102
+ if (!isValid) {
103
+ // true: indicate we use these read lines
104
+ return true;
105
+ }
106
+ reader.move();
107
+ // read a data row
108
+ const cells = MarkdownReader.normalizeTableRow(dataLine);
109
+ if (isArray) {
110
+ if (!context.current) {
111
+ context.current = [];
112
+ }
113
+ context.current.push(cells);
114
+ }
115
+ else {
116
+ // data row -> data row object
117
+ const rowObject = {};
118
+ headers.some((header, index) => {
119
+ if (index >= cells.length) {
120
+ return true;
121
+ }
122
+ rowObject[header] = cells[index];
123
+ return false;
124
+ });
125
+ // put into the result
126
+ if (!MarkdownReader.mergeTableRow(headers, rowObject, context)) {
127
+ context.current.push(rowObject);
128
+ }
129
+ }
130
+ }
131
+ return false;
132
+ }
133
+ static isArrayTable(headers) {
134
+ for (const element of headers) {
135
+ if (element.length > 0) {
136
+ return false;
137
+ }
138
+ }
139
+ return true;
140
+ }
141
+ static mergeTableRow(headers, rowObject, context) {
142
+ if (context.current.length === 0 ||
143
+ rowObject[headers[0]] !== '' ||
144
+ rowObject[headers[1]] !== '') {
145
+ return false;
146
+ }
147
+ const lastObject = context.current[context.current.length - 1];
148
+ headers.forEach((header) => {
149
+ const prop = rowObject[header];
150
+ if (prop) {
151
+ // TODO: merge with \r\n
152
+ lastObject[header] = `${lastObject[header]} ${prop}`;
153
+ }
154
+ });
155
+ return true;
156
+ }
157
+ static normalize(value, isPropertyName = false) {
158
+ if (!value) {
159
+ return value;
160
+ }
161
+ let newValue = textHelper_1.TextHelper.decodeMarkdown(value.trim());
162
+ // case: inline code
163
+ if (newValue.length >= 2 && newValue[0] === '`' && newValue[newValue.length - 1] === '`') {
164
+ const blockValue = newValue.substring(1, newValue.length - 1);
165
+ if (!isPropertyName) {
166
+ const lowerValue = blockValue.toLocaleLowerCase();
167
+ if (lowerValue === 'yes' || lowerValue === 'true') {
168
+ newValue = true;
169
+ }
170
+ else if (lowerValue === 'no' || lowerValue === 'false') {
171
+ newValue = false;
172
+ }
173
+ else if (lowerValue === 'null') {
174
+ newValue = null;
175
+ }
176
+ else {
177
+ const testValue = parseFloat(blockValue);
178
+ // eslint-disable-next-line no-restricted-globals
179
+ if (!isNaN(testValue)) {
180
+ newValue = testValue;
181
+ }
182
+ }
183
+ }
184
+ else {
185
+ newValue = newValue.substring(1, newValue.length - 1);
186
+ }
187
+ }
188
+ // case: produce a good property name
189
+ if (isPropertyName && typeof newValue === 'string' && newValue.length > 0) {
190
+ // case: remove spaces
191
+ newValue = newValue.replace(' ', '');
192
+ // case: camelCase
193
+ newValue = newValue[0].toLocaleLowerCase() + newValue.substr(1, newValue.length);
194
+ }
195
+ return newValue;
196
+ }
197
+ static normalizeTableRow(line, isName = false) {
198
+ const values = markdownParser_1.MarkdownParser.splitTableRowToCells(line);
199
+ return values.map((value) => MarkdownReader.normalize(value, isName));
200
+ }
201
+ static readLine(line, reader, context) {
202
+ if (MarkdownReader.handleHeader(line, reader, context)) {
203
+ return;
204
+ }
205
+ if (MarkdownReader.handleList(line, reader, context)) {
206
+ return;
207
+ }
208
+ MarkdownReader.handleTable(line, reader, context);
209
+ }
210
+ toObject() {
211
+ const reader = new textFileReader_1.TextFileReader();
212
+ const context = new readerContext_1.ReadContext();
213
+ reader.open(this.path);
214
+ while (reader.hasMore()) {
215
+ MarkdownReader.readLine(reader.read().trim(), reader, context);
216
+ }
217
+ return MarkdownReader.upgrade(context.root);
218
+ }
219
+ /**
220
+ * convert the markdown object to the model object
221
+ * @param table the markdown object
222
+ * @returns the dbTable object
223
+ */
224
+ static upgrade(table) {
225
+ if (table.name) {
226
+ return MarkdownReader.upgradeV1(table);
227
+ }
228
+ return MarkdownReader.upgradeV2(table);
229
+ }
230
+ /**
231
+ * Version 1
232
+ * @param table the markdown object
233
+ * @returns the dbTable object
234
+ */
235
+ static upgradeV1(table) {
236
+ return {
237
+ name: table.name,
238
+ comment: table.comment,
239
+ primaryKey: table.primaryKey,
240
+ indexes: table.indexes || [],
241
+ foreignKeys: table.foreignKeys || [],
242
+ columns: table.columns || [],
243
+ };
244
+ }
245
+ /**
246
+ * Version 2
247
+ * @param table the markdown object
248
+ * @returns the dbTable object
249
+ */
250
+ static upgradeV2(table) {
251
+ const basic = table.table && table.table.length > 0 ? table.table[0] : undefined;
252
+ return {
253
+ ...basic,
254
+ primaryKey: table.primaryKey?.length > 0 ? table.primaryKey[0] : undefined,
255
+ indexes: table.indexes || [],
256
+ foreignKeys: table.foreignKeys || [],
257
+ columns: table.columns || [],
258
+ };
259
+ }
260
+ }
261
+ exports.MarkdownReader = MarkdownReader;
262
262
  //# sourceMappingURL=markdownReader.js.map
@@ -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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"}