@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.
Files changed (2) hide show
  1. package/index.js +12 -5
  2. 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
- if (!sqlTypeMap[fieldType]) throw new Error(`Field ${fieldName} has unsupported type ${fieldType}.`);
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.4-beta",
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": {