n4s 4.0.1 → 4.0.2-next-adfb43
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/dist/cjs/n4s.development.js +17 -2
- package/dist/cjs/n4s.production.js +1 -1
- package/dist/es/n4s.development.js +17 -2
- package/dist/es/n4s.production.js +1 -1
- package/dist/umd/n4s.development.js +92 -27
- package/dist/umd/n4s.production.js +1 -1
- package/package.json +1 -1
- package/types/compose.d.ts +3 -0
- package/types/compounds.d.ts +3 -0
- package/types/n4s.d.ts +3 -0
- package/types/schema.d.ts +3 -0
- package/docs/.nojekyll +0 -0
- package/docs/README.md +0 -44
- package/docs/_sidebar.md +0 -5
- package/docs/external.md +0 -27
- package/docs/index.html +0 -32
- package/docs/rules.md +0 -1282
|
@@ -179,6 +179,19 @@ function isTruthy(value) {
|
|
|
179
179
|
}
|
|
180
180
|
var isFalsy = bindNot(isTruthy);
|
|
181
181
|
|
|
182
|
+
function isValueOf(value, objectToCheck) {
|
|
183
|
+
if (isNullish(objectToCheck)) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
for (var key in objectToCheck) {
|
|
187
|
+
if (objectToCheck[key] === value) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
var isNotValueOf = bindNot(isValueOf);
|
|
194
|
+
|
|
182
195
|
function lessThan(value, lt) {
|
|
183
196
|
return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
|
|
184
197
|
}
|
|
@@ -265,6 +278,7 @@ function rules() {
|
|
|
265
278
|
isNotNumeric: isNotNumeric,
|
|
266
279
|
isNotString: isNotString,
|
|
267
280
|
isNotUndefined: isNotUndefined,
|
|
281
|
+
isNotValueOf: isNotValueOf,
|
|
268
282
|
isNull: isNull,
|
|
269
283
|
isNullish: isNullish,
|
|
270
284
|
isNumber: isNumber,
|
|
@@ -274,6 +288,7 @@ function rules() {
|
|
|
274
288
|
isString: isStringValue,
|
|
275
289
|
isTruthy: isTruthy,
|
|
276
290
|
isUndefined: isUndefined,
|
|
291
|
+
isValueOf: isValueOf,
|
|
277
292
|
lengthEquals: lengthEquals,
|
|
278
293
|
lengthNotEquals: lengthNotEquals,
|
|
279
294
|
lessThan: lessThan,
|
|
@@ -361,7 +376,7 @@ function __spreadArray(to, from, pack) {
|
|
|
361
376
|
ar[i] = from[i];
|
|
362
377
|
}
|
|
363
378
|
}
|
|
364
|
-
return to.concat(ar || from);
|
|
379
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
365
380
|
}
|
|
366
381
|
|
|
367
382
|
function optionalFunctionValue(value) {
|
|
@@ -581,7 +596,7 @@ function genEnforce() {
|
|
|
581
596
|
// Only on the first rule access - start the chain of calls
|
|
582
597
|
target[ruleName] = genEnforceLazy(ruleName);
|
|
583
598
|
});
|
|
584
|
-
return target;
|
|
599
|
+
return assign(enforceEager, target);
|
|
585
600
|
}
|
|
586
601
|
return new Proxy(assign(enforceEager, target), {
|
|
587
602
|
get: function (target, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var n=require("context"),r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return u(n)||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var p=e(N);function h(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var g=e(h);function m(n,r){return h(n)&&h(r)&&Number(n)>Number(r)}function y(n,r){return h(n)&&h(r)&&Number(n)>=Number(r)}function d(n){return!!Array.isArray(n)}var b=e(d);function E(n,r){return!!(d(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var x=e(E);function O(n,r){return h(n)&&h(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&O(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var P=e(T);function S(n){return!!n===n}var A=e(S);function B(n){return"number"==typeof n}var W=e(B);function j(n,r){return n.length===Number(r)}var k=e(j);function F(n){if(n){if(B(n))return 0===n;if(function(n,r){return Object.prototype.hasOwnProperty.call(n,r)}(n,"length"))return j(n,0);if("object"==typeof n)return j(Object.keys(n),0)}return!0}var I=e(F),J=function(n){return!!h(n)&&0==n%2};function M(n){return Number.isNaN(n)}var R=e(M);function U(n){return!!h(n)&&0>Number(n)}var V=e(U),_=function(n){return!!h(n)&&0!=n%2},C=e(c);function X(n){return!!n}var z=e(X);function D(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var G=e(D);function H(n,r){return h(n)&&h(r)&&Number(n)<Number(r)}function K(n,r){return n.length>Number(r)}function L(n,r){return n.length>=Number(r)}function Q(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var Y=e(Q);function Z(n,r){return h(n)&&h(r)&&Number(n)===Number(r)}var $=e(Z);function nn(n,r){try{return r(n)}catch(n){return!1}}function rn(n,r){return n.length<Number(r)}function tn(n,r){return n.length<=Number(r)}function en(n,r){return c(n)&&c(r)&&n.startsWith(r)}var un=e(en);var on={condition:nn,doesNotEndWith:v,doesNotStartWith:un,endsWith:l,equals:N,greaterThan:m,greaterThanOrEquals:y,gt:m,gte:y,inside:E,isArray:d,isBetween:q,isBlank:T,isBoolean:S,isEmpty:F,isEven:J,isFalsy:z,isNaN:M,isNegative:U,isNotArray:b,isNotBetween:w,isNotBlank:P,isNotBoolean:A,isNotEmpty:I,isNotNaN:R,isNotNull:i,isNotNullish:f,isNotNumber:W,isNotNumeric:g,isNotString:C,isNotUndefined:a,isNotValueOf:G,isNull:u,isNullish:s,isNumber:B,isNumeric:h,isOdd:_,isPositive:V,isString:c,isTruthy:X,isUndefined:o,isValueOf:D,lengthEquals:j,lengthNotEquals:k,lessThan:H,lessThanOrEquals:O,longerThan:K,longerThanOrEquals:L,lt:H,lte:O,matches:Q,notEquals:p,notInside:x,notMatches:Y,numberEquals:Z,numberNotEquals:$,shorterThan:rn,shorterThanOrEquals:tn,startsWith:en};function an(n){return on[n]}function sn(n){for(var r in on){var e=an(r);t(e)&&n(r,e)}}var fn=n.createContext((function(n,t){var e={value:n.value,meta:n.meta||{}};return t?n.set?r(e,{parent:function(){return function(n){return n?{value:n.value,meta:n.meta,parent:n.parent}:n}(t)}}):t:r(e,{parent:cn})}));function cn(){return null}function ln(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||Array.prototype.slice.call(r))}function vn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function Nn(n,r){var t;return null!==(t=vn(n))&&void 0!==t?t:r}function pn(n,r){throw Error(Nn(r,n))}function hn(){try{return t(Proxy)}catch(n){return!1}}function gn(n,r){return n={pass:n},r&&(n.message=r),n}function mn(n){return Nn(n,gn(!0))}function yn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return dn(n),S(n)?gn(n):gn(n.pass,vn.apply(void 0,ln([n.message,r,t],e)))}function dn(n){S(n)||n&&S(n.pass)||pn("Incorrect return value for rule: "+JSON.stringify(n))}function bn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=yn.apply(void 0,ln([fn.run({value:n},(function(){return t.apply(void 0,ln([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;pn("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!hn())return sn((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=an(t))return r(e,n,t)}});return e}function En(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function xn(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=an(e);t.push((function(n){return yn.apply(void 0,ln([o.apply(void 0,ln([n],u)),e,n],u))}));var a={run:function(n){return mn(En(t,(function(t,e){var u,i=fn.run({value:n},(function(){return t(n)}));i.pass||e(gn(!!i.pass,null!==(u=vn(r,n,i.message))&&void 0!==u?u:i.message))})))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return hn()?a=new Proxy(a,{get:function(r,t){return an(t)?n(t):r[t]}}):(sn((function(r){a[r]=n(r)})),a)}}(n)}var On,qn=(On={context:function(){return fn.useX()},extend:function(n){r(on,n)}},hn()?new Proxy(r(bn,On),{get:function(n,r){return r in n?n[r]:an(r)?xn(r):void 0}}):(sn((function(n){On[n]=xn(n)})),r(bn,On)));exports.ctx=fn,exports.enforce=qn;
|
|
@@ -175,6 +175,19 @@ function isTruthy(value) {
|
|
|
175
175
|
}
|
|
176
176
|
var isFalsy = bindNot(isTruthy);
|
|
177
177
|
|
|
178
|
+
function isValueOf(value, objectToCheck) {
|
|
179
|
+
if (isNullish(objectToCheck)) {
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
for (var key in objectToCheck) {
|
|
183
|
+
if (objectToCheck[key] === value) {
|
|
184
|
+
return true;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
var isNotValueOf = bindNot(isValueOf);
|
|
190
|
+
|
|
178
191
|
function lessThan(value, lt) {
|
|
179
192
|
return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
|
|
180
193
|
}
|
|
@@ -261,6 +274,7 @@ function rules() {
|
|
|
261
274
|
isNotNumeric: isNotNumeric,
|
|
262
275
|
isNotString: isNotString,
|
|
263
276
|
isNotUndefined: isNotUndefined,
|
|
277
|
+
isNotValueOf: isNotValueOf,
|
|
264
278
|
isNull: isNull,
|
|
265
279
|
isNullish: isNullish,
|
|
266
280
|
isNumber: isNumber,
|
|
@@ -270,6 +284,7 @@ function rules() {
|
|
|
270
284
|
isString: isStringValue,
|
|
271
285
|
isTruthy: isTruthy,
|
|
272
286
|
isUndefined: isUndefined,
|
|
287
|
+
isValueOf: isValueOf,
|
|
273
288
|
lengthEquals: lengthEquals,
|
|
274
289
|
lengthNotEquals: lengthNotEquals,
|
|
275
290
|
lessThan: lessThan,
|
|
@@ -357,7 +372,7 @@ function __spreadArray(to, from, pack) {
|
|
|
357
372
|
ar[i] = from[i];
|
|
358
373
|
}
|
|
359
374
|
}
|
|
360
|
-
return to.concat(ar || from);
|
|
375
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
361
376
|
}
|
|
362
377
|
|
|
363
378
|
function optionalFunctionValue(value) {
|
|
@@ -577,7 +592,7 @@ function genEnforce() {
|
|
|
577
592
|
// Only on the first rule access - start the chain of calls
|
|
578
593
|
target[ruleName] = genEnforceLazy(ruleName);
|
|
579
594
|
});
|
|
580
|
-
return target;
|
|
595
|
+
return assign(enforceEager, target);
|
|
581
596
|
}
|
|
582
597
|
return new Proxy(assign(enforceEager, target), {
|
|
583
598
|
get: function (target, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as n}from"context";var r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return null===n||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var h=e(N);function m(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var
|
|
1
|
+
import{createContext as n}from"context";var r=Object.assign;function t(n){return"function"==typeof n}function e(n){return function(){for(var r=[],t=0;t<arguments.length;t++)r[t]=arguments[t];return!n.apply(void 0,r)}}function u(n){return null===n}var i=e(u);function o(n){return void 0===n}var a=e(o);function s(n){return null===n||o(n)}var f=e(s);function c(n){return String(n)===n}function l(n,r){return c(n)&&c(r)&&n.endsWith(r)}var v=e(l);function N(n,r){return n===r}var h=e(N);function m(n){var r=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(r))}var p=e(m);function g(n,r){return m(n)&&m(r)&&Number(n)>Number(r)}function y(n,r){return m(n)&&m(r)&&Number(n)>=Number(r)}function b(n){return!!Array.isArray(n)}var d=e(b);function E(n,r){return!!(b(r)||c(r)&&c(n))&&-1!==r.indexOf(n)}var O=e(E);function x(n,r){return m(n)&&m(r)&&Number(n)<=Number(r)}function q(n,r,t){return y(n,r)&&x(n,t)}var w=e(q);function T(n){return s(n)||c(n)&&!n.trim()}var S=e(T);function A(n){return!!n===n}var B=e(A);function P(n){return"number"==typeof n}var W=e(P);function j(n,r){return n.length===Number(r)}var k=e(j);function F(n){if(n){if(P(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return j(n,0);if("object"==typeof n)return j(Object.keys(n),0)}return!0}var I=e(F);function J(n){return Number.isNaN(n)}var R=e(J);function U(n){return!!m(n)&&0>Number(n)}var V=e(U),M=e(c);function X(n){return!!n}var z=e(X);function C(n,r){if(s(r))return!1;for(var t in r)if(r[t]===n)return!0;return!1}var D=e(C);function G(n,r){return m(n)&&m(r)&&Number(n)<Number(r)}function H(n,r){return r instanceof RegExp?r.test(n):!!c(r)&&new RegExp(r).test(n)}var K=e(H);function L(n,r){return m(n)&&m(r)&&Number(n)===Number(r)}var Q=e(L);function Y(n,r){return c(n)&&c(r)&&n.startsWith(r)}var Z={condition:function(n,r){try{return r(n)}catch(n){return!1}},doesNotEndWith:v,doesNotStartWith:e(Y),endsWith:l,equals:N,greaterThan:g,greaterThanOrEquals:y,gt:g,gte:y,inside:E,isArray:b,isBetween:q,isBlank:T,isBoolean:A,isEmpty:F,isEven:function(n){return!!m(n)&&0==n%2},isFalsy:z,isNaN:J,isNegative:U,isNotArray:d,isNotBetween:w,isNotBlank:S,isNotBoolean:B,isNotEmpty:I,isNotNaN:R,isNotNull:i,isNotNullish:f,isNotNumber:W,isNotNumeric:p,isNotString:M,isNotUndefined:a,isNotValueOf:D,isNull:u,isNullish:s,isNumber:P,isNumeric:m,isOdd:function(n){return!!m(n)&&0!=n%2},isPositive:V,isString:c,isTruthy:X,isUndefined:o,isValueOf:C,lengthEquals:j,lengthNotEquals:k,lessThan:G,lessThanOrEquals:x,longerThan:function(n,r){return n.length>Number(r)},longerThanOrEquals:function(n,r){return n.length>=Number(r)},lt:G,lte:x,matches:H,notEquals:h,notInside:O,notMatches:K,numberEquals:L,numberNotEquals:Q,shorterThan:function(n,r){return n.length<Number(r)},shorterThanOrEquals:function(n,r){return n.length<=Number(r)},startsWith:Y};function $(n){for(var r in Z){var e=Z[r];t(e)&&n(r,e)}}var _=n((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:nn})}));function nn(){return null}function rn(n,r,t){if(t||2===arguments.length)for(var e,u=0,i=r.length;u<i;u++)!e&&u in r||(e||(e=Array.prototype.slice.call(r,0,u)),e[u]=r[u]);return n.concat(e||Array.prototype.slice.call(r))}function tn(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function en(n,r){var t;return null!==(t=tn(n))&&void 0!==t?t:r}function un(n,r){throw Error(en(r,n))}function on(){try{return t(Proxy)}catch(n){return!1}}function an(n,r){return n={pass:n},r&&(n.message=r),n}function sn(n,r,t){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return A(n)||n&&A(n.pass)||un("Incorrect return value for rule: "+JSON.stringify(n)),A(n)?an(n):an(n.pass,tn.apply(void 0,rn([n.message,r,t],e)))}function fn(n){function r(r,t,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=sn.apply(void 0,rn([_.run({value:n},(function(){return t.apply(void 0,rn([n],u))})),e,n],u))).pass){if(!F(i.message))throw i.message;un("enforce/"+e+" failed with "+JSON.stringify(n))}return r}}var t={};if(!on())return $((function(n,e){t[n]=r(t,e,n)})),t;var e=new Proxy(t,{get:function(n,t){if(n=Z[t])return r(e,n,t)}});return e}function cn(n,r){function t(n){e=!0,u=n}for(var e=!1,u=null,i=0;i<n.length;i++)if(r(n[i],t,i),e)return u}function ln(n){var r,t=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=Z[e];t.push((function(n){return sn.apply(void 0,rn([o.apply(void 0,rn([n],u)),e,n],u))}));var a={run:function(n){return en(cn(t,(function(t,e){var u,i=_.run({value:n},(function(){return t(n)}));i.pass||e(an(!!i.pass,null!==(u=tn(r,n,i.message))&&void 0!==u?u:i.message))})),an(!0))},test:function(n){return a.run(n).pass},message:function(n){return n&&(r=n),a}};return on()?a=new Proxy(a,{get:function(r,t){return Z[t]?n(t):r[t]}}):($((function(r){a[r]=n(r)})),a)}}(n)}var vn,Nn=(vn={context:function(){return _.useX()},extend:function(n){r(Z,n)}},on()?new Proxy(r(fn,vn),{get:function(n,r){return r in n?n[r]:Z[r]?ln(r):void 0}}):($((function(n){vn[n]=ln(n)})),r(fn,vn)));export{_ as ctx,Nn as enforce};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports'
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n4s = {}
|
|
5
|
-
}(this, (function (exports
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.n4s = {}));
|
|
5
|
+
}(this, (function (exports) { 'use strict';
|
|
6
6
|
|
|
7
7
|
var assign = Object.assign;
|
|
8
8
|
|
|
@@ -179,6 +179,19 @@
|
|
|
179
179
|
}
|
|
180
180
|
var isFalsy = bindNot(isTruthy);
|
|
181
181
|
|
|
182
|
+
function isValueOf(value, objectToCheck) {
|
|
183
|
+
if (isNullish(objectToCheck)) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
for (var key in objectToCheck) {
|
|
187
|
+
if (objectToCheck[key] === value) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
return false;
|
|
192
|
+
}
|
|
193
|
+
var isNotValueOf = bindNot(isValueOf);
|
|
194
|
+
|
|
182
195
|
function lessThan(value, lt) {
|
|
183
196
|
return isNumeric(value) && isNumeric(lt) && Number(value) < Number(lt);
|
|
184
197
|
}
|
|
@@ -265,6 +278,7 @@
|
|
|
265
278
|
isNotNumeric: isNotNumeric,
|
|
266
279
|
isNotString: isNotString,
|
|
267
280
|
isNotUndefined: isNotUndefined,
|
|
281
|
+
isNotValueOf: isNotValueOf,
|
|
268
282
|
isNull: isNull,
|
|
269
283
|
isNullish: isNullish,
|
|
270
284
|
isNumber: isNumber,
|
|
@@ -274,6 +288,7 @@
|
|
|
274
288
|
isString: isStringValue,
|
|
275
289
|
isTruthy: isTruthy,
|
|
276
290
|
isUndefined: isUndefined,
|
|
291
|
+
isValueOf: isValueOf,
|
|
277
292
|
lengthEquals: lengthEquals,
|
|
278
293
|
lengthNotEquals: lengthNotEquals,
|
|
279
294
|
lessThan: lessThan,
|
|
@@ -308,7 +323,77 @@
|
|
|
308
323
|
}
|
|
309
324
|
}
|
|
310
325
|
|
|
311
|
-
|
|
326
|
+
function optionalFunctionValue(value) {
|
|
327
|
+
var args = [];
|
|
328
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
329
|
+
args[_i - 1] = arguments[_i];
|
|
330
|
+
}
|
|
331
|
+
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
function defaultTo(callback, defaultValue) {
|
|
335
|
+
var _a;
|
|
336
|
+
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Throws a timed out error.
|
|
341
|
+
*/
|
|
342
|
+
function throwError(devMessage, productionMessage) {
|
|
343
|
+
throw new Error(devMessage );
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
// eslint-disable-next-line max-lines-per-function
|
|
347
|
+
function createContext(init) {
|
|
348
|
+
var storage = { ancestry: [] };
|
|
349
|
+
return {
|
|
350
|
+
bind: bind,
|
|
351
|
+
run: run,
|
|
352
|
+
use: use,
|
|
353
|
+
useX: useX
|
|
354
|
+
};
|
|
355
|
+
function useX(errorMessage) {
|
|
356
|
+
var _a;
|
|
357
|
+
return ((_a = storage.ctx) !== null && _a !== void 0 ? _a : throwError(defaultTo(errorMessage, 'Context was used after it was closed')));
|
|
358
|
+
}
|
|
359
|
+
function run(ctxRef, fn) {
|
|
360
|
+
var _a;
|
|
361
|
+
var parentContext = use();
|
|
362
|
+
var out = assign({}, parentContext ? parentContext : {}, (_a = optionalFunctionValue(init, ctxRef, parentContext)) !== null && _a !== void 0 ? _a : ctxRef);
|
|
363
|
+
var ctx = set(Object.freeze(out));
|
|
364
|
+
storage.ancestry.unshift(ctx);
|
|
365
|
+
var res = fn(ctx);
|
|
366
|
+
clear();
|
|
367
|
+
return res;
|
|
368
|
+
}
|
|
369
|
+
function bind(ctxRef, fn) {
|
|
370
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
371
|
+
// @ts-ignore - this one's pretty hard to get right
|
|
372
|
+
var returnedFn = function () {
|
|
373
|
+
var runTimeArgs = [];
|
|
374
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
375
|
+
runTimeArgs[_i] = arguments[_i];
|
|
376
|
+
}
|
|
377
|
+
return run(ctxRef, function () {
|
|
378
|
+
return fn.apply(void 0, runTimeArgs);
|
|
379
|
+
});
|
|
380
|
+
};
|
|
381
|
+
return returnedFn;
|
|
382
|
+
}
|
|
383
|
+
function use() {
|
|
384
|
+
return storage.ctx;
|
|
385
|
+
}
|
|
386
|
+
function set(value) {
|
|
387
|
+
return (storage.ctx = value);
|
|
388
|
+
}
|
|
389
|
+
function clear() {
|
|
390
|
+
var _a;
|
|
391
|
+
storage.ancestry.shift();
|
|
392
|
+
set((_a = storage.ancestry[0]) !== null && _a !== void 0 ? _a : null);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
var ctx = createContext(function (ctxRef, parentContext) {
|
|
312
397
|
var base = {
|
|
313
398
|
value: ctxRef.value,
|
|
314
399
|
meta: ctxRef.meta || {}
|
|
@@ -361,27 +446,7 @@
|
|
|
361
446
|
ar[i] = from[i];
|
|
362
447
|
}
|
|
363
448
|
}
|
|
364
|
-
return to.concat(ar || from);
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
function optionalFunctionValue(value) {
|
|
368
|
-
var args = [];
|
|
369
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
370
|
-
args[_i - 1] = arguments[_i];
|
|
371
|
-
}
|
|
372
|
-
return isFunction(value) ? value.apply(void 0, args) : value;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
function defaultTo(callback, defaultValue) {
|
|
376
|
-
var _a;
|
|
377
|
-
return (_a = optionalFunctionValue(callback)) !== null && _a !== void 0 ? _a : defaultValue;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
/**
|
|
381
|
-
* Throws a timed out error.
|
|
382
|
-
*/
|
|
383
|
-
function throwError(devMessage, productionMessage) {
|
|
384
|
-
throw new Error(devMessage );
|
|
449
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
385
450
|
}
|
|
386
451
|
|
|
387
452
|
function isProxySupported() {
|
|
@@ -581,7 +646,7 @@
|
|
|
581
646
|
// Only on the first rule access - start the chain of calls
|
|
582
647
|
target[ruleName] = genEnforceLazy(ruleName);
|
|
583
648
|
});
|
|
584
|
-
return target;
|
|
649
|
+
return assign(enforceEager, target);
|
|
585
650
|
}
|
|
586
651
|
return new Proxy(assign(enforceEager, target), {
|
|
587
652
|
get: function (target, key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports
|
|
1
|
+
"use strict";!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((n="undefined"!=typeof globalThis?globalThis:n||self).n4s={})}(this,(function(n){function t(n){return"function"==typeof n}function r(n){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return!n.apply(void 0,t)}}function e(n){return null===n}function u(n){return void 0===n}function i(n){return null===n||u(n)}function o(n){return String(n)===n}function s(n,t){return o(n)&&o(t)&&n.endsWith(t)}function f(n,t){return n===t}function a(n){var t=Number(n);return!(isNaN(parseFloat(String(n)))||isNaN(Number(n))||!isFinite(t))}function c(n,t){return a(n)&&a(t)&&Number(n)>Number(t)}function l(n,t){return a(n)&&a(t)&&Number(n)>=Number(t)}function N(n){return!!Array.isArray(n)}function p(n,t){return!!(N(t)||o(t)&&o(n))&&-1!==t.indexOf(n)}function h(n,t){return a(n)&&a(t)&&Number(n)<=Number(t)}function v(n,t,r){return l(n,t)&&h(n,r)}function d(n){return i(n)||o(n)&&!n.trim()}function g(n){return!!n===n}function m(n){return"number"==typeof n}function y(n,t){return n.length===Number(t)}function b(n){if(n){if(m(n))return 0===n;if(Object.prototype.hasOwnProperty.call(n,"length"))return y(n,0);if("object"==typeof n)return y(Object.keys(n),0)}return!0}function x(n){return Number.isNaN(n)}function E(n){return!!a(n)&&0>Number(n)}function O(n){return!!n}function w(n,t){if(i(t))return!1;for(var r in t)if(t[r]===n)return!0;return!1}function T(n,t){return a(n)&&a(t)&&Number(n)<Number(t)}function q(n,t){return t instanceof RegExp?t.test(n):!!o(t)&&new RegExp(t).test(n)}function j(n,t){return a(n)&&a(t)&&Number(n)===Number(t)}function P(n,t){return o(n)&&o(t)&&n.startsWith(t)}function S(n){for(var r in ln){var e=ln[r];t(e)&&n(r,e)}}function A(n){for(var r=[],e=1;e<arguments.length;e++)r[e-1]=arguments[e];return t(n)?n.apply(void 0,r):n}function B(n,t){var r;return null!==(r=A(n))&&void 0!==r?r:t}function W(n,t){throw Error(B(t,n))}function k(){return null}function F(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||Array.prototype.slice.call(t))}function I(){try{return t(Proxy)}catch(n){return!1}}function J(n,t){return n={pass:n},t&&(n.message=t),n}function M(n,t,r){for(var e=[],u=3;u<arguments.length;u++)e[u-3]=arguments[u];return g(n)||n&&g(n.pass)||W("Incorrect return value for rule: "+JSON.stringify(n)),g(n)?J(n):J(n.pass,A.apply(void 0,F([n.message,t,r],e)))}function R(n){function t(t,r,e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];if(!(i=M.apply(void 0,F([Nn.run({value:n},(function(){return r.apply(void 0,F([n],u))})),e,n],u))).pass){if(!b(i.message))throw i.message;W("enforce/"+e+" failed with "+JSON.stringify(n))}return t}}var r={};if(!I())return S((function(n,e){r[n]=t(r,e,n)})),r;var e=new Proxy(r,{get:function(n,r){if(n=ln[r])return t(e,n,r)}});return e}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 V(n){var t,r=[];return function n(e){return function(){for(var u=[],i=0;i<arguments.length;i++)u[i]=arguments[i];var o=ln[e];r.push((function(n){return M.apply(void 0,F([o.apply(void 0,F([n],u)),e,n],u))}));var s={run:function(n){return B(U(r,(function(r,e){var u,i=Nn.run({value:n},(function(){return r(n)}));i.pass||e(J(!!i.pass,null!==(u=A(t,n,i.message))&&void 0!==u?u:i.message))})),J(!0))},test:function(n){return s.run(n).pass},message:function(n){return n&&(t=n),s}};return I()?s=new Proxy(s,{get:function(t,r){return ln[r]?n(r):t[r]}}):(S((function(t){s[t]=n(t)})),s)}}(n)}var X,_=Object.assign,z=r(e),C=r(u),D=r(i),G=r(s),H=r(f),K=r(a),L=r(N),Q=r(p),Y=r(v),Z=r(d),$=r(g),nn=r(m),tn=r(y),rn=r(b),en=r(x),un=r(E),on=r(o),sn=r(O),fn=r(w),an=r(q),cn=r(j),ln={condition:function(n,t){try{return t(n)}catch(n){return!1}},doesNotEndWith:G,doesNotStartWith:r(P),endsWith:s,equals:f,greaterThan:c,greaterThanOrEquals:l,gt:c,gte:l,inside:p,isArray:N,isBetween:v,isBlank:d,isBoolean:g,isEmpty:b,isEven:function(n){return!!a(n)&&0==n%2},isFalsy:sn,isNaN:x,isNegative:E,isNotArray:L,isNotBetween:Y,isNotBlank:Z,isNotBoolean:$,isNotEmpty:rn,isNotNaN:en,isNotNull:z,isNotNullish:D,isNotNumber:nn,isNotNumeric:K,isNotString:on,isNotUndefined:C,isNotValueOf:fn,isNull:e,isNullish:i,isNumber:m,isNumeric:a,isOdd:function(n){return!!a(n)&&0!=n%2},isPositive:un,isString:o,isTruthy:O,isUndefined:u,isValueOf:w,lengthEquals:y,lengthNotEquals:tn,lessThan:T,lessThanOrEquals:h,longerThan:function(n,t){return n.length>Number(t)},longerThanOrEquals:function(n,t){return n.length>=Number(t)},lt:T,lte:h,matches:q,notEquals:H,notInside:Q,notMatches:an,numberEquals:j,numberNotEquals:cn,shorterThan:function(n,t){return n.length<Number(t)},shorterThanOrEquals:function(n,t){return n.length<=Number(t)},startsWith:P},Nn=function(n){function t(t,u){var i,o,s=r();return t=_({},s||{},null!==(i=A(n,t,s))&&void 0!==i?i:t),i=e.ctx=Object.freeze(t),e.ancestry.unshift(i),u=u(i),e.ancestry.shift(),e.ctx=null!==(o=e.ancestry[0])&&void 0!==o?o:null,u}function r(){return e.ctx}var e={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:r,useX:function(n){var t;return null!==(t=e.ctx)&&void 0!==t?t:W(B(n,"Context was used after it was closed"))}}}((function(n,t){var r={value:n.value,meta:n.meta||{}};return t?n.set?_(r,{parent:function(){return t?{value:t.value,meta:t.meta,parent:t.parent}:t}}):t:_(r,{parent:k})}));X={context:function(){return Nn.useX()},extend:function(n){_(ln,n)}},z=I()?new Proxy(_(R,X),{get:function(n,t){return t in n?n[t]:ln[t]?V(t):void 0}}):(S((function(n){X[n]=V(n)})),_(R,X)),n.ctx=Nn,n.enforce=z,Object.defineProperty(n,"__esModule",{value:!0})}));
|
package/package.json
CHANGED
package/types/compose.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
37
37
|
declare function isStringValue(v: unknown): v is string;
|
|
38
38
|
declare function isTruthy(value: unknown): boolean;
|
|
39
39
|
declare function isUndefined(value?: unknown): boolean;
|
|
40
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
40
41
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
41
42
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
42
43
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -79,6 +80,7 @@ declare const baseRules: {
|
|
|
79
80
|
isNotNumeric: (value: string | number) => boolean;
|
|
80
81
|
isNotString: (v: unknown) => boolean;
|
|
81
82
|
isNotUndefined: (value?: unknown) => boolean;
|
|
83
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
82
84
|
isNull: typeof isNull;
|
|
83
85
|
isNullish: typeof isNullish;
|
|
84
86
|
isNumber: typeof isNumber;
|
|
@@ -88,6 +90,7 @@ declare const baseRules: {
|
|
|
88
90
|
isString: typeof isStringValue;
|
|
89
91
|
isTruthy: typeof isTruthy;
|
|
90
92
|
isUndefined: typeof isUndefined;
|
|
93
|
+
isValueOf: typeof isValueOf;
|
|
91
94
|
lengthEquals: typeof lengthEquals;
|
|
92
95
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
93
96
|
lessThan: typeof lessThan;
|
package/types/compounds.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
37
37
|
declare function isStringValue(v: unknown): v is string;
|
|
38
38
|
declare function isTruthy(value: unknown): boolean;
|
|
39
39
|
declare function isUndefined(value?: unknown): boolean;
|
|
40
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
40
41
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
41
42
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
42
43
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -79,6 +80,7 @@ declare const baseRules: {
|
|
|
79
80
|
isNotNumeric: (value: string | number) => boolean;
|
|
80
81
|
isNotString: (v: unknown) => boolean;
|
|
81
82
|
isNotUndefined: (value?: unknown) => boolean;
|
|
83
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
82
84
|
isNull: typeof isNull;
|
|
83
85
|
isNullish: typeof isNullish;
|
|
84
86
|
isNumber: typeof isNumber;
|
|
@@ -88,6 +90,7 @@ declare const baseRules: {
|
|
|
88
90
|
isString: typeof isStringValue;
|
|
89
91
|
isTruthy: typeof isTruthy;
|
|
90
92
|
isUndefined: typeof isUndefined;
|
|
93
|
+
isValueOf: typeof isValueOf;
|
|
91
94
|
lengthEquals: typeof lengthEquals;
|
|
92
95
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
93
96
|
lessThan: typeof lessThan;
|
package/types/n4s.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
57
57
|
declare function isStringValue(v: unknown): v is string;
|
|
58
58
|
declare function isTruthy(value: unknown): boolean;
|
|
59
59
|
declare function isUndefined(value?: unknown): boolean;
|
|
60
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
60
61
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
61
62
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
62
63
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -99,6 +100,7 @@ declare const baseRules: {
|
|
|
99
100
|
isNotNumeric: (value: string | number) => boolean;
|
|
100
101
|
isNotString: (v: unknown) => boolean;
|
|
101
102
|
isNotUndefined: (value?: unknown) => boolean;
|
|
103
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
102
104
|
isNull: typeof isNull;
|
|
103
105
|
isNullish: typeof isNullish;
|
|
104
106
|
isNumber: typeof isNumber;
|
|
@@ -108,6 +110,7 @@ declare const baseRules: {
|
|
|
108
110
|
isString: typeof isStringValue;
|
|
109
111
|
isTruthy: typeof isTruthy;
|
|
110
112
|
isUndefined: typeof isUndefined;
|
|
113
|
+
isValueOf: typeof isValueOf;
|
|
111
114
|
lengthEquals: typeof lengthEquals;
|
|
112
115
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
113
116
|
lessThan: typeof lessThan;
|
package/types/schema.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ declare function isNumeric(value: string | number): boolean;
|
|
|
37
37
|
declare function isStringValue(v: unknown): v is string;
|
|
38
38
|
declare function isTruthy(value: unknown): boolean;
|
|
39
39
|
declare function isUndefined(value?: unknown): boolean;
|
|
40
|
+
declare function isValueOf(value: any, objectToCheck: any): boolean;
|
|
40
41
|
declare function lengthEquals(value: string | unknown[], arg1: string | number): boolean;
|
|
41
42
|
declare function lessThan(value: string | number, lt: string | number): boolean;
|
|
42
43
|
declare function lessThanOrEquals(value: string | number, lte: string | number): boolean;
|
|
@@ -79,6 +80,7 @@ declare const baseRules: {
|
|
|
79
80
|
isNotNumeric: (value: string | number) => boolean;
|
|
80
81
|
isNotString: (v: unknown) => boolean;
|
|
81
82
|
isNotUndefined: (value?: unknown) => boolean;
|
|
83
|
+
isNotValueOf: (value: any, objectToCheck: any) => boolean;
|
|
82
84
|
isNull: typeof isNull;
|
|
83
85
|
isNullish: typeof isNullish;
|
|
84
86
|
isNumber: typeof isNumber;
|
|
@@ -88,6 +90,7 @@ declare const baseRules: {
|
|
|
88
90
|
isString: typeof isStringValue;
|
|
89
91
|
isTruthy: typeof isTruthy;
|
|
90
92
|
isUndefined: typeof isUndefined;
|
|
93
|
+
isValueOf: typeof isValueOf;
|
|
91
94
|
lengthEquals: typeof lengthEquals;
|
|
92
95
|
lengthNotEquals: (value: string | unknown[], arg1: string | number) => boolean;
|
|
93
96
|
lessThan: typeof lessThan;
|
package/docs/.nojekyll
DELETED
|
File without changes
|
package/docs/README.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# Enforce - n4s
|
|
2
|
-
|
|
3
|
-
Enforce is a validations assertions library. It provides rules that you can test your data against.
|
|
4
|
-
|
|
5
|
-
By default, enforce throws an error when your validations fail. These errors should be caught by a validation testing framework such as [Vest](https://github.com/ealush/vest).
|
|
6
|
-
|
|
7
|
-
You can extend Enforce per need, and you can add your custom validation rules in your app.
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
import { enforce } from 'n4s';
|
|
11
|
-
|
|
12
|
-
enforce(4).isNumber();
|
|
13
|
-
// passes
|
|
14
|
-
|
|
15
|
-
enforce(4).isNumber().greaterThan(2);
|
|
16
|
-
// passes
|
|
17
|
-
|
|
18
|
-
enforce(4)
|
|
19
|
-
.lessThan(2) // throws an error, will not carry on to the next rule
|
|
20
|
-
.greaterThan(3);
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Installation
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
npm i n4s
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Non throwing validations
|
|
30
|
-
|
|
31
|
-
> This functionality replaces the no-longer supported ensure export, as it performs the same functionality with better performance.
|
|
32
|
-
|
|
33
|
-
If you wish to use enforce's functionality safely with a boolean return interface instead, you can use its lazy validation interface:
|
|
34
|
-
|
|
35
|
-
```js
|
|
36
|
-
enforce.isArray().longerThan(3).test([1, 2, 3]);
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Content
|
|
40
|
-
|
|
41
|
-
- [List of Enforce rules](./rules)
|
|
42
|
-
- [Business reated rules](./business_rules)
|
|
43
|
-
- [Schema validation](./shape)
|
|
44
|
-
- [Custom Enforce Rules](./custom)
|
package/docs/_sidebar.md
DELETED
package/docs/external.md
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Consuming external rules
|
|
2
|
-
|
|
3
|
-
Enforce comes with the bare minimum of rules needed for input validation, not assuming your business logic constraints.
|
|
4
|
-
|
|
5
|
-
In some cases you might require more validations such as `isEmail` or `isPhoneNumber`. Enforce intentionally does not include those, since those validations may not necessarily reflect the way those validations should work in your app.
|
|
6
|
-
|
|
7
|
-
Luckily, there are numerous packages that can be used along with enforce to add those validations. One of the most popular, and most compatible is `validator.js`.
|
|
8
|
-
|
|
9
|
-
```
|
|
10
|
-
npm i validator
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Validator.js is a pretty big package. To prevent it from unnecessarily increasing your bundle size for rules you don't use, import the ones you use individually.
|
|
14
|
-
|
|
15
|
-
Then add those rules with `enforce.extend`:
|
|
16
|
-
|
|
17
|
-
```js
|
|
18
|
-
import isEmail from 'validator/es/lib/isEmail';
|
|
19
|
-
import isMobilePhone from 'validator/es/lib/isMobilePhone';
|
|
20
|
-
|
|
21
|
-
enforce.extend({ isEmail, isMobilePhone });
|
|
22
|
-
|
|
23
|
-
enforce('example@example.com').isEmail(); // ✅
|
|
24
|
-
enforce('example[at]example[dot]com').isEmail(); // 🚨
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
A full list of the supported validator.js rules can be found on [npmjs.com/package/validator](https://www.npmjs.com/package/validator).
|
package/docs/index.html
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8" />
|
|
5
|
-
<title>n4s - Enforce - Validation assertions library</title>
|
|
6
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
7
|
-
<meta
|
|
8
|
-
name="description"
|
|
9
|
-
content="Enforce - Validation assertions library"
|
|
10
|
-
/>
|
|
11
|
-
<meta
|
|
12
|
-
name="viewport"
|
|
13
|
-
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"
|
|
14
|
-
/>
|
|
15
|
-
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css" />
|
|
16
|
-
</head>
|
|
17
|
-
<body>
|
|
18
|
-
<div id="app"></div>
|
|
19
|
-
<script>
|
|
20
|
-
window.$docsify = {
|
|
21
|
-
name: 'n4s - enforce',
|
|
22
|
-
repo: 'https://github.com/ealush/n4s',
|
|
23
|
-
search: 'auto',
|
|
24
|
-
loadSidebar: true,
|
|
25
|
-
subMaxLevel: 2,
|
|
26
|
-
themeColor: '#539BDB',
|
|
27
|
-
};
|
|
28
|
-
</script>
|
|
29
|
-
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
|
30
|
-
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
|
|
31
|
-
</body>
|
|
32
|
-
</html>
|