UNPKG

lakutata

Version:

An IoC-based universal application framework.

147 lines (110 loc) 4.25 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const e = require("../../../../vendor/Package.2.cjs"); const r = require("node:util/types"); const t = require("../../../exceptions/dto/InvalidMethodAcceptException.cjs"); const n = require("../../../exceptions/dto/InvalidMethodReturnException.cjs"); const o = require("../../helpers/As.cjs"); require("../../../../vendor/Package.1.cjs"); require("./DataValidator.cjs"); require("../../../../vendor/Package.4.cjs"); require("../../../../vendor/Package.5.cjs"); require("../../validation/VLD.cjs"); require("../../../../vendor/Package.11.cjs"); require("url"); require("../../../../vendor/Package.10.cjs"); require("util"); require("../../../exceptions/dto/InvalidValueException.cjs"); require("../abstracts/Exception.cjs"); require("./BasicInfo.cjs"); require("../../../../vendor/Package.6.cjs"); require("../../../../vendor/Package.7.cjs"); require("./ThrowWarning.cjs"); require("../../helpers/Templating.cjs"); require("./CamelCase.cjs"); require("../../helpers/NoCase.cjs"); require("../../../../vendor/Package.9.cjs"); require("../../helpers/IsHtml.cjs"); require("../../helpers/IsXML.cjs"); require("../../../constants/DTOMetadataKey.cjs"); require("../../helpers/ObjectConstructor.cjs"); require("../../helpers/ObjectParentConstructors.cjs"); require("../../helpers/ObjectParentConstructor.cjs"); require("../../helpers/ObjectPrototype.cjs"); function a(n, a, c, s) { const i = []; s.forEach((r => i.push(e.IsDTO(o.As(r)) ? o.As(r).Schema() : o.As(r)))); c.writable = false; const u = c.value; const p = e.DTO.Array().ordered(...i); const d = Array.isArray(i) ? i.length : 1; if (r.isAsyncFunction(u)) { c.value = async function(...r) { const n = r.length - d; try { r = await e.DTO.validateAsync(r, p.concat(e.DTO.Array().ordered(...new Array(n >= 0 ? n : 0).fill(e.DTO.Any())))); } catch (e) { throw new t.InvalidMethodAcceptException("Method [{propertyKey}] accept argument {reason}", { propertyKey: a, reason: e.message }); } return u.apply(this, r); }; } else { c.value = function(...r) { const n = r.length - d; try { r = e.DTO.validate(r, p.concat(e.DTO.Array().ordered(...new Array(n >= 0 ? n : 0).fill(e.DTO.Any())))); } catch (e) { throw new t.InvalidMethodAcceptException("Method [{propertyKey}] accept argument {reason}", { propertyKey: a, reason: e.message }); } return u.apply(this, r); }; } return c; } function c(t, a, c, s) { const i = e.IsDTO(o.As(s)) ? o.As(s).Schema() : o.As(s); c.writable = false; const u = c.value; if (r.isAsyncFunction(u)) { c.value = async function(...r) { const t = await u.apply(this, r); if (t === undefined) throw new n.InvalidMethodReturnException("Method [{propertyKey}] return undefined", { propertyKey: a }); try { return await e.DTO.validateAsync(t, i); } catch (e) { throw new n.InvalidMethodReturnException("Method [{propertyKey}] return value {reason}", { propertyKey: a, reason: e.message }); } }; } else { c.value = function(...r) { const t = u.apply(this, r); if (t === undefined) throw new n.InvalidMethodReturnException("Method [{propertyKey}] return undefined", { propertyKey: a }); try { return e.DTO.validate(t, i); } catch (e) { throw new n.InvalidMethodReturnException("Method [{propertyKey}] return value {reason}", { propertyKey: a, reason: e.message }); } }; } return c; } exports.SetMethodAcceptArgumentsValidator = a; exports.SetMethodReturnValueValidator = c;