@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 • 5.91 kB
JavaScript
;var index=require('../../utils/index'),validator=require('../validator'),i=require('../../i18n'),q=require('../../inputFormatter'),isNumber=require('../../utils/isNumber');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var i__default=/*#__PURE__*/_interopDefault(i);var q__default=/*#__PURE__*/_interopDefault(q);var $=Object.defineProperty,w=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,y=Object.prototype.propertyIsEnumerable;var I=(t,r,e)=>r in t?$(t,r,{enumerable:true,configurable:true,writable:true,value:e}):t[r]=e,g=(t,r)=>{for(var e in r||(r={}))O.call(r,e)&&I(t,e,r[e]);if(d)for(var e of d(r))y.call(r,e)&&I(t,e,r[e]);return t},h=(t,r)=>w(t,U(r));var R=(t,r)=>{var e={};for(var n in t)O.call(t,n)&&r.indexOf(n)<0&&(e[n]=t[n]);if(t!=null&&d)for(var n of d(t))r.indexOf(n)<0&&y.call(t,n)&&(e[n]=t[n]);return e};function l(t,r,s){var c=s,{value:e,ruleParams:n}=c,o=R(c,["value","ruleParams"]);n=Array.isArray(n)?n:[];const m=n||[];r=index.defaultStr(r);const f=i__default.default.t(r,h(g({},o),{value:e,ruleParams:n}));return e=typeof e=="number"?e:index.isStringNumber(e)?parseFloat(e):NaN,new Promise((p,N)=>{if(isNaN(e)||m[0]===void 0)return p(f);const L=typeof m[0]=="number"?m[0]:index.isStringNumber(m[0])?parseFloat(m[0]):NaN;if(isNaN(L))return N(f);if(t(e,L))return p(true);N(f);})}function D(t){return l((r,e)=>r<=e,"validator.numberLessThanOrEquals",t)}validator.Validator.registerRule("numberLessThanOrEquals",D);const K=validator.Validator.createDecorator(D);function E(t){return l((r,e)=>r<e,"validator.numberLessThan",t)}validator.Validator.registerRule("numberLessThan",E);const rr=validator.Validator.createDecorator(E);function F(t){return l((r,e)=>r>=e,"validator.numberGreaterThanOrEquals",t)}validator.Validator.registerRule("numberGreaterThanOrEquals",F);const er=validator.Validator.createDecorator(F);function S(t){return l((r,e)=>r>e,"validator.numberGreaterThan",t)}validator.Validator.registerRule("numberGreaterThan",S);const tr=validator.Validator.createDecorator(S);function A(t){return l((r,e)=>r===e,"validator.numberEquals",t)}validator.Validator.registerRule("numberEquals",A);const nr=validator.Validator.createDecorator(A);function G(t){return l((r,e)=>r!==e,"validator.numberIsDifferentFrom",t)}validator.Validator.registerRule("numberIsDifferentFrom",G);const ar=validator.Validator.createDecorator(G);validator.Validator.registerRule("required",function(r){const e=r==null?void 0:r.value;return !index.isEmpty(e)||i__default.default.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,o={value:t,minLength:e,maxLength:n,length:e},s=isNumber.isNumber(e)&&isNumber.isNumber(n)?i__default.default.t("validator.lengthRange",o):i__default.default.t("validator.length",o);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 ir=validator.Validator.createDecorator(C);validator.Validator.registerRule("email",function(r){const e=r==null?void 0:r.value;return !e||typeof e!="string"?true:index.isValidEmail(e)||i__default.default.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)||i__default.default.t("validator.url",r)});function H(t){let{value:r,ruleParams:e}=t;e=Array.isArray(e)?e:[];const n=parseFloat(e[0])||0,o=i__default.default.t("validator.minLength",h(g({},t),{minLength:n}));return index.isEmpty(r)||r&&typeof r=="string"&&String(r).length>=n||o}validator.Validator.registerRule("minLength",H);const or=validator.Validator.createDecorator(H);function M(t){let{value:r,ruleParams:e}=t;e=Array.isArray(e)?e:[];const n=parseFloat(e[0])||0,o=i__default.default.t("validator.maxLength",h(g({},t),{maxLength:n}));return index.isEmpty(r)||r&&typeof r=="string"&&String(r).length<=n||o}validator.Validator.registerRule("maxLength",M);const ur=validator.Validator.createDecorator(M);validator.Validator.registerRule("fileName",function(r){const{value:e}=r,n=i__default.default.t("validator.fileName",r);if(!index.isNonNullString(e))return n;const o=/^[^\\/:\*\?"<>\|]+$/,s=/^\./,c=/^(nul|prn|con|lpt[0-9]|com[0-9])(\.|$)/i;return o.test(String(e))&&!s.test(e)&&!c.test(e)||n}),validator.Validator.registerRule("number",function(r){const{value:e}=r;return typeof e=="number"||i__default.default.t("validator.isNumber",r)}),validator.Validator.registerRule("nonNullString",function(r){const{value:e}=r;return index.isNonNullString(e)||i__default.default.t("validator.isNonNullString",r)});function z(t){const{value:r,phoneCountryCode:e}=t;return q__default.default.isValidPhoneNumber(r,e)||i__default.default.t("validator.phoneNumber",t)}validator.Validator.registerRule("phoneNumber",z);const lr=validator.Validator.createPropertyDecorator("phoneNumber");function B(t){const{value:r,phoneCountryCode:e}=t;return index.isValidEmail(r)||q__default.default.isValidPhoneNumber(r,e)||i__default.default.t("validator.emailOrPhoneNumber",t)}validator.Validator.registerRule("emailOrPhoneNumber",B);const sr=validator.Validator.createPropertyDecorator("emailOrPhoneNumber");exports.ValidatorHasLength=ir;exports.ValidatorHasMaxLength=ur;exports.ValidatorHasMinLength=or;exports.ValidatorIsEmailOrPhoneNumber=sr;exports.ValidatorIsNumberEquals=nr;exports.ValidatorIsNumberGreaterThan=tr;exports.ValidatorIsNumberGreaterThanOrEquals=er;exports.ValidatorIsNumberLessThan=rr;exports.ValidatorIsNumberLestThanOrEquals=K;exports.ValidatorIsPhoneNumber=lr;exports.ValidatorNumberIsDifferentFrom=ar;