@mlagie/sql-connector 1.0.5-beta → 1.0.7-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 +14 -3
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -337,19 +337,25 @@ class Model {
|
|
|
337
337
|
const fieldType = getFieldType(field);
|
|
338
338
|
|
|
339
339
|
if (field.type && typeof field == "object") {
|
|
340
|
-
|
|
341
|
-
|
|
340
|
+
// Si c'est un enum, ne pas vérifier sqlTypeMap
|
|
342
341
|
let columnDefinition = "";
|
|
343
342
|
if (Array.isArray(field.enum) && field.enum.length > 0) {
|
|
344
343
|
const enumValues = field.enum.map(v => `'${v.replace(/'/g, "''")}'`).join(", ");
|
|
345
344
|
columnDefinition = `${fieldName} ENUM(${enumValues})`;
|
|
346
345
|
} else {
|
|
346
|
+
if (!sqlTypeMap[fieldType]) throw new Error(`Field ${fieldName} has unsupported type ${fieldType}.`);
|
|
347
347
|
columnDefinition = `${fieldName} ${sqlTypeMap[fieldType]}${sqlTypeMap[fieldType] == "VARCHAR" || sqlTypeMap[fieldType] == "INT" ? `(${field.length > 0 ? field.length : lengthDefault})` : ""}`;
|
|
348
348
|
}
|
|
349
349
|
|
|
350
350
|
if (field.required) columnDefinition += ' NOT NULL';
|
|
351
351
|
if (field.default !== undefined && field.default != null) columnDefinition += ` DEFAULT "${field.default}"`;
|
|
352
|
-
if (field.default === null)
|
|
352
|
+
if (field.default === null) {
|
|
353
|
+
if (field.unique) {
|
|
354
|
+
columnDefinition += ` DEFAULT ${null}`;
|
|
355
|
+
} else {
|
|
356
|
+
columnDefinition += ` DEFAULT 'NULL'`;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
353
359
|
if (field.unique) columnDefinition += ' UNIQUE';
|
|
354
360
|
if (field.auto_increment) columnDefinition += ' AUTO_INCREMENT';
|
|
355
361
|
if (field.foreignKey) foreignKey.push(`FOREIGN KEY (${fieldName}) REFERENCES ${field.foreignKey}`);
|
|
@@ -358,6 +364,11 @@ class Model {
|
|
|
358
364
|
return columnDefinition;
|
|
359
365
|
}
|
|
360
366
|
|
|
367
|
+
if (Array.isArray(field.enum) && field.enum.length > 0) {
|
|
368
|
+
const enumValues = field.enum.map(v => `'${v.replace(/'/g, "''")}'`).join(", ");
|
|
369
|
+
return `${fieldName} ENUM(${enumValues})`;
|
|
370
|
+
}
|
|
371
|
+
|
|
361
372
|
if (!sqlTypeMap[fieldType]) throw new Error(`Field ${fieldName} has unsupported type ${field}`);
|
|
362
373
|
|
|
363
374
|
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.7-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": {
|