ddan-js 1.2.2 → 1.2.4

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.
Files changed (71) hide show
  1. package/bin/ddan-js.esm.js +1 -1
  2. package/bin/ddan-js.js +1 -1
  3. package/bin/lib/index.js +2 -1
  4. package/bin/lib/modules/math/index.js +14 -1
  5. package/bin/lib/modules/mini/index.js +13 -13
  6. package/bin/lib/modules/rule/async-validator/index.js +300 -0
  7. package/bin/lib/modules/rule/async-validator/interface.js +2 -0
  8. package/bin/lib/modules/rule/async-validator/messages.js +59 -0
  9. package/bin/lib/modules/rule/async-validator/rule/enum.js +13 -0
  10. package/bin/lib/modules/rule/async-validator/rule/index.js +16 -0
  11. package/bin/lib/modules/rule/async-validator/rule/pattern.js +27 -0
  12. package/bin/lib/modules/rule/async-validator/rule/range.js +54 -0
  13. package/bin/lib/modules/rule/async-validator/rule/required.js +12 -0
  14. package/bin/lib/modules/rule/async-validator/rule/type.js +98 -0
  15. package/bin/lib/modules/rule/async-validator/rule/url.js +55 -0
  16. package/bin/lib/modules/rule/async-validator/rule/whitespace.js +20 -0
  17. package/bin/lib/modules/rule/async-validator/util.js +250 -0
  18. package/bin/lib/modules/rule/async-validator/validator/any.js +16 -0
  19. package/bin/lib/modules/rule/async-validator/validator/array.js +19 -0
  20. package/bin/lib/modules/rule/async-validator/validator/boolean.js +20 -0
  21. package/bin/lib/modules/rule/async-validator/validator/date.js +31 -0
  22. package/bin/lib/modules/rule/async-validator/validator/enum.js +20 -0
  23. package/bin/lib/modules/rule/async-validator/validator/float.js +20 -0
  24. package/bin/lib/modules/rule/async-validator/validator/index.js +36 -0
  25. package/bin/lib/modules/rule/async-validator/validator/integer.js +20 -0
  26. package/bin/lib/modules/rule/async-validator/validator/method.js +19 -0
  27. package/bin/lib/modules/rule/async-validator/validator/number.js +23 -0
  28. package/bin/lib/modules/rule/async-validator/validator/object.js +19 -0
  29. package/bin/lib/modules/rule/async-validator/validator/pattern.js +19 -0
  30. package/bin/lib/modules/rule/async-validator/validator/regexp.js +19 -0
  31. package/bin/lib/modules/rule/async-validator/validator/required.js +10 -0
  32. package/bin/lib/modules/rule/async-validator/validator/string.js +24 -0
  33. package/bin/lib/modules/rule/async-validator/validator/type.js +20 -0
  34. package/bin/lib/modules/rule/index.js +31 -0
  35. package/bin/lib/modules/url/index.js +12 -1
  36. package/bin/lib/util/index.js +30 -1
  37. package/bin/types/index.d.ts +37 -6
  38. package/bin/types/modules/math/index.d.ts +2 -0
  39. package/bin/types/modules/mini/index.d.ts +4 -2
  40. package/bin/types/modules/rule/async-validator/index.d.ts +43 -0
  41. package/bin/types/modules/rule/async-validator/interface.d.ts +135 -0
  42. package/bin/types/modules/rule/async-validator/messages.d.ts +3 -0
  43. package/bin/types/modules/rule/async-validator/rule/enum.d.ts +3 -0
  44. package/bin/types/modules/rule/async-validator/rule/index.d.ts +9 -0
  45. package/bin/types/modules/rule/async-validator/rule/pattern.d.ts +3 -0
  46. package/bin/types/modules/rule/async-validator/rule/range.d.ts +3 -0
  47. package/bin/types/modules/rule/async-validator/rule/required.d.ts +3 -0
  48. package/bin/types/modules/rule/async-validator/rule/type.d.ts +3 -0
  49. package/bin/types/modules/rule/async-validator/rule/url.d.ts +2 -0
  50. package/bin/types/modules/rule/async-validator/rule/whitespace.d.ts +14 -0
  51. package/bin/types/modules/rule/async-validator/util.d.ts +16 -0
  52. package/bin/types/modules/rule/async-validator/validator/any.d.ts +3 -0
  53. package/bin/types/modules/rule/async-validator/validator/array.d.ts +3 -0
  54. package/bin/types/modules/rule/async-validator/validator/boolean.d.ts +3 -0
  55. package/bin/types/modules/rule/async-validator/validator/date.d.ts +3 -0
  56. package/bin/types/modules/rule/async-validator/validator/enum.d.ts +3 -0
  57. package/bin/types/modules/rule/async-validator/validator/float.d.ts +3 -0
  58. package/bin/types/modules/rule/async-validator/validator/index.d.ts +20 -0
  59. package/bin/types/modules/rule/async-validator/validator/integer.d.ts +3 -0
  60. package/bin/types/modules/rule/async-validator/validator/method.d.ts +3 -0
  61. package/bin/types/modules/rule/async-validator/validator/number.d.ts +3 -0
  62. package/bin/types/modules/rule/async-validator/validator/object.d.ts +3 -0
  63. package/bin/types/modules/rule/async-validator/validator/pattern.d.ts +3 -0
  64. package/bin/types/modules/rule/async-validator/validator/regexp.d.ts +3 -0
  65. package/bin/types/modules/rule/async-validator/validator/required.d.ts +3 -0
  66. package/bin/types/modules/rule/async-validator/validator/string.d.ts +3 -0
  67. package/bin/types/modules/rule/async-validator/validator/type.d.ts +3 -0
  68. package/bin/types/modules/rule/index.d.ts +12 -0
  69. package/bin/types/modules/url/index.d.ts +26 -4
  70. package/bin/types/util/index.d.ts +4 -0
  71. package/package.json +1 -1
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const floatFn = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value) && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options);
13
+ if (value !== undefined) {
14
+ rule_1.default.type(rule, value, source, errors, options);
15
+ rule_1.default.range(rule, value, source, errors, options);
16
+ }
17
+ }
18
+ callback(errors);
19
+ };
20
+ exports.default = floatFn;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const string_1 = require("./string");
4
+ const method_1 = require("./method");
5
+ const number_1 = require("./number");
6
+ const boolean_1 = require("./boolean");
7
+ const regexp_1 = require("./regexp");
8
+ const integer_1 = require("./integer");
9
+ const float_1 = require("./float");
10
+ const array_1 = require("./array");
11
+ const object_1 = require("./object");
12
+ const enum_1 = require("./enum");
13
+ const pattern_1 = require("./pattern");
14
+ const date_1 = require("./date");
15
+ const required_1 = require("./required");
16
+ const type_1 = require("./type");
17
+ const any_1 = require("./any");
18
+ exports.default = {
19
+ string: string_1.default,
20
+ method: method_1.default,
21
+ number: number_1.default,
22
+ boolean: boolean_1.default,
23
+ regexp: regexp_1.default,
24
+ integer: integer_1.default,
25
+ float: float_1.default,
26
+ array: array_1.default,
27
+ object: object_1.default,
28
+ enum: enum_1.default,
29
+ pattern: pattern_1.default,
30
+ date: date_1.default,
31
+ url: type_1.default,
32
+ hex: type_1.default,
33
+ email: type_1.default,
34
+ required: required_1.default,
35
+ any: any_1.default,
36
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const integer = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value) && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options);
13
+ if (value !== undefined) {
14
+ rule_1.default.type(rule, value, source, errors, options);
15
+ rule_1.default.range(rule, value, source, errors, options);
16
+ }
17
+ }
18
+ callback(errors);
19
+ };
20
+ exports.default = integer;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const method = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value) && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options);
13
+ if (value !== undefined) {
14
+ rule_1.default.type(rule, value, source, errors, options);
15
+ }
16
+ }
17
+ callback(errors);
18
+ };
19
+ exports.default = method;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const number = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if (value === '') {
10
+ value = undefined;
11
+ }
12
+ if ((0, util_1.isEmptyValue)(value) && !rule.required) {
13
+ return callback();
14
+ }
15
+ rule_1.default.required(rule, value, source, errors, options);
16
+ if (value !== undefined) {
17
+ rule_1.default.type(rule, value, source, errors, options);
18
+ rule_1.default.range(rule, value, source, errors, options);
19
+ }
20
+ }
21
+ callback(errors);
22
+ };
23
+ exports.default = number;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const object = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value) && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options);
13
+ if (value !== undefined) {
14
+ rule_1.default.type(rule, value, source, errors, options);
15
+ }
16
+ }
17
+ callback(errors);
18
+ };
19
+ exports.default = object;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const pattern = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value, 'string') && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options);
13
+ if (!(0, util_1.isEmptyValue)(value, 'string')) {
14
+ rule_1.default.pattern(rule, value, source, errors, options);
15
+ }
16
+ }
17
+ callback(errors);
18
+ };
19
+ exports.default = pattern;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const regexp = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value) && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options);
13
+ if (!(0, util_1.isEmptyValue)(value)) {
14
+ rule_1.default.type(rule, value, source, errors, options);
15
+ }
16
+ }
17
+ callback(errors);
18
+ };
19
+ exports.default = regexp;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const required = (rule, value, callback, source, options) => {
5
+ const errors = [];
6
+ const type = Array.isArray(value) ? 'array' : typeof value;
7
+ rule_1.default.required(rule, value, source, errors, options, type);
8
+ callback(errors);
9
+ };
10
+ exports.default = required;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const string = (rule, value, callback, source, options) => {
6
+ const errors = [];
7
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field || ""));
8
+ if (validate) {
9
+ if ((0, util_1.isEmptyValue)(value, 'string') && !rule.required) {
10
+ return callback();
11
+ }
12
+ rule_1.default.required(rule, value, source, errors, options, 'string');
13
+ if (!(0, util_1.isEmptyValue)(value, 'string')) {
14
+ rule_1.default.type(rule, value, source, errors, options);
15
+ rule_1.default.range(rule, value, source, errors, options);
16
+ rule_1.default.pattern(rule, value, source, errors, options);
17
+ if (rule.whitespace === true) {
18
+ rule_1.default.whitespace(rule, value, source, errors, options);
19
+ }
20
+ }
21
+ }
22
+ callback(errors);
23
+ };
24
+ exports.default = string;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const rule_1 = require("../rule");
4
+ const util_1 = require("../util");
5
+ const type = (rule, value, callback, source, options) => {
6
+ const ruleType = rule.type;
7
+ const errors = [];
8
+ const validate = rule.required || (!rule.required && source.hasOwnProperty(rule.field));
9
+ if (validate) {
10
+ if ((0, util_1.isEmptyValue)(value, ruleType) && !rule.required) {
11
+ return callback();
12
+ }
13
+ rule_1.default.required(rule, value, source, errors, options, ruleType);
14
+ if (!(0, util_1.isEmptyValue)(value, ruleType)) {
15
+ rule_1.default.type(rule, value, source, errors, options);
16
+ }
17
+ }
18
+ callback(errors);
19
+ };
20
+ exports.default = type;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const hook_1 = require("../hook");
4
+ const async_validator_1 = require("./async-validator");
5
+ function validateId(content) {
6
+ if (!content)
7
+ return false;
8
+ if (content.length < 6)
9
+ return false;
10
+ const reg = /^[A-Za-z0-9_-]+$/;
11
+ if (!reg.test(content)) {
12
+ return false;
13
+ }
14
+ return true;
15
+ }
16
+ function validatePhone(content) {
17
+ if (!content)
18
+ return false;
19
+ const reg = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
20
+ if (!reg.test(content)) {
21
+ return false;
22
+ }
23
+ return true;
24
+ }
25
+ function validator(rules) {
26
+ return new async_validator_1.default(rules);
27
+ }
28
+ function validate(rules, source_, o = {}, oc = () => { }) {
29
+ return hook_1.default.run(validator(rules).validate(source_, o, oc));
30
+ }
31
+ exports.default = { validateId, validatePhone, validator, validate };
@@ -2,4 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const decode_1 = require("./decode");
4
4
  const encode_1 = require("./encode");
