@mlagie/sql-connector 1.0.4-beta → 1.0.6-beta
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/index.js +12 -5
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -236,10 +236,11 @@ function ifReservedKeywords(tableName) {
|
|
|
236
236
|
|
|
237
237
|
function getFieldType(field) {
|
|
238
238
|
if (typeof field === "object") {
|
|
239
|
-
if (field.type.name !== undefined) return field.type.name;
|
|
240
|
-
else return field.type;
|
|
239
|
+
if (field.type && field.type.name !== undefined) return field.type.name;
|
|
240
|
+
else if (field.type !== undefined) return field.type;
|
|
241
|
+
return undefined;
|
|
241
242
|
} else {
|
|
242
|
-
if (field.name !== undefined) return field.name;
|
|
243
|
+
if (field && field.name !== undefined) return field.name;
|
|
243
244
|
else return field;
|
|
244
245
|
}
|
|
245
246
|
}
|
|
@@ -336,13 +337,13 @@ class Model {
|
|
|
336
337
|
const fieldType = getFieldType(field);
|
|
337
338
|
|
|
338
339
|
if (field.type && typeof field == "object") {
|
|
339
|
-
|
|
340
|
-
|
|
340
|
+
// Si c'est un enum, ne pas vérifier sqlTypeMap
|
|
341
341
|
let columnDefinition = "";
|
|
342
342
|
if (Array.isArray(field.enum) && field.enum.length > 0) {
|
|
343
343
|
const enumValues = field.enum.map(v => `'${v.replace(/'/g, "''")}'`).join(", ");
|
|
344
344
|
columnDefinition = `${fieldName} ENUM(${enumValues})`;
|
|
345
345
|
} else {
|
|
346
|
+
if (!sqlTypeMap[fieldType]) throw new Error(`Field ${fieldName} has unsupported type ${fieldType}.`);
|
|
346
347
|
columnDefinition = `${fieldName} ${sqlTypeMap[fieldType]}${sqlTypeMap[fieldType] == "VARCHAR" || sqlTypeMap[fieldType] == "INT" ? `(${field.length > 0 ? field.length : lengthDefault})` : ""}`;
|
|
347
348
|
}
|
|
348
349
|
|
|
@@ -357,6 +358,12 @@ class Model {
|
|
|
357
358
|
return columnDefinition;
|
|
358
359
|
}
|
|
359
360
|
|
|
361
|
+
// Si c'est un enum sans type, ne pas vérifier sqlTypeMap
|
|
362
|
+
if (Array.isArray(field.enum) && field.enum.length > 0) {
|
|
363
|
+
const enumValues = field.enum.map(v => `'${v.replace(/'/g, "''")}'`).join(", ");
|
|
364
|
+
return `${fieldName} ENUM(${enumValues})`;
|
|
365
|
+
}
|
|
366
|
+
|
|
360
367
|
if (!sqlTypeMap[fieldType]) throw new Error(`Field ${fieldName} has unsupported type ${field}`);
|
|
361
368
|
|
|
362
369
|
return `${fieldName} ${sqlTypeMap[fieldType] == "VARCHAR" ? `${sqlTypeMap[fieldType]}(${lengthDefault})` : sqlTypeMap[fieldType]}`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mlagie/sql-connector",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6-beta",
|
|
4
4
|
"description": "Le module sql-connector permet de gérer les connexions à une base de données MySQL, de définir des schémas de tables, et d'interagir avec les données de manière simple et efficace.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|