@inflector/optima 1.0.16 → 1.0.18
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/dist/index.d.ts +1 -1
- package/dist/index.js +20 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -59,7 +59,7 @@ declare const Uuid: () => ColumnBuilder<string, SetFlag$1<Restrict<"defaultNow">
|
|
|
59
59
|
declare const DateType: () => ColumnBuilder<Date, SetFlag$1<Restrict<"default">, "SQlType">, never>;
|
|
60
60
|
declare const Timestamp: () => ColumnBuilder<Date, SetFlag$1<Restrict<"default">, "SQlType">, never>;
|
|
61
61
|
declare const Enum: <T extends string | number>(vals: readonly T[]) => ColumnBuilder<T, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "validate">, "SQlType">, never>;
|
|
62
|
-
declare const Json: <T extends z.ZodRawShape
|
|
62
|
+
declare const Json: <T extends z.ZodRawShape = Record<string, any>>(obj: T) => ColumnBuilder<[keyof T] extends [never] ? Record<string, any> : z.core.$InferObjectOutput<T, {}>, SetFlag$1<Restrict<"primaryKey" | "unique" | "defaultNow">, "SQlType">, never>;
|
|
63
63
|
declare const Array$1: <T extends z.ZodTypeAny>(schema: T) => ColumnBuilder<z.core.output<T>[], SetFlag$1<Restrict<"primaryKey" | "unique" | "defaultNow">, "SQlType">, never>;
|
|
64
64
|
declare const Email: () => ColumnBuilder<string, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "SQlType">, "validate">, never>;
|
|
65
65
|
declare const Slug: () => ColumnBuilder<string, SetFlag$1<SetFlag$1<Restrict<"defaultNow">, "SQlType">, "validate">, never>;
|
package/dist/index.js
CHANGED
|
@@ -146,7 +146,11 @@ var SQLBuilder = class {
|
|
|
146
146
|
const FieldConfig = GetFieldConfig(f);
|
|
147
147
|
let sql = `${name} ${FieldConfig.SQlType || "TEXT"}`;
|
|
148
148
|
if ((FieldConfig.SQlType == "STRUCT" || FieldConfig.SQlType == "LIST") && FieldConfig.STRUCTType) {
|
|
149
|
-
|
|
149
|
+
if (FieldConfig.STRUCTType == "STRUCT()") {
|
|
150
|
+
sql = `${name} JSON`;
|
|
151
|
+
} else {
|
|
152
|
+
sql = `${name} ${FieldConfig.STRUCTType}`;
|
|
153
|
+
}
|
|
150
154
|
}
|
|
151
155
|
if (FieldConfig.primaryKey) sql += " PRIMARY KEY";
|
|
152
156
|
if (FieldConfig.notnull) sql += " NOT NULL";
|
|
@@ -417,7 +421,7 @@ var escape = (val) => {
|
|
|
417
421
|
return String(val);
|
|
418
422
|
};
|
|
419
423
|
var SQL_GENERATORS = {
|
|
420
|
-
eq: (c, v) => `${c} = ${escape(v)}`,
|
|
424
|
+
eq: (c, v) => v === null ? `${c} IS NULL` : `${c} = ${escape(v)}`,
|
|
421
425
|
ne: (c, v) => `${c} != ${escape(v)}`,
|
|
422
426
|
gt: (c, v) => `${c} > ${escape(v)}`,
|
|
423
427
|
gte: (c, v) => `${c} >= ${escape(v)}`,
|
|
@@ -472,7 +476,11 @@ var OptimaTable = class _OptimaTable {
|
|
|
472
476
|
} else if (val && typeof val === "object" && !Array.isArray(val) && !(val instanceof Date)) {
|
|
473
477
|
processLevel(val, colName);
|
|
474
478
|
} else {
|
|
475
|
-
|
|
479
|
+
if (val === null) {
|
|
480
|
+
conditions.push(SQL_GENERATORS.is(colName, null));
|
|
481
|
+
} else {
|
|
482
|
+
conditions.push(SQL_GENERATORS.eq(colName, val));
|
|
483
|
+
}
|
|
476
484
|
}
|
|
477
485
|
}
|
|
478
486
|
};
|
|
@@ -584,6 +592,9 @@ ${valuesBlock}${isReturning ? "\nRETURNING *" : ""};`;
|
|
|
584
592
|
}
|
|
585
593
|
return parsedObj;
|
|
586
594
|
}
|
|
595
|
+
if (type?.SQlType === "STRUCT" && type?.STRUCTType === "STRUCT()") {
|
|
596
|
+
return JSON.parse(value);
|
|
597
|
+
}
|
|
587
598
|
return value;
|
|
588
599
|
};
|
|
589
600
|
this.FormatOut = (data) => {
|
|
@@ -970,7 +981,12 @@ var SchemaMigrator = class {
|
|
|
970
981
|
if (colImpl?.config) {
|
|
971
982
|
const config = { ...colImpl.config };
|
|
972
983
|
if (config.SQlType === "STRUCT" && config.STRUCTType) {
|
|
973
|
-
config.
|
|
984
|
+
if (config.STRUCTType == "STRUCT()") {
|
|
985
|
+
config.SQlType = "JSON";
|
|
986
|
+
config.STRUCTType = "JSON";
|
|
987
|
+
} else {
|
|
988
|
+
config.SQlType = config.STRUCTType;
|
|
989
|
+
}
|
|
974
990
|
}
|
|
975
991
|
cleanSchema[realTableName][colName] = config;
|
|
976
992
|
}
|