5
- exports.default = { parse: decode_1.default, decode: decode_1.default, stringify: encode_1.default, encode: encode_1.default };
5
+ function useHttps(url) {
6
+ if (!url)
7
+ return url;
8
+ const tUrl = url.trim();
9
+ if (typeof url !== "string")
10
+ return url;
11
+ if (tUrl.indexOf("https") < 0) {
12
+ return tUrl.replace("http", "https");
13
+ }
14
+ return tUrl;
15
+ }
16
+ exports.default = { parse: decode_1.default, decode: decode_1.default, stringify: encode_1.default, encode: encode_1.default, useHttps };
@@ -3,4 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const is_1 = require("./is");
4
4
  const _object_1 = require("../common/_object");
5
5
  const includes_1 = require("./includes");
6
- exports.default = Object.assign(Object.assign(Object.assign({}, is_1.default), _object_1.default), { includes: includes_1.default });
6
+ function compareArray(arr1, arr2) {
7
+ if (!Array.isArray(arr1) || !Array.isArray(arr2))
8
+ return false;
9
+ if (arr1.length !== arr2.length)
10
+ return false;
11
+ for (let i = 0, len = arr1.length; i < len; i++) {
12
+ if (arr1[i] !== arr2[i])
13
+ return false;
14
+ }
15
+ return true;
16
+ }
17
+ function merge(target, source) {
18
+ if (!source)
19
+ return target;
20
+ if (!target)
21
+ return source;
22
+ Object.keys(source).forEach((key) => {
23
+ if (Array.isArray(target[key]) && Array.isArray(source[key])) {
24
+ target[key] = target[key].concat(source[key]);
25
+ }
26
+ else if (typeof target[key] === "object" && typeof source[key] === "object") {
27
+ target[key] = Object.assign(target[key], source[key]);
28
+ }
29
+ else {
30
+ target[key] = source[key];
31
+ }
32
+ });
33
+ return target;
34
+ }
35
+ exports.default = Object.assign(Object.assign(Object.assign({}, is_1.default), _object_1.default), { includes: includes_1.default, merge, compareArray });
@@ -33,9 +33,12 @@ declare const _default: {
33
33
  random: (max: number) => number;
34
34
  randomRange: (min: number, max: number) => number;
35
35
  lerp: (start: number, end: number, t: number) => number;
36
+ randomString: (len: any, prefix?: boolean) => string;
36
37
  };
