vest 4.0.0-dev-7acb76 → 4.0.0-dev-1aae50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +70 -50
- package/README.md +2 -112
- package/dist/cjs/classnames.development.js +3 -3
- package/dist/cjs/classnames.production.js +1 -1
- package/dist/cjs/compose.js +7 -0
- package/dist/cjs/compounds.js +7 -0
- package/dist/cjs/enforce/compose.development.js +139 -0
- package/dist/cjs/enforce/compose.production.js +1 -0
- package/dist/cjs/enforce/compounds.development.js +132 -0
- package/dist/cjs/enforce/compounds.production.js +1 -0
- package/dist/cjs/enforce/package.json +1 -0
- package/dist/cjs/enforce/schema.development.js +144 -0
- package/dist/cjs/enforce/schema.production.js +1 -0
- package/dist/cjs/promisify.development.js +1 -1
- package/dist/cjs/promisify.production.js +1 -1
- package/dist/cjs/schema.js +7 -0
- package/dist/cjs/vest.development.js +582 -1083
- package/dist/cjs/vest.production.js +1 -1
- package/dist/es/classnames.development.js +3 -3
- package/dist/es/classnames.production.js +1 -1
- package/dist/es/enforce/compose.development.js +137 -0
- package/dist/es/enforce/compose.production.js +1 -0
- package/dist/es/enforce/compounds.development.js +130 -0
- package/dist/es/enforce/compounds.production.js +1 -0
- package/dist/es/enforce/package.json +1 -0
- package/dist/es/enforce/schema.development.js +140 -0
- package/dist/es/enforce/schema.production.js +1 -0
- package/dist/es/promisify.development.js +1 -1
- package/dist/es/promisify.production.js +1 -1
- package/dist/es/vest.development.js +577 -1084
- package/dist/es/vest.production.js +1 -1
- package/dist/umd/classnames.development.js +3 -3
- package/dist/umd/classnames.production.js +1 -1
- package/dist/umd/enforce/compose.development.js +143 -0
- package/dist/umd/enforce/compose.production.js +1 -0
- package/dist/umd/enforce/compounds.development.js +136 -0
- package/dist/umd/enforce/compounds.production.js +1 -0
- package/dist/umd/enforce/schema.development.js +148 -0
- package/dist/umd/enforce/schema.production.js +1 -0
- package/dist/umd/promisify.development.js +1 -1
- package/dist/umd/promisify.production.js +1 -1
- package/dist/umd/vest.development.js +1693 -2197
- package/dist/umd/vest.production.js +1 -1
- package/enforce/compose/package.json +7 -0
- package/enforce/compounds/package.json +7 -0
- package/enforce/schema/package.json +7 -0
- package/package.json +107 -13
- package/testUtils/mockThrowError.ts +16 -0
- package/types/classnames.d.ts +2 -2
- package/types/enforce/compose.d.ts +134 -0
- package/types/enforce/compounds.d.ts +146 -0
- package/types/enforce/schema.d.ts +151 -0
- package/types/vest.d.ts +31 -196
- package/docs/.nojekyll +0 -0
- package/docs/README.md +0 -113
- package/docs/_assets/favicon.ico +0 -0
- package/docs/_assets/vest-logo.png +0 -0
- package/docs/_sidebar.md +0 -14
- package/docs/cross_field_validations.md +0 -33
- package/docs/enforce.md +0 -11
- package/docs/exclusion.md +0 -129
- package/docs/getting_started.md +0 -72
- package/docs/group.md +0 -142
- package/docs/index.html +0 -41
- package/docs/migration.md +0 -202
- package/docs/n4s/rules.md +0 -1282
- package/docs/node.md +0 -36
- package/docs/optional.md +0 -103
- package/docs/result.md +0 -249
- package/docs/state.md +0 -102
- package/docs/test.md +0 -172
- package/docs/utilities.md +0 -109
- package/docs/warn.md +0 -82
|
@@ -1 +1 @@
|
|
|
1
|
-
function n(){return(n=Object.assign||function(n){for(var t,r=1,e=arguments.length;r<e;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)}function t(n,t,r){if(r||2===arguments.length)for(var e,u=0,i=t.length;u<i;u++)!e&&u in t||(e||(e=Array.prototype.slice.call(t,0,u)),e[u]=t[u]);return n.concat(e||t)}var r=Object.assign;function e(n){return"function"==typeof n}function u(n,t){function r(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(t(n[i],r,i),e)return u}function i(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return e(n)?n.apply(void 0,t):n}function o(n,t){var r;return null!==(r=i(n))&&void 0!==r?r:t}function s(n,t){return n={pass:n},t&&(n.message=t),n}function a(n,t){try{return n.run(t)}catch(n){return s(!1)}}function c(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function f(n,t){return n.length===Number(t)}var l=c(f);function p(n,t){return n.length>Number(t)}function v(n){return null===n}var d=c(v);function h(n){return void 0===n}var g=c(h);function m(n){return String(n)===n}function y(n,t){return m(n)&&m(t)&&n.endsWith(t)}var N=c(y);function b(n,t){return n===t}var E=c(b);function C(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}var O=c(C);function T(n,t){return C(n)&&C(t)&&Number(n)>Number(t)}function w(n,t){return C(n)&&C(t)&&Number(n)>=Number(t)}function S(n){return!!Array.isArray(n)}var P=c(S);function x(n,t){return!!(S(t)||m(t)&&m(n))&&-1!==t.indexOf(n)}var k=c(x);function F(n,t){return C(n)&&C(t)&&Number(n)<=Number(t)}function A(n,t,r){return w(n,t)&&F(n,r)}var I=c(A);function W(n){return m(n)&&!n.trim()}var X=c(W);function R(n){return!!n===n}var j=c(R);function U(n){return"number"==typeof n}var D=c(U);function L(n){if(n){if(U(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return f(n,0);if("object"==typeof n)return f(Object.keys(n),0)}return!0}var G=c(L);function q(n){return Number.isNaN(n)}var B=c(q);function K(n){return!!C(n)&&0>Number(n)}var _=c(K),H=c(m);function M(n){return!!n}var J=c(M);function z(n,t){return C(n)&&C(t)&&Number(n)<Number(t)}function V(n,t){return t instanceof RegExp?t.test(n):!!m(t)&&new RegExp(t).test(n)}var Y=c(V);function Q(n,t){return C(n)&&C(t)&&Number(n)===Number(t)}var Z=c(Q);function $(n,t){return m(n)&&m(t)&&n.startsWith(t)}var nn=c($);function tn(n,t){throw Error(o(t,n))}function rn(n){function t(t,i){var o,s,a=e();return t=r({},a||{},null!==(o=null==n?void 0:n(t,a))&&void 0!==o?o:t),o=u.ctx=Object.freeze(t),u.ancestry.unshift(o),i=i(o),u.ancestry.shift(),u.ctx=null!==(s=u.ancestry[0])&&void 0!==s?s:null,i}function e(){return u.ctx}var u={ancestry:[]};return{bind:function(n,r){return function(){for(var e=[],u=0;u<arguments.length;u++)e[u]=arguments[u];return t(n,(function(){return r.apply(void 0,e)}))}},run:t,use:e,useX:function(n){var t;return null!==(t=u.ctx)&&void 0!==t?t:tn(o(n,"Context was used after it was closed"))}}}var en=rn((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:r(e,{parent:un})}));function un(){return null}function on(n,t){function r(r){var e=n[r],u=t[r];if(!(r=en.run({value:e,set:!0,meta:{key:r}},(function(){return a(u,e)}))).pass)return{value:r}}for(var e in t){var u=r(e);if("object"==typeof u)return u.value}return s(!0)}var sn=r({condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:N,doesNotStartWith:nn,endsWith:y,equals:b,greaterThan:T,greaterThanOrEquals:w,gt:T,gte:w,inside:x,isArray:S,isBetween:A,isBlank:W,isBoolean:R,isEmpty:L,isEven:function(n){return!!C(n)&&0==n%2},isFalsy:J,isNaN:q,isNegative:K,isNotArray:P,isNotBetween:I,isNotBlank:X,isNotBoolean:j,isNotEmpty:G,isNotNaN:B,isNotNull:d,isNotNumber:D,isNotNumeric:O,isNotString:H,isNotUndefined:g,isNull:v,isNumber:U,isNumeric:C,isOdd:function(n){return!!C(n)&&0!=n%2},isPositive:_,isString:m,isTruthy:M,isUndefined:h,lengthEquals:f,lengthNotEquals:l,lessThan:z,lessThanOrEquals:F,longerThan:p,longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:z,lte:F,matches:V,notEquals:E,notInside:k,notMatches:Y,numberEquals:Q,numberNotEquals:Z,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:$},{allOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass||r(t)})),s(!0))},anyOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){(t=a(t,n)).pass&&r(t)})),s(!1))},noneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];return o(u(t,(function(t,r){a(t,n).pass&&r(s(!1))})),s(!0))},oneOf:function(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var e=[];return t.some((function(t){if(p(e,1))return!1;(t=a(t,n)).pass&&e.push(t)})),s(f(e,1))},optional:function(n,t){return h(n)||null===n?s(!0):a(t,n)}},{shape:function(n,t){var r=on(n,t);if(!r.pass)return r;for(var e in n)if(!Object.prototype.hasOwnProperty.call(t,e))return s(!1);return s(!0)},loose:on,isArrayOf:function(n,t){return o(u(n,(function(n,r,e){(e=en.run({value:n,set:!0,meta:{index:e}},(function(){return a(t,n)}))).pass||r(e)})),s(!0))}});function an(n){for(var t in sn){var r=sn[t];e(r)&&n(t,r)}}function cn(){return"function"==typeof Proxy}function fn(n,r,e){for(var u=[],o=3;o<arguments.length;o++)u[o-3]=arguments[o];return R(n)||n&&R(n.pass)||tn("Incorrect return value for rule: "+JSON.stringify(n)),R(n)?s(n):s(n.pass,i.apply(void 0,t([n.message,r,e],u)))}function ln(n){function r(r,e,u){return function(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(!(o=fn.apply(void 0,t([en.run({value:n},(function(){return e.apply(void 0,t([n],i))})),u,n],i))).pass){if(!L(o.message))throw o.message;tn("enforce/"+u+" failed with "+JSON.stringify(n))}return r}}var e={};if(!cn())return an((function(n,t){e[n]=r(e,t,n)})),e;var u=new Proxy(e,{get:function(n,t){if(n=sn[t])return r(u,n,t)}});return u}function pn(n){var r,e=[];return function n(a){return function(){for(var c=[],f=0;f<arguments.length;f++)c[f]=arguments[f];var l=sn[a];e.push((function(n){return fn.apply(void 0,t([l.apply(void 0,t([n],c)),a,n],c))}));var p={run:function(n){return o(u(e,(function(t,e){var u,o=en.run({value:n},(function(){return t(n)}));o.pass||e(s(!!o.pass,null!==(u=i(r,n,o.message))&&void 0!==u?u:o.message))})),s(!0))},test:function(n){return p.run(n).pass},message:function(n){return n&&(r=n),p}};return cn()?p=new Proxy(p,{get:function(t,r){return sn[r]?n(r):t[r]}}):(an((function(t){p[t]=n(t)})),p)}}(n)}function vn(n){var t,r={};for(t in n)r[t]=hn.optional(n[t]);return r}var dn,hn=(dn=n({context:function(){return en.useX()},extend:function(n){r(sn,n)}},{partial:vn}),cn()?new Proxy(r(ln,dn),{get:function(n,t){return t in n?n[t]:sn[t]?pn(t):void 0}}):(an((function(n){dn[n]=pn(n)})),dn)),gn=function(n){return function(){return""+n++}}(0);var mn,yn=mn||(mn={});function Nn(n){return(n=[].concat(n))[n.length-1]}function bn(){function n(){t=[0]}var t=[];return n(),{addLevel:function(){t.push(0)},cursorAt:function(){return Nn(t)},getCursor:function(){return[].concat(t)},next:function(){return t[t.length-1]++,Nn(t)},removeLevel:function(){t.pop()},reset:n}}yn[yn.DEFAULT=0]="DEFAULT",yn[yn.SUITE=1]="SUITE",yn[yn.EACH=2]="EACH",yn[yn.SKIP_WHEN=3]="SKIP_WHEN",yn[yn.GROUP=4]="GROUP";var En=rn((function(n,t){return t?null:r({},{isolate:{type:mn.DEFAULT},testCursor:bn(),exclusion:{tests:{},groups:{}}},n)}));function Cn(n,t){for(var r=[],e=0;e<n.length;e++){var u=n[e];S(u)?r.push(Cn(u,t)):(u=t(u),d(u)&&r.push(u))}return r}function On(n){return[].concat(n).reduce((function(n,t){return S(t)?n.concat(On(t)):[].concat(n).concat(t)}),[])}function Tn(n,t){var r=0;for(t=t.slice(0,-1);r<t.length;r++){var e=t[r];n[e]=o(n[e],[]),n=n[e]}return n}function wn(n){function t(e,u){var i=t.get(e);return i?i[1]:(u=u(),r.unshift([e.concat(),u]),p(r,n)&&(r.length=n),u)}void 0===n&&(n=1);var r=[];return t.invalidate=function(n){var t=r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}));-1<t&&r.splice(t,1)},t.get=function(n){return r[r.findIndex((function(t){var r=t[0];return f(n,r.length)&&n.every((function(n,t){return n===r[t]}))}))]||null},t}function Sn(){return En.useX().stateRef}function Pn(){(0,Sn().testObjects()[1])((function(n){return{prev:n.prev,current:[].concat(n.current)}}))}function xn(n){(0,Sn().testObjects()[1])((function(t){return{prev:t.prev,current:[].concat(n(t.current))}}))}function kn(){return On(Cn(Sn().testObjects()[0].current,(function(n){return n.isPending()?n:null})))}var Fn=wn();function An(){var n=Sn().testObjects()[0].current;return Fn([n],(function(){return On(n)}))}function In(){return En.useX().testCursor.getCursor()}function Wn(n,t){if(n=void 0===(n=n.type)?mn.DEFAULT:n,e(t)){var r=In();return En.run({isolate:{type:n}},(function(){En.useX().testCursor.addLevel(),xn((function(n){return Tn(n,r)[Nn(r)]=[],n}));var n=t();return En.useX().testCursor.removeLevel(),En.useX().testCursor.next(),n}))}}function Xn(n,t){return!(!t||n.fieldName!==t)}function Rn(){var n=Sn().optionalFields()[0];if(!L(n)){var t={};xn((function(r){return Cn(r,(function(r){var u=r.fieldName;if(t.hasOwnProperty(u))t[r.fieldName]&&r.omit();else{var i=n[u];e(i)&&(t[u]=i(),t[r.fieldName]&&r.omit())}return r}))}))}}function jn(n){var t=kn();return!L(t)&&(n?t.some((function(t){return Xn(t,n)})):G(t))}function Un(n,t){function r(n,t){i[n]++,u&&(i[t]=(i[t]||[]).concat(u))}var e=t.fieldName,u=t.message;n[e]=n[e]||{errorCount:0,warnCount:0,testCount:0};var i=n[e];return t.isSkipped()||(n[e].testCount++,t.isFailing()?r("errorCount","errors"):t.isWarning()&&r("warnCount","warnings")),i}function Dn(t,r,e){var u;void 0===e&&(e={});var i=(e=e||{}).group,o=e.fieldName;return r.reduce((function(n,r){return i&&r.groupName!==i||o&&!Xn(r,o)||"warnings"===t!=!!r.warns||!r.hasFailures()||(n[r.fieldName]=(n[r.fieldName]||[]).concat(r.message||[])),n}),n({},o&&((u={})[o]=[],u)))}function Ln(n){return qn("errors",n)}function Gn(n){return qn("warnings",n)}function qn(n,t){return n=Dn(n,An(),{fieldName:t}),t?n[t]:n}function Bn(n,t){return n=_n("errors",n,t),t?n[t]:n}function Kn(n,t){return n=_n("warnings",n,t),t?n[t]:n}function _n(n,t,r){return t||tn("get"+n[0].toUpperCase()+n.slice(1)+"ByGroup requires a group name. Received `"+t+"` instead."),Dn(n,An(),{group:t,fieldName:r})}function Hn(n,t,r){return!(!n.hasFailures()||r&&!Xn(n,r)||"warnings"===t!=!!n.warns)}function Mn(n){return zn("errors",n)}function Jn(n){return zn("warnings",n)}function zn(n,t){return An().some((function(r){return Hn(r,n,t)}))}function Vn(n,t){return Qn("errors",n,t)}function Yn(n,t){return Qn("warnings",n,t)}function Qn(n,t,r){return An().some((function(e){return t===e.groupName&&Hn(e,n,r)}))}var Zn=wn(20);function $n(){var n=An(),t={stateRef:Sn()};return Zn([n],En.bind(t,(function(){return r(function(){var n={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return An().forEach((function(t){var r=t.fieldName,e=t.groupName;n.tests[r]=Un(n.tests,t),e&&(n.groups[e]=n.groups[e]||{},n.groups[e][r]=Un(n.groups[e],t))})),function(n){for(var t in n.tests)n.errorCount+=n.tests[t].errorCount,n.warnCount+=n.tests[t].warnCount,n.testCount+=n.tests[t].testCount;return n}(n)}(),{getErrors:En.bind(t,Ln),getErrorsByGroup:En.bind(t,Bn),getWarnings:En.bind(t,Gn),getWarningsByGroup:En.bind(t,Kn),hasErrors:En.bind(t,Mn),hasErrorsByGroup:En.bind(t,Vn),hasWarnings:En.bind(t,Jn),hasWarningsByGroup:En.bind(t,Yn),isValid:En.bind(t,(function(n){var t=$n(),r=An().reduce((function(n,t){return n[t.fieldName]||t.isOmitted()&&(n[t.fieldName]=!0),n}),{});return(r=!!n&&!!r[n])?n=!0:t.hasErrors(n)?n=!1:n=!(L(r=An())||n&&L(t.tests[n])||function(n){var t=Sn().optionalFields()[0];return G(kn().filter((function(r){return!(n&&!Xn(r,n))&&!0!==t[r.fieldName]})))}(n))&&function(n){var t=An(),r=Sn().optionalFields()[0];return t.every((function(t){return!(!n||Xn(t,n))||!0===r[t.fieldName]||t.isTested()||t.isOmitted()}))}(n),n}))})})))}var nt,tt=wn(20);function rt(){var n=An(),t={stateRef:Sn()};return tt([n],En.bind(t,(function(){return r({},$n(),{done:En.bind(t,it)})})))}function et(n,t,r){return!(e(n)&&(!t||r.tests[t]&&0!==r.tests[t].testCount))}function ut(n){return!(jn()&&(!n||jn(n)))}function it(){function n(){return e($n())}for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=(t=t.reverse())[0];return t=t[1],r=rt(),et(e,t,r)?r:ut(t)?(n(),r):(ot(n,t),r)}function ot(n,t){var r=En.bind({},n);(0,Sn().testCallbacks()[1])((function(n){return t?n.fieldCallbacks[t]=(n.fieldCallbacks[t]||[]).concat(r):n.doneCallbacks.push(r),n}))}function st(n){return n.forEach((function(n){return n()}))}function at(){var n=En.useX();return n.bus||tn(),n.bus}function ct(n){return lt("only","tests",n)}function ft(n){return lt("skip","tests",n)}function lt(n,t,r){var e=En.useX("hook called outside of a running suite.");r&&[].concat(r).forEach((function(r){m(r)&&(e.exclusion[t][r]="only"===n)}))}function pt(n){for(var t in n)if(!0===n[t])return!0;return!1}function vt(n){tn("Wrong arguments passed to group. Group "+n+".")}(nt||(nt={})).TEST_COMPLETED="test_completed",ct.group=function(n){return lt("only","groups",n)},ft.group=function(n){return lt("skip","groups",n)};var dt=function(){function n(n,t,r){var e=void 0===r?{}:r;r=e.message,e=e.groupName,this.id=gn(),this.warns=!1,this.status=ht,this.fieldName=n,this.testFn=t,e&&(this.groupName=e),r&&(this.message=r)}return n.prototype.run=function(){try{var n=this.testFn()}catch(t){n=t,h(this.message)&&m(n)&&(this.message=t),n=!1}return!1===n&&this.fail(),n},n.prototype.setStatus=function(n){this.isFinalStatus()&&n!==Ct||(this.status=n)},n.prototype.setPending=function(){this.setStatus(bt)},n.prototype.fail=function(){this.setStatus(this.warns?yt:mt)},n.prototype.done=function(){this.isFinalStatus()||this.setStatus(Nt)},n.prototype.warn=function(){this.warns=!0},n.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},n.prototype.skip=function(){this.isPending()||this.setStatus(gt)},n.prototype.cancel=function(){this.setStatus(Et),Pn()},n.prototype.omit=function(){this.setStatus(Ct)},n.prototype.valueOf=function(){return!this.isFailing()},n.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},n.prototype.isPending=function(){return this.status===bt},n.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},n.prototype.isOmitted=function(){return this.status===Ct},n.prototype.isUntested=function(){return this.status===ht},n.prototype.isFailing=function(){return this.status===mt},n.prototype.isCanceled=function(){return this.status===Et},n.prototype.isSkipped=function(){return this.status===gt},n.prototype.isPassing=function(){return this.status===Nt},n.prototype.isWarning=function(){return this.status===yt},n}(),ht="UNTESTED",gt="SKIPPED",mt="FAILED",yt="WARNING",Nt="PASSING",bt="PENDING",Et="CANCELED",Ct="OMITTED";function Ot(n){var t=n.asyncTest,r=n.message;if(t&&e(t.then)){var u=at().emit,i=Sn(),o=En.bind({stateRef:i},(function(){Pn(),u(nt.TEST_COMPLETED,n)}));i=En.bind({stateRef:i},(function(t){n.isCanceled()||(n.message=m(t)?t:r,n.fail(),o())}));try{t.then(o,i)}catch(n){i()}}}function Tt(n){var t=Sn().testObjects(),r=t[1],e=t[0].prev;if(L(e))return wt(n),n;if(function(n,t){return G(n)&&!(n.fieldName===t.fieldName&&n.groupName===t.groupName)}(t=function(n){var t=In();return Tn(n,t)[Nn(t)]}(e),n)){!function(n,t){En.useX().isolate.type!==mn.EACH&&function(n,t){setTimeout((function(){tn(n,t)}),0)}("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+"\n This happens when you conditionally call your tests using if/else.\n This might lead to incorrect validation results.\n Replacing if/else with skipWhen solves these issues.")}(t,n),t=Tn(e,In());var u=En.useX().testCursor.cursorAt();t.splice(u),r((function(n){return{prev:e,current:n.current}})),t=null}return wt(n=o(t,n)),n}function wt(n){var t=In();xn((function(r){return Tn(r,t)[Nn(t)]=n,r}))}function St(n){var t=Tt(n);if(function(n){var t=n.fieldName;n=n.groupName;var r=En.useX();if(r.skipped)return!0;var e=(r=r.exclusion).tests,u=e[t];if(!1===u)return!0;if(u=!0===u,n){n:{var i=En.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,n))var o=!1===i[n];else{for(o in i)if(!0===i[o]){o=!0;break n}o=!1}}if(o)return!0;if(!0===r.groups[n])return!(u||!pt(e)&&!1!==e[t])}return!u&&pt(e)}(n))return n.skip(),En.useX().testCursor.next(),t;if(n!==t&&t.fieldName===n.fieldName&&t.groupName===n.groupName&&t.isPending()&&t.cancel(),wt(n),En.useX().testCursor.next(),n.isUntested()){t=at().emit;var r=function(n){return En.run({currentTest:n},(function(){try{var t=n.testFn()}catch(r){t=r,h(n.message)&&m(t)&&(n.message=r),t=!1}return!1===t&&n.fail(),t}))}(n);try{r&&e(r.then)?(n.asyncTest=r,n.setPending(),Ot(n)):t(nt.TEST_COMPLETED,n)}catch(t){tn("Your test function "+n.fieldName+" returned "+JSON.stringify(r)+'. Only "false" or a Promise are supported. Return values may cause unexpected behavior.')}}else(t=n.asyncTest)&&e(t.then)&&(n.setPending(),Ot(n));return n}function Pt(n){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];r=t.reverse(),t=r[0],r=r[1];var e=En.useX();return St(t=new dt(n,t,{message:r,groupName:null==e?void 0:e.groupName}))}var xt=r(Pt,{each:function(n){return function(r){return S(r)||tn("test.each: Expected table to be an array."),function(e){for(var u=[],o=1;o<arguments.length;o++)u[o-1]=arguments[o];var s=(u=u.reverse())[0],a=u[1];return Wn({type:mn.EACH},(function(){return r.map((function(r){return r=[].concat(r),n(i.apply(void 0,t([e],r)),i.apply(void 0,t([a],r)),(function(){return s.apply(void 0,r)}))}))}))}}}(Pt),memo:function(n){var t=wn(100);return function(r){for(var e=[],u=1;u<arguments.length;u++)e[u-1]=arguments[u];u=Sn().suiteId()[0];var i=En.useX().testCursor.cursorAt(),o=(e=e.reverse())[1],s=e[2];return e=[u,r,i].concat(e[0]),null===(u=t.get(e))?t(e,(function(){return n(r,s,o)})):u[1].isCanceled()?(t.invalidate(e),t(e,(function(){return n(r,s,o)}))):St(u[1])}}(Pt)}),kt="4.0.0-dev-7acb76";function Ft(n){e(n)||tn("Suite initialization error. Expected `tests` to be a function.");var t=function(){var n=function(){var n={};return{emit:function(t,r){n[t]&&n[t].forEach((function(n){n(r)}))},on:function(t,r){return n[t]||(n[t]=[]),n[t].push(r),{off:function(){n[t]=n[t].filter((function(n){return n!==r}))}}}}}();return n.on(nt.TEST_COMPLETED,(function(n){if(!n.isCanceled()){n.done(),n=n.fieldName;var t=Sn().testCallbacks()[0].fieldCallbacks;n&&!jn(n)&&S(t[n])&&st(t[n]),n=Sn().testCallbacks()[0].doneCallbacks,jn()||st(n)}})),n}(),u=function(n){function t(n,t,e){return u.references.push(),r(n,i(t,e)),function(){return[u.references[n],function(t){return r(n,i(t,u.references[n]))}]}}function r(t,r){var i=u.references[t];u.references[t]=r,e(t=o[t][1])&&t(r,i),e(n)&&n()}var u={references:[]},o=[];return{registerStateKey:function(n,r){var e=o.length;return o.push([n,r]),t(e,n)},reset:function(){var n=u.references;u.references=[],o.forEach((function(r,e){return t(e,r[0],n[e])}))}}}(),o=function(n,t){return t=t.suiteId,{optionalFields:n.registerStateKey((function(){return{}})),suiteId:n.registerStateKey(t),testCallbacks:n.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:n.registerStateKey((function(n){return{prev:n?n.current:[],current:[]}}))}}(u,{suiteId:gn()});return r(En.bind({stateRef:o,bus:t},(function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return u.reset(),Wn({type:mn.SUITE},(function(){n.apply(void 0,t)})),Rn(),rt()})),{get:En.bind({stateRef:o},$n),remove:En.bind({stateRef:o},(function(n){An().forEach((function(t){Xn(t,n)&&(t.cancel(),function(n){xn((function(t){return Cn(t,(function(t){return n!==t?t:null}))}))}(t))}))})),reset:u.reset})}function At(n,t){m(n)||vt("name must be a string"),e(t)||vt("callback must be a function"),Wn({type:mn.GROUP},(function(){En.run({groupName:n},t)}))}function It(n){(0,Sn().optionalFields()[1])((function(t){if(S(n)||m(n))[].concat(n).forEach((function(n){t[n]=!0}));else for(var r in n)t[r]=n[r];return t}))}function Wt(n,t){Wn({type:mn.SKIP_WHEN},(function(){En.run({skipped:i(n)},(function(){return t()}))}))}function Xt(){var n=En.useX("warn hook called outside of a running suite.");n.currentTest||tn("warn called outside of a test."),n.currentTest.warn()}export{kt as VERSION,Ft as create,hn as enforce,At as group,ct as only,It as optional,ft as skip,Wt as skipWhen,xt as test,Xt as warn};
|
|
1
|
+
import{createContext as t}from"context";export{enforce}from"n4s";var n,e=Object.assign,r=(n=0,function(){return""+n++});function u(t){return"function"==typeof t}function i(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];return u(t)?t.apply(void 0,n):t}function o(t,n){var e;return null!==(e=i(t))&&void 0!==e?e:n}function s(t,n){throw Error(o(n,t))}function a(t,n){setTimeout((function(){s(t,n)}),0)}function c(t){function n(t,n,u){return r.references.push(),e(t,i(n,u)),function(){return[r.references[t],function(n){return e(t,i(n,r.references[t]))}]}}function e(n,e){var i=r.references[n];r.references[n]=e,u(n=o[n][1])&&n(e,i),u(t)&&t()}var r={references:[]},o=[];return{registerStateKey:function(t,e){var r=o.length;return o.push([t,e]),n(r,t)},reset:function(){var t=r.references;r.references=[],o.forEach((function(e,r){return n(r,e[0],t[r])}))}}}var f,l=f||(f={});function p(t,n){var e=n.suiteId;return n=n.suiteName,{optionalFields:t.registerStateKey((function(){return{}})),suiteId:t.registerStateKey(e),suiteName:t.registerStateKey(n),testCallbacks:t.registerStateKey((function(){return{fieldCallbacks:{},doneCallbacks:[]}})),testObjects:t.registerStateKey((function(t){return{prev:t?t.current:[],current:[]}}))}}function v(t){return(t=[].concat(t))[t.length-1]}function d(){function t(){n=[0]}var n=[];return t(),{addLevel:function(){n.push(0)},cursorAt:function(){return v(n)},getCursor:function(){return[].concat(n)},next:function(){return n[n.length-1]++,v(n)},removeLevel:function(){n.pop()},reset:t}}l[l.DEFAULT=0]="DEFAULT",l[l.SUITE=1]="SUITE",l[l.EACH=2]="EACH",l[l.SKIP_WHEN=3]="SKIP_WHEN",l[l.GROUP=4]="GROUP";var g=t((function(t,n){return n?null:e({},{exclusion:{tests:{},groups:{}},isolate:{type:f.DEFAULT,keys:{current:{},prev:{}}},testCursor:d()},t)}));function h(t){return function(){for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];return!t.apply(void 0,n)}}var m=h((function(t){return null===t}));function y(t,n){for(var e=[],r=0;r<t.length;r++){var u=t[r];Array.isArray(u)?e.push(y(u,n)):(u=n(u),m(u)&&e.push(u))}return e}function E(t){return[].concat(t).reduce((function(t,n){return Array.isArray(n)?t.concat(E(n)):[].concat(t).concat(n)}),[])}function b(t,n){var e=0;for(n=n.slice(0,-1);e<n.length;e++){var r=n[e];t[r]=o(t[r],[]),t=t[r]}return t}function N(t){return null==t}function C(t){return String(t)===t}function k(t){function n(r,u){var i=n.get(r);return i?i[1]:(u=u(),e.unshift([r.concat(),u]),e.length>Number(t)&&(e.length=t),u)}void 0===t&&(t=1);var e=[];return n.invalidate=function(t){var n=e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}));-1<n&&e.splice(n,1)},n.get=function(t){return e[e.findIndex((function(n){var e=n[0];return t.length===Number(e.length)&&t.every((function(t,n){return t===e[n]}))}))]||null},n}function T(){return g.useX().stateRef}function S(){return T().testObjects()}function P(){(0,S()[1])((function(t){return{prev:t.prev,current:[].concat(t.current)}}))}function O(t){(0,S()[1])((function(n){return{prev:n.prev,current:[].concat(t(n.current))}}))}function w(){return E(y(S()[0].current,(function(t){return t.isPending()?t:null})))}var F=k();function I(){var t=S()[0].current;return F([t],(function(){return E(t)}))}var A,X=A||(A={});X.Error="error",X.Warning="warning";var D=function(){function t(t,n,e){var u=void 0===e?{}:e;e=u.message;var i=u.groupName;u=u.key,this.key=null,this.id=r(),this.severity=A.Error,this.status=L,this.fieldName=t,this.testFn=n,i&&(this.groupName=i),e&&(this.message=e),u&&(this.key=u)}return t.prototype.run=function(){try{var t=this.testFn()}catch(n){t=n,void 0===this.message&&C(t)&&(this.message=n),t=!1}return!1===t&&this.fail(),t},t.prototype.setStatus=function(t){this.isFinalStatus()&&t!==M||(this.status=t)},t.prototype.warns=function(){return this.severity===A.Warning},t.prototype.setPending=function(){this.setStatus(R)},t.prototype.fail=function(){this.setStatus(this.warns()?W:U)},t.prototype.done=function(){this.isFinalStatus()||this.setStatus(_)},t.prototype.warn=function(){this.severity=A.Warning},t.prototype.isFinalStatus=function(){return this.hasFailures()||this.isCanceled()||this.isPassing()},t.prototype.skip=function(t){this.isPending()&&!t||this.setStatus(x)},t.prototype.cancel=function(){this.setStatus(G),P()},t.prototype.omit=function(){this.setStatus(M)},t.prototype.valueOf=function(){return!this.isFailing()},t.prototype.hasFailures=function(){return this.isFailing()||this.isWarning()},t.prototype.isPending=function(){return this.status===R},t.prototype.isTested=function(){return this.hasFailures()||this.isPassing()},t.prototype.isOmitted=function(){return this.status===M},t.prototype.isUntested=function(){return this.status===L},t.prototype.isFailing=function(){return this.status===U},t.prototype.isCanceled=function(){return this.status===G},t.prototype.isSkipped=function(){return this.status===x},t.prototype.isPassing=function(){return this.status===_},t.prototype.isWarning=function(){return this.status===W},t}(),L="UNTESTED",x="SKIPPED",U="FAILED",W="WARNING",_="PASSING",R="PENDING",G="CANCELED",M="OMITTED";function K(){return g.useX().testCursor.getCursor()}function j(t,n){if(t=void 0===(t=t.type)?f.DEFAULT:t,u(n)){var e={current:{},prev:{}},r=K();return g.run({isolate:{type:t,keys:e}},(function(){g.useX().testCursor.addLevel(),e.prev=function(){var t=S()[0].prev;return[].concat(b(t,K())).reduce((function(t,n){return n instanceof D&&!N(n.key)?(t[n.key]=n,t):t}),{})}(),O((function(t){return b(t,r)[v(r)]=[],t}));var t=n();return g.useX().testCursor.removeLevel(),g.useX().testCursor.next(),t}))}}function H(t){if(t){if("number"==typeof t)return 0===t;if(Object.prototype.hasOwnProperty.call(t,"length"))return t.length===Number(0);if("object"==typeof t)return Object.keys(t).length===Number(0)}return!0}var V=h(H);function B(t,n){return!(!n||t.fieldName!==n)}function Y(t){var n=w();return!H(n)&&(t?n.some((function(n){return B(n,t)})):V(n))}function q(t,n){function e(t,n){i[t]++,u&&(i[n]=(i[n]||[]).concat(u))}var r=n.fieldName,u=n.message;t[r]=t[r]||{errorCount:0,warnCount:0,testCount:0};var i=t[r];return n.isSkipped()||(t[r].testCount++,n.isFailing()?e("errorCount","errors"):n.isWarning()&&e("warnCount","warnings")),i}function z(){return(z=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var u in n=arguments[e])Object.prototype.hasOwnProperty.call(n,u)&&(t[u]=n[u]);return t}).apply(this,arguments)}function J(t,n,e){if(e||2===arguments.length)for(var r,u=0,i=n.length;u<i;u++)!r&&u in n||(r||(r=Array.prototype.slice.call(n,0,u)),r[u]=n[u]);return t.concat(r||n)}function Q(t,n,e){var r;void 0===e&&(e={});var u=(e=e||{}).group,i=e.fieldName;return n.reduce((function(n,e){if(u&&e.groupName!==u)var r=!0;else i&&!B(e,i)?r=!0:(r=e.warns(),r="warnings"===t!=!!r);return r||!e.hasFailures()||(n[e.fieldName]=(n[e.fieldName]||[]).concat(e.message||[])),n}),z({},i&&((r={})[i]=[],r)))}function Z(t){return tt("errors",t)}function $(t){return tt("warnings",t)}function tt(t,n){return t=Q(t,I(),{fieldName:n}),n?t[n]:t}function nt(t,n){return t=rt("errors",t,n),n?t[n]:t}function et(t,n){return t=rt("warnings",t,n),n?t[n]:t}function rt(t,n,e){return n||s("get"+t[0].toUpperCase()+t.slice(1)+"ByGroup requires a group name. Received `"+n+"` instead."),Q(t,I(),{group:n,fieldName:e})}function ut(t,n,e){return(e=!t.hasFailures()||e&&!B(t,e))||(e="warnings"===n!=!!(t=t.warns())),!e}function it(t){return st("errors",t)}function ot(t){return st("warnings",t)}function st(t,n){return I().some((function(e){return ut(e,t,n)}))}function at(t,n){return ft("errors",t,n)}function ct(t,n){return ft("warnings",t,n)}function ft(t,n,e){return I().some((function(r){return n===r.groupName&&ut(r,t,e)}))}var lt=k(20);function pt(){var t=I(),n={stateRef:T()};return lt([t],g.bind(n,(function(){var t=T().suiteName()[0];return e(function(){var t={errorCount:0,groups:{},testCount:0,tests:{},warnCount:0};return I().forEach((function(n){var e=n.fieldName,r=n.groupName;t.tests[e]=q(t.tests,n),r&&(t.groups[r]=t.groups[r]||{},t.groups[r][e]=q(t.groups[r],n))})),function(t){for(var n in t.tests)t.errorCount+=t.tests[n].errorCount,t.warnCount+=t.tests[n].warnCount,t.testCount+=t.tests[n].testCount;return t}(t)}(),{getErrors:g.bind(n,Z),getErrorsByGroup:g.bind(n,nt),getWarnings:g.bind(n,$),getWarningsByGroup:g.bind(n,et),hasErrors:g.bind(n,it),hasErrorsByGroup:g.bind(n,at),hasWarnings:g.bind(n,ot),hasWarningsByGroup:g.bind(n,ct),isValid:g.bind(n,(function(t){var n=pt(),e=I().reduce((function(t,n){return t[n.fieldName]||n.isOmitted()&&(t[n.fieldName]=!0),t}),{});return(e=!!t&&!!e[t])?t=!0:n.hasErrors(t)?t=!1:t=!(H(e=I())||t&&H(n.tests[t])||function(t){var n=T().optionalFields()[0];return V(w().filter((function(e){return!(t&&!B(e,t))&&!0!==n[e.fieldName]})))}(t))&&function(t){var n=I(),e=T().optionalFields()[0];return n.every((function(n){return!(!t||B(n,t))||!0===e[n.fieldName]||n.isTested()||n.isOmitted()}))}(t),t})),suiteName:t})})))}var vt=k(20);function dt(){var t=I(),n={stateRef:T()};return vt([t],g.bind(n,(function(){return e({},pt(),{done:g.bind(n,mt)})})))}function gt(t,n,e){return!(u(t)&&(!n||e.tests[n]&&!H(e.tests[n].testCount)))}function ht(t){return!(Y()&&(!t||Y(t)))}function mt(){function t(){return r(pt())}for(var n=[],e=0;e<arguments.length;e++)n[e]=arguments[e];var r=(n=n.reverse())[0];return n=n[1],e=dt(),gt(r,n,e)?e:ht(n)?(t(),e):(yt(t,n),e)}function yt(t,n){var e=g.bind({},t);(0,T().testCallbacks()[1])((function(t){return n?t.fieldCallbacks[n]=(t.fieldCallbacks[n]||[]).concat(e):t.doneCallbacks.push(e),t}))}function Et(t){return t.forEach((function(t){return t()}))}function bt(){var t=function(){var t={};return{emit:function(n,e){t[n]&&t[n].forEach((function(t){t(e)}))},on:function(n,e){return t[n]||(t[n]=[]),t[n].push(e),{off:function(){t[n]=t[n].filter((function(t){return t!==e}))}}}}}();return t.on(Ct.TEST_COMPLETED,(function(t){if(!t.isCanceled()){t.done(),t=t.fieldName;var n=T().testCallbacks()[0].fieldCallbacks;t&&!Y(t)&&Array.isArray(n[t])&&Et(n[t]),t=T().testCallbacks()[0].doneCallbacks,Y()||Et(t)}})),t.on(Ct.SUITE_COMPLETED,(function(){!function(){var t=T().optionalFields()[0];if(!H(t)){var n={};O((function(e){return y(e,(function(e){var r=e.fieldName;if(n.hasOwnProperty(r))n[e.fieldName]&&e.omit();else{var i=t[r];u(i)&&(n[r]=i(),n[e.fieldName]&&e.omit())}return e}))}))}}()})),t.on(Ct.REMOVE_FIELD,(function(t){I().forEach((function(n){B(n,t)&&(n.cancel(),function(t){O((function(n){return y(n,(function(n){return t!==n?n:null}))}))}(n))}))})),t}function Nt(){var t=g.useX();return t.bus||s(),t.bus}var Ct,kt=Ct||(Ct={});function Tt(t){return Pt(0,"tests",t)}function St(t){return Pt(1,"tests",t)}function Pt(t,n,e){var r=g.useX("hook called outside of a running suite.");e&&[].concat(e).forEach((function(e){C(e)&&(r.exclusion[n][e]=0===t)}))}function Ot(t){for(var n in t)if(!0===t[n])return!0;return!1}function wt(t){s("Wrong arguments passed to group. Group "+t+".")}kt.TEST_COMPLETED="test_completed",kt.REMOVE_FIELD="remove_field",kt.SUITE_COMPLETED="suite_completed",Tt.group=function(t){return Pt(0,"groups",t)},St.group=function(t){return Pt(1,"groups",t)};var Ft=h(C);function It(t){var n=t.asyncTest,e=t.message;if(n&&u(n.then)){var r=Nt().emit,i=T(),o=g.bind({stateRef:i},(function(){P(),r(Ct.TEST_COMPLETED,t)}));i=g.bind({stateRef:i},(function(n){t.isCanceled()||(t.message=C(n)?n:e,t.fail(),o())}));try{n.then(o,i)}catch(t){i()}}}function At(t){var n=K();O((function(e){return b(e,n)[v(n)]=t,e}))}function Xt(t){var n=S()[0].prev;if(H(n))At(t),n=t;else{var e=K();if(n=b(n,e)[v(e)],N(t.key))!V(e=n)||e.fieldName===t.fieldName&&e.groupName===t.groupName||(g.useX().isolate.type!==f.EACH&&a("Vest Critical Error: Tests called in different order than previous run.\n expected: "+n.fieldName+"\n received: "+t.fieldName+'\n This can happen on one of two reasons:\n 1. You\'re using if/else statements to conditionally select tests. Instead, use "skipWhen".\n 2. You are iterating over a list of tests, and their order changed. Use "each" and a custom key prop so that Vest retains their state.'),function(){var t=S(),n=t[1],e=t[0].prev;t=b(e,K());var r=g.useX().testCursor.cursorAt();t.splice(r),n((function(t){return{prev:e,current:t.current}}))}(),n=null),At(n=o(n,t));else{n=t.key;var r=g.useX().isolate.keys.prev[n];e=t,r&&(e=r),r=e;var i=g.useX().isolate.keys.current;N(i[n])?i[n]=r:a('Encountered the same test key "'+n+"\" twice. This may lead to tests overriding each other's results, or to tests being unexpectedly omitted."),At(n=e)}}if(function(t){var n=t.fieldName;if(t=t.groupName,g.useX().skipped)return!0;var e=g.useX().exclusion,r=e.tests,u=r[n];if(!1===u)return!0;if(u=!0===u,t){t:{var i=g.useX().exclusion.groups;if(Object.prototype.hasOwnProperty.call(i,t))var o=!1===i[t];else{for(o in i)if(!0===i[o]){o=!0;break t}o=!1}}if(o)return!0;if(!0===e.groups[t])return!(u||!Ot(r)&&!1!==r[n])}n=g.useX().exclusion;t:{for(s in(e=g.useX().exclusion).groups)if(e.groups[s]){var s=!0;break t}s=!1}return!(!s||t&&t in n.groups&&n.groups[t])||!u&&Ot(r)}(t))return n.skip(!!g.useX().skipped),g.useX().testCursor.next(),n;if(t!==n&&n.fieldName===t.fieldName&&n.groupName===t.groupName&&n.isPending()&&n.cancel(),At(t),g.useX().testCursor.next(),t.isUntested()){n=Nt(),e=function(t){return g.run({currentTest:t},(function(){try{var n=t.testFn()}catch(e){n=e,void 0===t.message&&C(n)&&(t.message=e),n=!1}return!1===n&&t.fail(),n}))}(t);try{e&&u(e.then)?(t.asyncTest=e,t.setPending(),It(t)):n.emit(Ct.TEST_COMPLETED,t)}catch(n){s("Your test function "+t.fieldName+' returned a value. Only "false" or Promise returns are supported.')}}else(n=t.asyncTest)&&u(n.then)&&(t.setPending(),It(t));return t}function Dt(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];var r=u(n[1])?n:J([void 0],n);n=r[0],e=r[1],r=r[2],Ft(t)&&xt("fieldName","string"),u(e)||xt("Test callback","function");var i=g.useX();return Xt(n=new D(t,e,{message:n,groupName:i.groupName,key:r}))}var Lt=e(Dt,{memo:function(t){var n=k(100);return function(e){for(var r=[],u=1;u<arguments.length;u++)r[u-1]=arguments[u];u=g.useX().testCursor.cursorAt();var i=(r=r.reverse())[0],o=r[1],s=r[2];return u=[T().suiteId()[0],e,u].concat(i),null===(r=n.get(u))?n(u,(function(){return t(e,s,o)})):r[1].isCanceled()?(n.invalidate(u),n(u,(function(){return t(e,s,o)}))):Xt(r[1])}}(Dt)});function xt(t,n){s("Incompatible params passed to test function. "+t+" must be a "+n)}var Ut="4.0.0-dev-1aae50";function Wt(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var i=(t=t.reverse())[0];t=t[1],u(i)||s("vest.create: Expected callback to be a function.");var o=bt(),a=c();return t={stateRef:p(a,{suiteId:r(),suiteName:t}),bus:o},e(g.bind(t,(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return a.reset(),j({type:f.SUITE},(function(){i.apply(void 0,t)})),o.emit(Ct.SUITE_COMPLETED),dt()})),{get:g.bind(t,pt),reset:a.reset,remove:g.bind(t,(function(t){o.emit(Ct.REMOVE_FIELD,t)}))})}function _t(t,n){u(n)||s("callback must be a function"),j({type:f.EACH},(function(){t.forEach((function(t,e){n(t,e)}))}))}function Rt(t,n){C(t)||wt("name must be a string"),u(n)||wt("callback must be a function"),j({type:f.GROUP},(function(){g.run({groupName:t},n)}))}function Gt(t){(0,T().optionalFields()[1])((function(n){if(Array.isArray(t)||C(t))[].concat(t).forEach((function(t){n[t]=!0}));else for(var e in t)n[e]=t[e];return n}))}function Mt(t,n){j({type:f.SKIP_WHEN},(function(){g.run({skipped:i(t,i(pt))},(function(){return n()}))}))}function Kt(){var t=g.useX("warn hook called outside of a running suite.");t.currentTest||s("warn called outside of a test."),t.currentTest.warn()}export{Ut as VERSION,Wt as create,_t as each,Rt as group,Tt as only,Gt as optional,St as skip,Mt as skipWhen,Lt as test,Kt as warn};
|
|
@@ -60,10 +60,10 @@
|
|
|
60
60
|
/**
|
|
61
61
|
* Creates a function that returns class names that match the validation result
|
|
62
62
|
*/
|
|
63
|
-
function
|
|
63
|
+
function classnames(res, classes) {
|
|
64
64
|
if (classes === void 0) { classes = {}; }
|
|
65
65
|
if (!res || !isFunction(res.hasErrors)) {
|
|
66
|
-
throwError("
|
|
66
|
+
throwError("classnames: Expected first argument to be Vest's result object.");
|
|
67
67
|
}
|
|
68
68
|
var selectors = parse(res);
|
|
69
69
|
return function (key) {
|
|
@@ -78,6 +78,6 @@
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
return
|
|
81
|
+
return classnames;
|
|
82
82
|
|
|
83
83
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=e()}(this,(function(){function t(t){return"function"==typeof t}function e(e,n){var r;return null!==(r=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return t(e)?e.apply(void 0,n):e}(e))&&void 0!==r?r:n}function n(t){var e=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(e))}function r(t,e){return n(t)&&n(e)&&Number(t)>Number(e)}return function(n,o){if(void 0===o&&(o={}),!n||!t(n.hasErrors))throw Error(e(void 0,"
|
|
1
|
+
"use strict";!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).classnames=e()}(this,(function(){function t(t){return"function"==typeof t}function e(e,n){var r;return null!==(r=function(e){for(var n=[],r=1;r<arguments.length;r++)n[r-1]=arguments[r];return t(e)?e.apply(void 0,n):e}(e))&&void 0!==r?r:n}function n(t){var e=Number(t);return!(isNaN(parseFloat(String(t)))||isNaN(Number(t))||!isFinite(e))}function r(t,e){return n(t)&&n(e)&&Number(t)>Number(e)}return function(n,o){if(void 0===o&&(o={}),!n||!t(n.hasErrors))throw Error(e(void 0,"classnames: Expected first argument to be Vest's result object."));var i=function(t){var e={},n={invalid:t.hasErrors,tested:function(o){return o?Object.prototype.hasOwnProperty.call(e,o)?e[o]:(e[o]=Object.prototype.hasOwnProperty.call(t.tests,o)&&r(t.tests[o].testCount,0),n.tested(o)):r(t.testCount,0)},untested:function(e){return 0===t.testCount||!n.tested(e)},valid:t.isValid,warning:t.hasWarnings};return n}(n);return function(e){var n,r=[];for(n in o){var s=n;t(i[s])&&i[s](e)&&r.push(o[s])}return r.join(" ")}}}));
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('n4s')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['n4s'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.compose = factory(global.n4s));
|
|
5
|
+
}(this, (function (n4s) { 'use strict';
|
|
6
|
+
|
|
7
|
+
function mapFirst(array, callback) {
|
|
8
|
+
var broke = false;
|
|
9
|
+
var breakoutValue = null;
|
|
10
|
+
for (var i = 0; i < array.length; i++) {
|
|
11
|
+
callback(array[i], breakout, i);
|
|
12
|
+
if (broke) {
|
|
13
|
+
return breakoutValue;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function breakout(value) {
|
|
17
|
+
broke = true;
|
|
18
|
+
breakoutValue = value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function isFunction(value) {
|
|
23
|
+
return typeof value === 'function';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function optionalFunctionValue(value) {
|
|
27
|
+
var args = [];
|
|
28
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
29
|
+
args[_i - 1] = arguments[_i];
|
|
30
|
+
}
|
|
31
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function defaultTo(callback, defaultValue) {
|
|
35
|
+
var _a;
|
|
36
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Throws a timed out error.
|
|
41
|
+
*/
|
|
42
|
+
function throwError(devMessage, productionMessage) {
|
|
43
|
+
throw new Error(devMessage );
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* A safe hasOwnProperty access
|
|
48
|
+
*/
|
|
49
|
+
function hasOwnProperty(obj, key) {
|
|
50
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function isNumber(value) {
|
|
54
|
+
return Boolean(typeof value === 'number');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function lengthEquals(value, arg1) {
|
|
58
|
+
return value.length === Number(arg1);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function isEmpty(value) {
|
|
62
|
+
if (!value) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
else if (isNumber(value)) {
|
|
66
|
+
return value === 0;
|
|
67
|
+
}
|
|
68
|
+
else if (hasOwnProperty(value, 'length')) {
|
|
69
|
+
return lengthEquals(value, 0);
|
|
70
|
+
}
|
|
71
|
+
else if (typeof value === 'object') {
|
|
72
|
+
return lengthEquals(Object.keys(value), 0);
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function ruleReturn(pass, message) {
|
|
78
|
+
var output = { pass: pass };
|
|
79
|
+
if (message) {
|
|
80
|
+
output.message = message;
|
|
81
|
+
}
|
|
82
|
+
return output;
|
|
83
|
+
}
|
|
84
|
+
function failing() {
|
|
85
|
+
return ruleReturn(false);
|
|
86
|
+
}
|
|
87
|
+
function passing() {
|
|
88
|
+
return ruleReturn(true);
|
|
89
|
+
}
|
|
90
|
+
function defaultToPassing(callback) {
|
|
91
|
+
return defaultTo(callback, passing());
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
95
|
+
try {
|
|
96
|
+
return lazyRule.run(currentValue);
|
|
97
|
+
}
|
|
98
|
+
catch (_a) {
|
|
99
|
+
return failing();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* eslint-disable max-lines-per-function */
|
|
104
|
+
function compose() {
|
|
105
|
+
var composites = [];
|
|
106
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
107
|
+
composites[_i] = arguments[_i];
|
|
108
|
+
}
|
|
109
|
+
return Object.assign(function (value) {
|
|
110
|
+
var res = run(value);
|
|
111
|
+
if (!res.pass) {
|
|
112
|
+
if (isEmpty(res.message)) {
|
|
113
|
+
throwError();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// Explicitly throw a string so that vest.test can pick it up as the validation error message
|
|
117
|
+
throw res.message;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}, {
|
|
121
|
+
run: run,
|
|
122
|
+
test: function (value) { return run(value).pass; }
|
|
123
|
+
});
|
|
124
|
+
function run(value) {
|
|
125
|
+
return n4s.ctx.run({ value: value }, function () {
|
|
126
|
+
return defaultToPassing(mapFirst(composites, function (composite, breakout) {
|
|
127
|
+
/* HACK: Just a small white lie. ~~HELP WANTED~~.
|
|
128
|
+
The ideal is that instead of `TLazyRuleRunners` We would simply use `TLazy` to begin with.
|
|
129
|
+
The problem is that lazy rules can't really be passed to this function due to some generic hell
|
|
130
|
+
so we're limiting it to a small set of functions.
|
|
131
|
+
*/
|
|
132
|
+
var res = runLazyRule(composite, value);
|
|
133
|
+
if (!res.pass) {
|
|
134
|
+
breakout(res);
|
|
135
|
+
}
|
|
136
|
+
}));
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return compose;
|
|
142
|
+
|
|
143
|
+
})));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):(n="undefined"!=typeof globalThis?globalThis:n||self).compose=e(n.n4s)}(this,(function(n){function e(n,e){function t(n){r=!0,o=n}for(var r=!1,o=null,u=0;u<n.length;u++)if(e(n[u],t,u),r)return o}function t(n,e){var t;return null!==(t=function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==t?t:e}function r(n){if(n){if("number"==typeof n)return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return n.length===Number(0);if("object"==typeof n)return Object.keys(n).length===Number(0)}return!0}function o(n,e){return n={pass:n},e&&(n.message=e),n}return function(){function u(r){return n.ctx.run({value:r},(function(){return t(e(f,(function(n,e){try{var t=n.run(r)}catch(n){t=o(!1)}t.pass||e(t)})),o(!0))}))}for(var f=[],i=0;i<arguments.length;i++)f[i]=arguments[i];return Object.assign((function(n){if(!(n=u(n)).pass){if(r(n.message))throw Error(t(void 0,void 0));throw n.message}}),{run:u,test:function(n){return u(n).pass}})}}));
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('n4s')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['n4s'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n4s));
|
|
5
|
+
}(this, (function (n4s) { 'use strict';
|
|
6
|
+
|
|
7
|
+
function mapFirst(array, callback) {
|
|
8
|
+
var broke = false;
|
|
9
|
+
var breakoutValue = null;
|
|
10
|
+
for (var i = 0; i < array.length; i++) {
|
|
11
|
+
callback(array[i], breakout, i);
|
|
12
|
+
if (broke) {
|
|
13
|
+
return breakoutValue;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function breakout(value) {
|
|
17
|
+
broke = true;
|
|
18
|
+
breakoutValue = value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function isFunction(value) {
|
|
23
|
+
return typeof value === 'function';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function optionalFunctionValue(value) {
|
|
27
|
+
var args = [];
|
|
28
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
29
|
+
args[_i - 1] = arguments[_i];
|
|
30
|
+
}
|
|
31
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function defaultTo(callback, defaultValue) {
|
|
35
|
+
var _a;
|
|
36
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function ruleReturn(pass, message) {
|
|
40
|
+
var output = { pass: pass };
|
|
41
|
+
if (message) {
|
|
42
|
+
output.message = message;
|
|
43
|
+
}
|
|
44
|
+
return output;
|
|
45
|
+
}
|
|
46
|
+
function failing() {
|
|
47
|
+
return ruleReturn(false);
|
|
48
|
+
}
|
|
49
|
+
function passing() {
|
|
50
|
+
return ruleReturn(true);
|
|
51
|
+
}
|
|
52
|
+
function defaultToFailing(callback) {
|
|
53
|
+
return defaultTo(callback, failing());
|
|
54
|
+
}
|
|
55
|
+
function defaultToPassing(callback) {
|
|
56
|
+
return defaultTo(callback, passing());
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
60
|
+
try {
|
|
61
|
+
return lazyRule.run(currentValue);
|
|
62
|
+
}
|
|
63
|
+
catch (_a) {
|
|
64
|
+
return failing();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function allOf(value) {
|
|
69
|
+
var rules = [];
|
|
70
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
71
|
+
rules[_i - 1] = arguments[_i];
|
|
72
|
+
}
|
|
73
|
+
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
74
|
+
var res = runLazyRule(rule, value);
|
|
75
|
+
if (!res.pass) {
|
|
76
|
+
breakout(res);
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function anyOf(value) {
|
|
82
|
+
var rules = [];
|
|
83
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
84
|
+
rules[_i - 1] = arguments[_i];
|
|
85
|
+
}
|
|
86
|
+
return defaultToFailing(mapFirst(rules, function (rule, breakout) {
|
|
87
|
+
var res = runLazyRule(rule, value);
|
|
88
|
+
if (res.pass) {
|
|
89
|
+
breakout(res);
|
|
90
|
+
}
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function noneOf(value) {
|
|
95
|
+
var rules = [];
|
|
96
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
97
|
+
rules[_i - 1] = arguments[_i];
|
|
98
|
+
}
|
|
99
|
+
return defaultToPassing(mapFirst(rules, function (rule, breakout) {
|
|
100
|
+
var res = runLazyRule(rule, value);
|
|
101
|
+
if (res.pass) {
|
|
102
|
+
breakout(failing());
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function lengthEquals(value, arg1) {
|
|
108
|
+
return value.length === Number(arg1);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function longerThan(value, arg1) {
|
|
112
|
+
return value.length > Number(arg1);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
var REQUIRED_COUNT = 1;
|
|
116
|
+
function oneOf(value) {
|
|
117
|
+
var rules = [];
|
|
118
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
119
|
+
rules[_i - 1] = arguments[_i];
|
|
120
|
+
}
|
|
121
|
+
var passing = [];
|
|
122
|
+
rules.some(function (rule) {
|
|
123
|
+
if (longerThan(passing, REQUIRED_COUNT)) {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
var res = runLazyRule(rule, value);
|
|
127
|
+
if (res.pass) {
|
|
128
|
+
passing.push(res);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return ruleReturn(lengthEquals(passing, REQUIRED_COUNT));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
n4s.enforce.extend({ allOf: allOf, anyOf: anyOf, noneOf: noneOf, oneOf: oneOf });
|
|
135
|
+
|
|
136
|
+
})));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("n4s")):"function"==typeof define&&define.amd?define(["n4s"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n4s)}(this,(function(n){function e(n,e){function t(n){r=!0,f=n}for(var r=!1,f=null,o=0;o<n.length;o++)if(e(n[o],t,o),r)return f}function t(n,e){var t;return null!==(t=function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==t?t:e}function r(n,e){return n={pass:n},e&&(n.message=e),n}function f(n,e){try{return n.run(e)}catch(n){return r(!1)}}n.enforce.extend({allOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){(e=f(e,n)).pass||t(e)})),r(!0))},anyOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){(e=f(e,n)).pass&&t(e)})),r(!1))},noneOf:function(n){for(var o=[],u=1;u<arguments.length;u++)o[u-1]=arguments[u];return t(e(o,(function(e,t){f(e,n).pass&&t(r(!1))})),r(!0))},oneOf:function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];var o=[];return e.some((function(e){if(o.length>Number(1))return!1;(e=f(e,n)).pass&&o.push(e)})),r(o.length===Number(1))}})}));
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
(function (global, factory) {
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('n4s')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'n4s'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.schema = {}, global.n4s));
|
|
5
|
+
}(this, (function (exports, n4s) { 'use strict';
|
|
6
|
+
|
|
7
|
+
function mapFirst(array, callback) {
|
|
8
|
+
var broke = false;
|
|
9
|
+
var breakoutValue = null;
|
|
10
|
+
for (var i = 0; i < array.length; i++) {
|
|
11
|
+
callback(array[i], breakout, i);
|
|
12
|
+
if (broke) {
|
|
13
|
+
return breakoutValue;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function breakout(value) {
|
|
17
|
+
broke = true;
|
|
18
|
+
breakoutValue = value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function isFunction(value) {
|
|
23
|
+
return typeof value === 'function';
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function optionalFunctionValue(value) {
|
|
27
|
+
var args = [];
|
|
28
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
29
|
+
args[_i - 1] = arguments[_i];
|
|
30
|
+
}
|
|
31
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function defaultTo(callback, defaultValue) {
|
|
35
|
+
var _a;
|
|
36
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function ruleReturn(pass, message) {
|
|
40
|
+
var output = { pass: pass };
|
|
41
|
+
if (message) {
|
|
42
|
+
output.message = message;
|
|
43
|
+
}
|
|
44
|
+
return output;
|
|
45
|
+
}
|
|
46
|
+
function failing() {
|
|
47
|
+
return ruleReturn(false);
|
|
48
|
+
}
|
|
49
|
+
function passing() {
|
|
50
|
+
return ruleReturn(true);
|
|
51
|
+
}
|
|
52
|
+
function defaultToPassing(callback) {
|
|
53
|
+
return defaultTo(callback, passing());
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function runLazyRule(lazyRule, currentValue) {
|
|
57
|
+
try {
|
|
58
|
+
return lazyRule.run(currentValue);
|
|
59
|
+
}
|
|
60
|
+
catch (_a) {
|
|
61
|
+
return failing();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function isArrayOf(inputArray, currentRule) {
|
|
66
|
+
return defaultToPassing(mapFirst(inputArray, function (currentValue, breakout, index) {
|
|
67
|
+
var res = n4s.ctx.run({ value: currentValue, set: true, meta: { index: index } }, function () { return runLazyRule(currentRule, currentValue); });
|
|
68
|
+
if (!res.pass) {
|
|
69
|
+
breakout(res);
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function loose(inputObject, shapeObject) {
|
|
75
|
+
var _loop_1 = function (key) {
|
|
76
|
+
var currentValue = inputObject[key];
|
|
77
|
+
var currentRule = shapeObject[key];
|
|
78
|
+
var res = n4s.ctx.run({ value: currentValue, set: true, meta: { key: key } }, function () {
|
|
79
|
+
return runLazyRule(currentRule, currentValue);
|
|
80
|
+
});
|
|
81
|
+
if (!res.pass) {
|
|
82
|
+
return { value: res };
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
for (var key in shapeObject) {
|
|
86
|
+
var state_1 = _loop_1(key);
|
|
87
|
+
if (typeof state_1 === "object")
|
|
88
|
+
return state_1.value;
|
|
89
|
+
}
|
|
90
|
+
return passing();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
function isNull(value) {
|
|
94
|
+
return value === null;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
function isUndefined(value) {
|
|
98
|
+
return value === undefined;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function isNullish(value) {
|
|
102
|
+
return isNull(value) || isUndefined(value);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function optional(value, ruleChain) {
|
|
106
|
+
if (isNullish(value)) {
|
|
107
|
+
return passing();
|
|
108
|
+
}
|
|
109
|
+
return runLazyRule(ruleChain, value);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* A safe hasOwnProperty access
|
|
114
|
+
*/
|
|
115
|
+
function hasOwnProperty(obj, key) {
|
|
116
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function shape(inputObject, shapeObject) {
|
|
120
|
+
var baseRes = loose(inputObject, shapeObject);
|
|
121
|
+
if (!baseRes.pass) {
|
|
122
|
+
return baseRes;
|
|
123
|
+
}
|
|
124
|
+
for (var key in inputObject) {
|
|
125
|
+
if (!hasOwnProperty(shapeObject, key)) {
|
|
126
|
+
return failing();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return passing();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// Help needed improving the typings of this file.
|
|
133
|
+
// Ideally, we'd be able to extend IShapeObject, but that's not possible.
|
|
134
|
+
function partial(shapeObject) {
|
|
135
|
+
var output = {};
|
|
136
|
+
for (var key in shapeObject) {
|
|
137
|
+
output[key] = n4s.enforce.optional(shapeObject[key]);
|
|
138
|
+
}
|
|
139
|
+
return output;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
n4s.enforce.extend({ isArrayOf: isArrayOf, loose: loose, optional: optional, shape: shape });
|
|
143
|
+
|
|
144
|
+
exports.partial = partial;
|
|
145
|
+
|
|
146
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
147
|
+
|
|
148
|
+
})));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("n4s")):"function"==typeof define&&define.amd?define(["exports","n4s"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).schema={},n.n4s)}(this,(function(n,e){function t(n,e){return n={pass:n},e&&(n.message=e),n}function r(n,e){try{return n.run(e)}catch(n){return t(!1)}}function o(n,o){var u,f=function(t){var u=n[t],f=o[t];if(!(t=e.ctx.run({value:u,set:!0,meta:{key:t}},(function(){return r(f,u)}))).pass)return{value:t}};for(u in o){var i=f(u);if("object"==typeof i)return i.value}return t(!0)}e.enforce.extend({isArrayOf:function(n,o){return function(n,e){var t;return null!==(t=function(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];return"function"==typeof n?n.apply(void 0,e):n}(n))&&void 0!==t?t:e}(function(n,e){function t(n){r=!0,o=n}for(var r=!1,o=null,u=0;u<n.length;u++)if(e(n[u],t,u),r)return o}(n,(function(n,t,u){(u=e.ctx.run({value:n,set:!0,meta:{index:u}},(function(){return r(o,n)}))).pass||t(u)})),t(!0))},loose:o,optional:function(n,e){return null==n?t(!0):r(e,n)},shape:function(n,e){var r=o(n,e);if(!r.pass)return r;for(var u in n)if(!Object.prototype.hasOwnProperty.call(e,u))return t(!1);return t(!0)}}),n.partial=function(n){var t,r={};for(t in n)r[t]=e.enforce.optional(n[t]);return r},Object.defineProperty(n,"__esModule",{value:!0})}));
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
args[_i] = arguments[_i];
|
|
23
23
|
}
|
|
24
24
|
if (!isFunction(validatorFn)) {
|
|
25
|
-
throwError('
|
|
25
|
+
throwError('promisify: Expected validatorFn to be a function.');
|
|
26
26
|
}
|
|
27
27
|
return new Promise(function (resolve) { return validatorFn.apply(void 0, args).done(resolve); });
|
|
28
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,
|
|
1
|
+
"use strict";!function(n,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(n="undefined"!=typeof globalThis?globalThis:n||self).promisify=o()}(this,(function(){function n(n,o){var e;return null!==(e=function(n){for(var o=[],e=1;e<arguments.length;e++)o[e-1]=arguments[e];return"function"==typeof n?n.apply(void 0,o):n}(n))&&void 0!==e?e:o}return function(o){return function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];if("function"!=typeof o)throw Error(n(void 0,"promisify: Expected validatorFn to be a function."));return new Promise((function(n){return o.apply(void 0,e).done(n)}))}}}));
|