@restura/core 0.1.3 → 0.2.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.
- package/dist/index.d.mts +17 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.js +16 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +16 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -572,7 +572,15 @@ var ResponseValidator = class _ResponseValidator {
|
|
|
572
572
|
return { validator: map, isArray: route.type === "ARRAY" };
|
|
573
573
|
}
|
|
574
574
|
getFieldResponseType(field, tableName) {
|
|
575
|
-
if (field.
|
|
575
|
+
if (field.type) {
|
|
576
|
+
if (_ResponseValidator.validatorIsValidString(field.type)) {
|
|
577
|
+
return { validator: field.type };
|
|
578
|
+
}
|
|
579
|
+
if (field.type.includes("|")) {
|
|
580
|
+
return { validator: this.parseValidationEnum(field.type) };
|
|
581
|
+
}
|
|
582
|
+
return { validator: "object" };
|
|
583
|
+
} else if (field.selector) {
|
|
576
584
|
return this.getTypeFromTable(field.selector, tableName);
|
|
577
585
|
} else if (field.subquery) {
|
|
578
586
|
const table = this.database.find((t) => t.name == tableName);
|
|
@@ -798,7 +806,9 @@ var ApiTree = class _ApiTree {
|
|
|
798
806
|
}
|
|
799
807
|
getNameAndType(p, routeBaseTable, joins) {
|
|
800
808
|
let responseType = "any", isNullable = false, array = false;
|
|
801
|
-
if (p.
|
|
809
|
+
if (p.type) {
|
|
810
|
+
responseType = p.type;
|
|
811
|
+
} else if (p.selector) {
|
|
802
812
|
({ responseType, isNullable } = this.getTypeFromTable(p.selector, p.name));
|
|
803
813
|
const selectorKey = p.selector.split(".")[0];
|
|
804
814
|
if (selectorKey !== routeBaseTable) {
|
|
@@ -1082,7 +1092,8 @@ var responseDataSchema = z3.object({
|
|
|
1082
1092
|
// Explicit type for the lazy schema
|
|
1083
1093
|
groupBy: groupBySchema.optional(),
|
|
1084
1094
|
orderBy: orderBySchema.optional()
|
|
1085
|
-
}).optional()
|
|
1095
|
+
}).optional(),
|
|
1096
|
+
type: z3.string().optional()
|
|
1086
1097
|
}).strict();
|
|
1087
1098
|
var routeDataBaseSchema = z3.object({
|
|
1088
1099
|
method: z3.enum(["GET", "POST", "PUT", "PATCH", "DELETE"]),
|
|
@@ -1733,6 +1744,7 @@ var SqlEngine = class {
|
|
|
1733
1744
|
return tableSchema;
|
|
1734
1745
|
}
|
|
1735
1746
|
doesRoleHavePermissionToColumn(role, schema, item, joins) {
|
|
1747
|
+
if (item.type) return true;
|
|
1736
1748
|
if (item.selector) {
|
|
1737
1749
|
let tableName = item.selector.split(".")[0];
|
|
1738
1750
|
const columnName = item.selector.split(".")[1];
|
|
@@ -2215,7 +2227,7 @@ var PsqlEngine = class extends SqlEngine {
|
|
|
2215
2227
|
item.name
|
|
2216
2228
|
)}`;
|
|
2217
2229
|
}
|
|
2218
|
-
return `${escapeColumnName(item.selector)} AS ${escapeColumnName(item.name)}`;
|
|
2230
|
+
return `${item.type ? item.selector : escapeColumnName(item.selector)} AS ${escapeColumnName(item.name)}`;
|
|
2219
2231
|
}).join(",\n ")}
|
|
2220
2232
|
`;
|
|
2221
2233
|
sqlStatement += `FROM "${routeData.table}"
|