@palmares/schemas
Version:
This defines a default schema definition for validation of data, it abstract popular schema validation libraries like zod, yup, valibot and others"
133 lines (131 loc) • 3.35 kB
JavaScript
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
// src/validators/schema.ts
function optional(args) {
return {
name: "optional",
type: "high",
// eslint-disable-next-line ts/require-await
callback: /* @__PURE__ */ __name(async (value, path) => {
if (value === void 0) {
if (args.allow === true) return {
parsed: value,
errors: [],
preventChildValidation: true
};
return {
parsed: value,
errors: [
{
isValid: false,
message: args.message,
code: "required",
// eslint-disable-next-line ts/no-unnecessary-condition
path: path || []
}
],
preventChildValidation: true
};
}
return {
parsed: value,
errors: [],
preventChildValidation: false
};
}, "callback")
};
}
__name(optional, "optional");
function nullable(args) {
return {
name: "nullable",
type: "high",
// eslint-disable-next-line ts/require-await
callback: /* @__PURE__ */ __name(async (value, path) => {
if (value === null) {
if (args.allow === true) return {
parsed: value,
errors: [],
preventChildValidation: true
};
return {
parsed: value,
errors: [
{
isValid: false,
message: args.message,
code: "null",
// eslint-disable-next-line ts/no-unnecessary-condition
path: path || []
}
],
preventChildValidation: true
};
}
return {
parsed: value,
errors: [],
preventChildValidation: false
};
}, "callback")
};
}
__name(nullable, "nullable");
function checkType(args) {
return {
name: "checkType",
type: "medium",
// eslint-disable-next-line ts/require-await
callback: /* @__PURE__ */ __name(async (value, path) => {
if (args.check(value)) return {
parsed: value,
errors: [],
preventChildValidation: false
};
return {
parsed: value,
errors: [
{
isValid: false,
message: args.message,
code: "invalid_type",
// eslint-disable-next-line ts/no-unnecessary-condition
path: path || []
}
],
preventChildValidation: true
};
}, "callback")
};
}
__name(checkType, "checkType");
function is(args) {
return {
name: "is",
type: "medium",
// eslint-disable-next-line ts/require-await
callback: /* @__PURE__ */ __name(async (value, path, _options) => {
const isValid = Array.isArray(args.value) ? args.value.includes(value) : value === args.value;
return {
parsed: value,
errors: isValid ? [] : [
{
isValid: false,
code: "is",
// eslint-disable-next-line ts/no-unnecessary-condition
path: path || [],
message: "Value is not a boolean"
}
],
preventChildValidation: true
};
}, "callback")
};
}
__name(is, "is");
export {
checkType,
is,
nullable,
optional
};