@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 • 6.28 kB
JavaScript
;var index=require('../../utils/index'),validator=require('../validator'),i18n=require('../../i18n'),inputFormatter=require('../../inputFormatter'),isNumber=require('../../utils/isNumber'),boolean=require('./boolean'),string=require('./string'),numeric=require('./numeric');var U=Object.defineProperty,P=Object.defineProperties;var $=Object.getOwnPropertyDescriptors;var g=Object.getOwnPropertySymbols;var I=Object.prototype.hasOwnProperty,O=Object.prototype.propertyIsEnumerable;var L=(t,r,e)=>r in t?U(t,r,{enumerable:true,configurable:true,writable:true,value:e}):t[r]=e,d=(t,r)=>{for(var e in r||(r={}))I.call(r,e)&&L(t,e,r[e]);if(g)for(var e of g(r))O.call(r,e)&&L(t,e,r[e]);return t},h=(t,r)=>P(t,$(r));var x=(t,r)=>{var e={};for(var n in t)I.call(t,n)&&r.indexOf(n)<0&&(e[n]=t[n]);if(t!=null&&g)for(var n of g(t))r.indexOf(n)<0&&O.call(t,n)&&(e[n]=t[n]);return e};function l(t,r,s){var c=s,{value:e,ruleParams:n}=c,i=x(c,["value","ruleParams"]);n=Array.isArray(n)?n:[];const m=n||[];r=index.defaultStr(r);const f=i18n.i18n.t(r,h(d({},i),{value:e,ruleParams:n}));return e=typeof e=="number"?e:index.isStringNumber(e)?parseFloat(e):NaN,new Promise((p,V)=>{if(isNaN(e)||m[0]===void 0)return p(f);const R=typeof m[0]=="number"?m[0]:index.isStringNumber(m[0])?parseFloat(m[0]):NaN;if(isNaN(R))return V(f);if(t(e,R))return p(true);V(f);})}function q(t){return l((r,e)=>r<=e,"validator.numberLessThanOrEquals",t)}validator.Validator.registerRule("NumberLessThanOrEquals",q);const K=validator.Validator.createRuleDecorator(q);function D(t){return l((r,e)=>r<e,"validator.numberLessThan",t)}validator.Validator.registerRule("NumberLessThan",D);const rr=validator.Validator.createRuleDecorator(D);function F(t){return l((r,e)=>r>=e,"validator.numberGreaterThanOrEquals",t)}validator.Validator.registerRule("NumberGreaterThanOrEquals",F);const er=validator.Validator.createRuleDecorator(F);function S(t){return l((r,e)=>r>e,"validator.numberGreaterThan",t)}validator.Validator.registerRule("NumberGreaterThan",S);const tr=validator.Validator.createRuleDecorator(S);function A(t){return l((r,e)=>r===e,"validator.numberEquals",t)}validator.Validator.registerRule("NumberEquals",A);const nr=validator.Validator.createRuleDecorator(A);function G(t){return l((r,e)=>r!==e,"validator.numberIsDifferentFrom",t)}validator.Validator.registerRule("NumberIsDifferentFrom",G);const ar=validator.Validator.createRuleDecorator(G);validator.Validator.registerRule("Required",function(r){const e=r==null?void 0:r.value;return !index.isEmpty(e)||i18n.i18n.t("validator.required")});function C({value:t,ruleParams:r}){r=Array.isArray(r)?r:[],t=index.defaultStr(t);const e=isNumber.isNumber(r[0])?r[0]:index.isStringNumber(r[0])?parseFloat(r[0]):void 0,n=isNumber.isNumber(r[1])?r[1]:index.isStringNumber(r[1])?parseFloat(r[1]):void 0,i={value:t,minLength:e,maxLength:n,length:e},s=isNumber.isNumber(e)&&isNumber.isNumber(n)?i18n.i18n.t("validator.lengthRange",i):i18n.i18n.t("validator.length",i);return isNumber.isNumber(e)&&isNumber.isNumber(n)?t.length>=e&&t.length<=n||s:isNumber.isNumber(e)?String(t).trim().length==e||s:true}validator.Validator.registerRule("Length",C);const or=validator.Validator.createRuleDecorator(C);validator.Validator.registerRule("Email",function(r){const e=r==null?void 0:r.value;return !e||typeof e!="string"?true:index.isValidEmail(e)||i18n.i18n.t("validator.email",r)}),validator.Validator.registerRule("Url",function(r){const e=r==null?void 0:r.value;return !e||typeof e!="string"?true:index.isValidUrl(e)||i18n.i18n.t("validator.url",r)});function H(t){let{value:r,ruleParams:e}=t;e=Array.isArray(e)?e:[];const n=parseFloat(e[0])||0,i=i18n.i18n.t("validator.minLength",h(d({},t),{minLength:n}));return index.isEmpty(r)||r&&typeof r=="string"&&String(r).length>=n||i}validator.Validator.registerRule("MinLength",H);const ir=validator.Validator.createRuleDecorator(H);function M(t){let{value:r,ruleParams:e}=t;e=Array.isArray(e)?e:[];const n=parseFloat(e[0])||0,i=i18n.i18n.t("validator.maxLength",h(d({},t),{maxLength:n}));return index.isEmpty(r)||r&&typeof r=="string"&&String(r).length<=n||i}validator.Validator.registerRule("MaxLength",M);const ur=validator.Validator.createRuleDecorator(M);validator.Validator.registerRule("FileName",function(r){const{value:e}=r,n=i18n.i18n.t("validator.fileName",r);if(!index.isNonNullString(e))return n;const i=/^[^\\/:*?"<>|]+$/,s=/^\./,c=/^(nul|prn|con|lpt[0-9]|com[0-9])(\.|$)/i;return i.test(String(e))&&!s.test(e)&&!c.test(e)||n}),validator.Validator.registerRule("Number",function(r){const{value:e}=r;return typeof e=="number"||i18n.i18n.t("validator.isNumber",r)}),validator.Validator.registerRule("NonNullString",function(r){const{value:e}=r;return index.isNonNullString(e)||i18n.i18n.t("validator.isNonNullString",r)});function k(t){const{value:r,phoneCountryCode:e}=t;return inputFormatter.InputFormatter.isValidPhoneNumber(r,e)||i18n.i18n.t("validator.phoneNumber",t)}validator.Validator.registerRule("PhoneNumber",k);const lr=validator.Validator.createPropertyDecorator(["PhoneNumber"]);function z(t){const{value:r,phoneCountryCode:e}=t;return index.isValidEmail(r)||inputFormatter.InputFormatter.isValidPhoneNumber(r,e)||i18n.i18n.t("validator.emailOrPhoneNumber",t)}validator.Validator.registerRule("EmailOrPhoneNumber",z);const sr=validator.Validator.createPropertyDecorator(["EmailOrPhoneNumber"]);exports.HasLength=or;exports.HasMaxLength=ur;exports.HasMinLength=ir;exports.IsEmailOrPhoneNumber=sr;exports.IsNumberEquals=nr;exports.IsNumberGreaterThan=tr;exports.IsNumberGreaterThanOrEquals=er;exports.IsNumberIsDifferentFrom=ar;exports.IsNumberLessThan=rr;exports.IsNumberLessThanOrEquals=K;exports.IsPhoneNumber=lr;Object.keys(boolean).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return boolean[k]}})});Object.keys(string).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return string[k]}})});Object.keys(numeric).forEach(function(k){if(k!=='default'&&!Object.prototype.hasOwnProperty.call(exports,k))Object.defineProperty(exports,k,{enumerable:true,get:function(){return numeric[k]}})});