37
38
  util: {
38
39
  includes: typeof import("./util/includes").default;
40
+ merge: (target: any, source: any) => any;
41
+ compareArray: (arr1: any, arr2: any) => boolean;
39
42
  getTag: (value: any) => string;
40
43
  getType: (value: any) => string;
41
44
  toString: () => string;
@@ -66,14 +69,42 @@ declare const _default: {
66
69
  };
67
70
  mini: {
68
71
  diff: typeof import("./modules/mini/diff").default;
69
- promixify: (wxapi: any) => (options: any, ...params: any[]) => Promise<any[]>;
70
- api: (miniapi: any, options: any, ...params: any[]) => Promise<any[]>;
72
+ promixify: (miniapi: any) => any;
73
+ run: (func: any, args?: {}) => Promise<any[]> | undefined;
74
+ formatList: (lists: any[], start: any, name: any) => any;
71
75
  };
72
76
  url: {
73
- parse: (qs: any, sep: any, eq: any, options: any) => {};
74
- decode: (qs: any, sep: any, eq: any, options: any) => {};
75
- stringify: (obj: any, sep: any, eq: any, name: any) => string;
76
- encode: (obj: any, sep: any, eq: any, name: any) => string;
77
+ parse: (qs: any, { sep, eq, max, multiple }?: {
78
+ sep?: string | undefined;
79
+ eq?: string | undefined;
80
+ max?: number | undefined;
81
+ multiple?: boolean | undefined;
82
+ }) => {};
83
+ decode: (qs: any, { sep, eq, max, multiple }?: {
84
+ sep?: string | undefined;
85
+ eq?: string | undefined;
86
+ max?: number | undefined;
87
+ multiple?: boolean | undefined;
88
+ }) => {};
89
+ stringify: (obj: any, { sep, eq, name, multiple }?: {
90
+ sep?: string | undefined;
91
+ eq?: string | undefined;
92
+ name?: null | undefined;
93
+ multiple?: boolean | undefined;
94
+ }) => string;
95
+ encode: (obj: any, { sep, eq, name, multiple }?: {
96
+ sep?: string | undefined;
97
+ eq?: string | undefined;
98
+ name?: null | undefined;
99
+ multiple?: boolean | undefined;
100
+ }) => string;
101
+ useHttps: (url: string) => string;
102
+ };
103
+ rule: {
104
+ validateId: (content: any) => boolean;
105
+ validatePhone: (content: any) => boolean;
106
+ validator: (rules: import("./modules/rule/async-validator").Rules) => import("./modules/rule/async-validator").default;
107
+ validate: (rules: import("./modules/rule/async-validator").Rules, source_: import("./modules/rule/async-validator").Values, o?: any, oc?: any) => Promise<import("./modules/rule/async-validator").Values>;
77
108
  };
78
109
  DEvent: typeof DEvent;
79
110
  store: typeof store;
@@ -16,9 +16,11 @@ declare function randomRange(min: number, max: number): number;
16
16
  * @param t
17
17
  */
18
18
  declare function lerp(start: number, end: number, t: number): number;
19
+ declare function randomString(len: any, prefix?: boolean): string;
19
20
  declare const _default: {
20
21
  random: typeof random;
21
22
  randomRange: typeof randomRange;
22
23
  lerp: typeof lerp;
24
+ randomString: typeof randomString;
23
25
  };
24
26
  export default _default;
@@ -1,7 +1,9 @@
1
1
  import diff from "./diff";
2
+ declare function formatList(lists: any[], start: any, name: any): any;
2
3
  declare const _default: {
3
4
  diff: typeof diff;
4
- promixify: (miniapi: any) => (options: any, ...params: any[]) => Promise<unknown>;
5
- api: (miniapi: any, options?: null, ...params: any[]) => Promise<any[]>;
5
+ promixify: (miniapi: any) => any;
6
+ run: (func: any, args?: {}) => Promise<any[]> | undefined;
7
+ formatList: typeof formatList;
6
8
  };
7
9
  export default _default;
@@ -0,0 +1,43 @@
1
+ import { InternalRuleItem, InternalValidateMessages, RuleItem, Rules, ValidateCallback, ValidateMessages, ValidateOption, Values, SyncErrorType } from './interface';
2
+ export * from './interface';
3
+ /**
4
+ * Encapsulates a validation schema.
5
+ *
6
+ * @param descriptor An object declaring validation rules
7
+ * for this schema.
8
+ */
9
+ declare class Schema {
10
+ static register: (type: string, validator: any) => void;
11
+ static warning: (type: string, errors: SyncErrorType[]) => void;
12
+ static messages: InternalValidateMessages;
13
+ static validators: {
14
+ string: import("./interface").ExecuteValidator;
15
+ method: import("./interface").ExecuteValidator;
16
+ number: import("./interface").ExecuteValidator;
17
+ boolean: import("./interface").ExecuteValidator;
18
+ regexp: import("./interface").ExecuteValidator;
19
+ integer: import("./interface").ExecuteValidator;
20
+ float: import("./interface").ExecuteValidator;
21
+ array: import("./interface").ExecuteValidator;
22
+ object: import("./interface").ExecuteValidator;
23
+ enum: import("./interface").ExecuteValidator;
24
+ pattern: import("./interface").ExecuteValidator;
25
+ date: import("./interface").ExecuteValidator;
26
+ url: import("./interface").ExecuteValidator;
27
+ hex: import("./interface").ExecuteValidator;
28
+ email: import("./interface").ExecuteValidator;
29
+ required: import("./interface").ExecuteValidator;
30
+ any: import("./interface").ExecuteValidator;
31
+ };
32
+ rules: Record<string, RuleItem[]>;
33
+ _messages: InternalValidateMessages;
34
+ constructor(descriptor: Rules);
35
+ define(rules: Rules): void;
36
+ messages(messages?: ValidateMessages): InternalValidateMessages;
37
+ validate(source: Values, option?: ValidateOption, callback?: ValidateCallback): Promise<Values>;
38
+ validate(source: Values, callback: ValidateCallback): Promise<Values>;
39
+ validate(source: Values): Promise<Values>;
40
+ getType(rule: InternalRuleItem): import("./interface").RuleType;
41
+ getValidationMethod(rule: InternalRuleItem): import("./interface").ExecuteValidator | ((rule: InternalRuleItem, value: any, callback: (error?: string | Error | undefined) => void, source: Values, options: ValidateOption) => void | import("./interface").SyncValidateResult);
42
+ }
43
+ export default Schema;
@@ -0,0 +1,135 @@
1
+ export type RuleType = 'string' | 'number' | 'boolean' | 'method' | 'regexp' | 'integer' | 'float' | 'array' | 'object' | 'enum' | 'date' | 'url' | 'hex' | 'email' | 'pattern' | 'any';
2
+ export interface ValidateOption {
3
+ suppressWarning?: boolean;
4
+ suppressValidatorError?: boolean;
5
+ first?: boolean;
6
+ firstFields?: boolean | string[];
7
+ messages?: Partial<ValidateMessages>;
8
+ /** The name of rules need to be trigger. Will validate all rules if leave empty */
9
+ keys?: string[];
10
+ error?: (rule: InternalRuleItem, message: string) => ValidateError;
11
+ }
12
+ export type SyncErrorType = Error | string;
13
+ export type SyncValidateResult = boolean | SyncErrorType | SyncErrorType[];
14
+ export type ValidateResult = void | Promise<void> | SyncValidateResult;
15
+ export interface RuleItem {
16
+ type?: RuleType;
17
+ required?: boolean;
18
+ pattern?: RegExp | string;
19
+ min?: number;
20
+ max?: number;
21
+ len?: number;
22
+ enum?: Array<string | number | boolean | null | undefined>;
23
+ whitespace?: boolean;
24
+ fields?: Record<string, Rule>;
25
+ options?: ValidateOption;
26
+ defaultField?: Rule;
27
+ transform?: (value: Value) => Value;
28
+ message?: string | ((a?: string) => string);
29
+ asyncValidator?: (rule: InternalRuleItem, value: Value, callback: (error?: string | Error) => void, source: Values, options: ValidateOption) => void | Promise<void>;
30
+ validator?: (rule: InternalRuleItem, value: Value, callback: (error?: string | Error) => void, source: Values, options: ValidateOption) => SyncValidateResult | void;
31
+ }
32
+ export type Rule = RuleItem | RuleItem[];
33
+ export type Rules = Record<string, Rule>;
34
+ /**
35
+ * Rule for validating a value exists in an enumerable list.
36
+ *
37
+ * @param rule The validation rule.
38
+ * @param value The value of the field on the source object.
39
+ * @param source The source object being validated.
40
+ * @param errors An array of errors that this rule may add
41
+ * validation errors to.
42
+ * @param options The validation options.
43
+ * @param options.messages The validation messages.
44
+ * @param type Rule type
45
+ */
46
+ export type ExecuteRule = (rule: InternalRuleItem, value: Value, source: Values, errors: string[], options: ValidateOption, type?: string) => void;
47
+ /**
48
+ * Performs validation for any type.
49
+ *
50
+ * @param rule The validation rule.
51
+ * @param value The value of the field on the source object.
52
+ * @param callback The callback function.
53
+ * @param source The source object being validated.
54
+ * @param options The validation options.
55
+ * @param options.messages The validation messages.
56
+ */
57
+ export type ExecuteValidator = (rule: InternalRuleItem, value: Value, callback: (error?: string[]) => void, source: Values, options: ValidateOption) => void;
58
+ type ValidateMessage<T extends any[] = unknown[]> = string | ((...args: T) => string);
59
+ type FullField = string | undefined;
60
+ type EnumString = string | undefined;
61
+ type Pattern = string | RegExp | undefined;
62
+ type Range = number | undefined;
63
+ type Type = string | undefined;
64
+ export interface ValidateMessages {
65
+ default?: ValidateMessage;
66
+ required?: ValidateMessage<[FullField]>;
67
+ enum?: ValidateMessage<[FullField, EnumString]>;
68
+ whitespace?: ValidateMessage<[FullField]>;
69
+ date?: {
70
+ format?: ValidateMessage;
71
+ parse?: ValidateMessage;
72
+ invalid?: ValidateMessage;
73
+ };
74
+ types?: {
75
+ string?: ValidateMessage<[FullField, Type]>;
76
+ method?: ValidateMessage<[FullField, Type]>;
77
+ array?: ValidateMessage<[FullField, Type]>;
78
+ object?: ValidateMessage<[FullField, Type]>;
79
+ number?: ValidateMessage<[FullField, Type]>;
80
+ date?: ValidateMessage<[FullField, Type]>;
81
+ boolean?: ValidateMessage<[FullField, Type]>;
82
+ integer?: ValidateMessage<[FullField, Type]>;
83
+ float?: ValidateMessage<[FullField, Type]>;
84
+ regexp?: ValidateMessage<[FullField, Type]>;
85
+ email?: ValidateMessage<[FullField, Type]>;
86
+ url?: ValidateMessage<[FullField, Type]>;
87
+ hex?: ValidateMessage<[FullField, Type]>;
88
+ };
89
+ string?: {
90
+ len?: ValidateMessage<[FullField, Range]>;
91
+ min?: ValidateMessage<[FullField, Range]>;
92
+ max?: ValidateMessage<[FullField, Range]>;
93
+ range?: ValidateMessage<[FullField, Range, Range]>;
94
+ };
95
+ number?: {
96
+ len?: ValidateMessage<[FullField, Range]>;
97
+ min?: ValidateMessage<[FullField, Range]>;
98
+ max?: ValidateMessage<[FullField, Range]>;
99
+ range?: ValidateMessage<[FullField, Range, Range]>;
100
+ };
101
+ array?: {
102
+ len?: ValidateMessage<[FullField, Range]>;
103
+ min?: ValidateMessage<[FullField, Range]>;
104
+ max?: ValidateMessage<[FullField, Range]>;
105
+ range?: ValidateMessage<[FullField, Range, Range]>;
106
+ };
107
+ pattern?: {
108
+ mismatch?: ValidateMessage<[FullField, Value, Pattern]>;
109
+ };
110
+ }
111
+ export interface InternalValidateMessages extends ValidateMessages {
112
+ clone: () => InternalValidateMessages;
113
+ }
114
+ export type Value = any;
115
+ export type Values = Record<string, Value>;
116
+ export interface ValidateError {
117
+ message?: string;
118
+ fieldValue?: Value;
119
+ field?: string;
120
+ }
121
+ export type ValidateFieldsError = Record<string, ValidateError[]>;
122
+ export type ValidateCallback = (errors: ValidateError[] | null, fields: ValidateFieldsError | Values) => void;
123
+ export interface RuleValuePackage {
124
+ rule: InternalRuleItem;
125
+ value: Value;
126
+ source: Values;
127
+ field: string;
128
+ }
129
+ export interface InternalRuleItem extends Omit<RuleItem, 'validator'> {
130
+ field?: string;
131
+ fullField?: string;
132
+ fullFields?: string[];
133
+ validator?: RuleItem['validator'] | ExecuteValidator;
134
+ }
135
+ export {};
@@ -0,0 +1,3 @@
1
+ import { InternalValidateMessages } from './interface';
2
+ export declare function newMessages(): InternalValidateMessages;
3
+ export declare const messages: InternalValidateMessages;
@@ -0,0 +1,3 @@
1
+ import { ExecuteRule } from '../interface';
2
+ declare const enumerable: ExecuteRule;
3
+ export default enumerable;
@@ -0,0 +1,9 @@
1
+ declare const _default: {
2
+ required: import("..").ExecuteRule;
3
+ whitespace: import("..").ExecuteRule;
4
+ type: import("..").ExecuteRule;
5
+ range: import("..").ExecuteRule;
6
+ enum: import("..").ExecuteRule;
7
+ pattern: import("..").ExecuteRule;
8
+ };
9
+ export default _default;
@@ -0,0 +1,3 @@
1
+ import { ExecuteRule } from '../interface';
2
+ declare const pattern: ExecuteRule;
3
+ export default pattern;
@@ -0,0 +1,3 @@
1
+ import { ExecuteRule } from '../interface';
2
+ declare const range: ExecuteRule;
3
+ export default range;
@@ -0,0 +1,3 @@
1
+ import { ExecuteRule } from '../interface';
2
+ declare const required: ExecuteRule;
3
+ export default required;
@@ -0,0 +1,3 @@
1
+ import { ExecuteRule } from '../interface';
2
+ declare const type: ExecuteRule;
3
+ export default type;
@@ -0,0 +1,2 @@
1
+ declare const _default: () => RegExp;
2
+ export default _default;
@@ -0,0 +1,14 @@
1
+ import { ExecuteRule } from '../interface';
2
+ /**
3
+ * Rule for validating whitespace.
4
+ *
5
+ * @param rule The validation rule.
6
+ * @param value The value of the field on the source object.
7
+ * @param source The source object being validated.
8
+ * @param errors An array of errors that this rule may add
9
+ * validation errors to.
10
+ * @param options The validation options.
11
+ * @param options.messages The validation messages.
12
+ */
13
+ declare const whitespace: ExecuteRule;
14
+ export default whitespace;