@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"
159 lines (157 loc) • 4.4 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/validators/schema.ts
var schema_exports = {};
__export(schema_exports, {
checkType: () => checkType,
is: () => is,
nullable: () => nullable,
optional: () => optional
});
module.exports = __toCommonJS(schema_exports);
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");
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
checkType,
is,
nullable,
optional
});