@resk/core
Version:
An innovative TypeScript framework that empowers developers to build applications with a fully decorator-based architecture for efficient resource management. By combining the power of decorators with a resource-oriented design, DecorRes enhances code cla
1 lines • 3.7 kB
JavaScript
'use strict';var i18n=require('../../i18n'),validator=require('../validator');var h=Object.defineProperty,B=Object.defineProperties;var F=Object.getOwnPropertyDescriptors;var p=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable;var N=(i,e,t)=>e in i?h(i,e,{enumerable:true,configurable:true,writable:true,value:t}):i[e]=t,s=(i,e)=>{for(var t in e||(e={}))D.call(e,t)&&N(i,t,e[t]);if(p)for(var t of p(e))v.call(e,t)&&N(i,t,e[t]);return i},O=(i,e)=>B(i,F(e));var R=(i,e)=>{var t={};for(var n in i)D.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&p)for(var n of p(i))e.indexOf(n)<0&&v.call(i,n)&&(t[n]=i[n]);return t};function x(V){var d=V,{value:i,ruleParams:e,fieldName:t,translatedPropertyName:n}=d,o=R(d,["value","ruleParams","fieldName","translatedPropertyName"]);return new Promise((g,l)=>{if(!e||e.length<2){const a=i18n.i18n.t("validator.invalidRuleParams",s({rule:"NumberBetween",field:n||t,ruleParams:e},o));return l(a)}const u=Number(i);if(isNaN(u)){const a=i18n.i18n.t("validator.numeric",s({field:n||t,value:i},o));return l(a)}const r=Number(e[0]),b=Number(e[1]);if(isNaN(r)||isNaN(b)){const a=i18n.i18n.t("validator.invalidRuleParams",s({rule:"NumberBetween",field:n||t,ruleParams:e},o));return l(a)}if(u>=r&&u<=b)g(true);else {const a=i18n.i18n.t("validator.numberBetween",s({field:n||t,value:u,min:r,max:b},o));l(a);}})}const G=validator.Validator.createRuleDecorator(x);validator.Validator.registerRule("NumberBetween",x);function w(V){var d=V,{value:i,ruleParams:e,fieldName:t,translatedPropertyName:n}=d,o=R(d,["value","ruleParams","fieldName","translatedPropertyName"]);return new Promise((g,l)=>{if(!e||!e.length){const f=i18n.i18n.t("validator.invalidRuleParams",s({rule:"DecimalPlaces",field:n||t,ruleParams:e},o));return l(f)}const u=Number(i);if(isNaN(u)){const f=i18n.i18n.t("validator.number",s({rule:"DecimalPlaces",field:n||t,value:i,ruleParams:e},o));return l(f)}const r=String(i),b=r.indexOf("."),a=b===-1?0:r.length-b-1;let m=false;if(e.length===1){const f=Number(e[0]);m=a===f;}else if(e.length===2){const f=Number(e[0]),M=Number(e[1]);m=a>=f&&a<=M;}if(m)g(true);else {const f=i18n.i18n.t("validator.decimalPlaces",s({field:n||t,value:i,places:e.join("-"),actualPlaces:a},o));l(f);}})}validator.Validator.registerRule("DecimalPlaces",w);const J=validator.Validator.createRuleDecorator(w);function S(o){var V=o,{value:i,fieldName:e,translatedPropertyName:t}=V,n=R(V,["value","fieldName","translatedPropertyName"]);return new Promise((d,g)=>{const l=Number(i);if(isNaN(l)||!Number.isInteger(l)){const u=i18n.i18n.t("validator.integer",s({field:t||e,value:i},n));g(u);}else d(true);})}const K=validator.Validator.createPropertyDecorator(["Integer"]);validator.Validator.registerRule("Integer",S);function q(V){var d=V,{value:i,ruleParams:e,fieldName:t,translatedPropertyName:n}=d,o=R(d,["value","ruleParams","fieldName","translatedPropertyName"]);return new Promise((g,l)=>{if(!e||!e.length){const m=i18n.i18n.t("validator.invalidRuleParams",O(s({rule:"MultipleOf",field:n||t},o),{ruleParams:e}));return l(m)}const u=Number(i);if(isNaN(u)){const m=i18n.i18n.t("validator.number",s({field:n||t,value:i,ruleParams:e},o));return l(m)}const r=Number(e[0]);if(isNaN(r)||r===0&&String(e[0]).trim()!=="0"){const m=i18n.i18n.t("validator.invalidRuleParams",s({rule:"MultipleOf",ruleParams:e,field:n||t},o));return l(m)}const b=u%r;if(Math.abs(b)<Number.EPSILON)g(true);else {const m=i18n.i18n.t("validator.multipleOf",s({field:n||t,value:u,multiple:r,ruleParams:e},o));l(m);}})}const Q=validator.Validator.createRuleDecorator(q);exports.HasDecimalPlaces=J;exports.IsInteger=K;exports.IsMultipleOf=Q;exports.IsNumberBetween=G;