json-api-nestjs
Version:
JsonApi Plugin for NestJs
36 lines • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.zodFieldsQuery = zodFieldsQuery;
const nestjs_shared_1 = require("../../../../utils/nestjs-shared");
const zod_1 = require("zod");
const zod_utils_1 = require("../zod-utils");
function getZodRules(fields) {
return zod_1.z
.enum(fields)
.array()
.nonempty()
.refine((0, zod_utils_1.uniqueArray)(), {
message: 'Field should be unique',
})
.optional();
}
function zodFieldsQuery(fields, relationList) {
const target = {
target: getZodRules(fields),
};
const relation = {};
for (const [key, value] of nestjs_shared_1.ObjectTyped.entries(relationList)) {
relation[key] = getZodRules(value);
}
return zod_1.z
.object({
...target,
...relation,
})
.strict('Should be only target of relation')
.refine((0, zod_utils_1.nonEmptyObject)(), {
message: 'Validation error: Select target or relation fields',
})
.nullable();
}
//# sourceMappingURL=fields.js.map