valgen 3.2.0 → 4.0.0-alpha.2

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 (140) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +12 -7
  3. package/cjs/core/constants.js +5 -0
  4. package/cjs/core/context.js +65 -0
  5. package/cjs/core/index.js +21 -0
  6. package/cjs/core/types.js +2 -0
  7. package/cjs/core/validation-error.js +11 -0
  8. package/cjs/core/validator.js +61 -0
  9. package/cjs/helpers/object.utils.js +19 -0
  10. package/cjs/helpers/string.utils.js +9 -0
  11. package/cjs/index.js +18 -0
  12. package/cjs/package.json +3 -0
  13. package/cjs/rules/index.js +38 -0
  14. package/cjs/rules/is-any.js +12 -0
  15. package/cjs/rules/is-array.js +38 -0
  16. package/cjs/rules/is-boolean.js +30 -0
  17. package/cjs/rules/is-date.js +63 -0
  18. package/cjs/rules/is-empty.js +68 -0
  19. package/cjs/rules/is-enum.js +30 -0
  20. package/cjs/rules/is-integer.js +26 -0
  21. package/cjs/rules/is-matches.js +24 -0
  22. package/cjs/rules/is-null.js +40 -0
  23. package/cjs/rules/is-number.js +26 -0
  24. package/cjs/rules/is-object-id.js +28 -0
  25. package/cjs/rules/is-object.js +103 -0
  26. package/cjs/rules/is-record.js +41 -0
  27. package/cjs/rules/is-string.js +79 -0
  28. package/cjs/rules/is-tuple.js +32 -0
  29. package/cjs/rules/length.js +41 -0
  30. package/cjs/rules/optional.js +44 -0
  31. package/cjs/rules/pipe.js +43 -0
  32. package/cjs/rules/range.js +89 -0
  33. package/cjs/rules/string-formats.js +296 -0
  34. package/cjs/rules/union.js +31 -0
  35. package/cjs/rules/utilities.js +31 -0
  36. package/esm/core/constants.js +2 -0
  37. package/esm/core/context.js +61 -0
  38. package/esm/core/index.js +5 -0
  39. package/esm/core/types.js +1 -0
  40. package/esm/core/validation-error.js +7 -0
  41. package/esm/core/validator.js +56 -0
  42. package/esm/helpers/object.utils.js +14 -0
  43. package/esm/helpers/string.utils.js +5 -0
  44. package/esm/index.js +2 -0
  45. package/esm/rules/index.js +22 -0
  46. package/esm/rules/is-any.js +8 -0
  47. package/esm/rules/is-array.js +34 -0
  48. package/esm/rules/is-boolean.js +26 -0
  49. package/esm/rules/is-date.js +55 -0
  50. package/esm/rules/is-empty.js +63 -0
  51. package/esm/rules/is-enum.js +26 -0
  52. package/esm/rules/is-integer.js +22 -0
  53. package/esm/rules/is-matches.js +20 -0
  54. package/esm/rules/is-null.js +34 -0
  55. package/esm/rules/is-number.js +22 -0
  56. package/esm/rules/is-object-id.js +21 -0
  57. package/esm/rules/is-object.js +99 -0
  58. package/esm/rules/is-record.js +37 -0
  59. package/esm/rules/is-string.js +70 -0
  60. package/esm/rules/is-tuple.js +28 -0
  61. package/esm/rules/length.js +35 -0
  62. package/esm/rules/optional.js +38 -0
  63. package/esm/rules/pipe.js +38 -0
  64. package/esm/rules/range.js +81 -0
  65. package/esm/rules/string-formats.js +266 -0
  66. package/esm/rules/union.js +27 -0
  67. package/esm/rules/utilities.js +26 -0
  68. package/package.json +33 -37
  69. package/typings/core/constants.d.ts +2 -0
  70. package/typings/core/context.d.ts +26 -0
  71. package/typings/core/index.d.ts +6 -0
  72. package/typings/core/types.d.ts +18 -0
  73. package/typings/core/validation-error.d.ts +5 -0
  74. package/typings/core/validator.d.ts +18 -0
  75. package/typings/helpers/object.utils.d.ts +2 -0
  76. package/typings/helpers/string.utils.d.ts +1 -0
  77. package/typings/index.d.ts +2 -0
  78. package/typings/rules/index.d.ts +22 -0
  79. package/typings/rules/is-any.d.ts +5 -0
  80. package/typings/rules/is-array.d.ts +7 -0
  81. package/typings/rules/is-boolean.d.ts +7 -0
  82. package/typings/rules/is-date.d.ts +19 -0
  83. package/typings/rules/is-empty.d.ts +13 -0
  84. package/typings/rules/is-enum.d.ts +9 -0
  85. package/typings/rules/is-integer.d.ts +7 -0
  86. package/typings/rules/is-matches.d.ts +9 -0
  87. package/typings/rules/is-null.d.ts +16 -0
  88. package/typings/rules/is-number.d.ts +7 -0
  89. package/typings/rules/is-object-id.d.ts +10 -0
  90. package/typings/rules/is-object.d.ts +22 -0
  91. package/typings/rules/is-record.d.ts +7 -0
  92. package/typings/rules/is-string.d.ts +42 -0
  93. package/typings/rules/is-tuple.d.ts +27 -0
  94. package/typings/rules/length.d.ts +21 -0
  95. package/typings/rules/optional.d.ts +17 -0
  96. package/typings/rules/pipe.d.ts +11 -0
  97. package/typings/rules/range.d.ts +48 -0
  98. package/typings/rules/string-formats.d.ts +140 -0
  99. package/typings/rules/union.d.ts +5 -0
  100. package/typings/rules/utilities.d.ts +11 -0
  101. package/lib/ArrayType.d.ts +0 -5
  102. package/lib/ArrayType.js +0 -43
  103. package/lib/DataType.d.ts +0 -25
  104. package/lib/DataType.js +0 -214
  105. package/lib/ObjectType.d.ts +0 -5
  106. package/lib/ObjectType.js +0 -78
  107. package/lib/SchemaError.d.ts +0 -3
  108. package/lib/SchemaError.js +0 -17
  109. package/lib/UnionType.d.ts +0 -5
  110. package/lib/UnionType.js +0 -54
  111. package/lib/Valgen.d.ts +0 -88
  112. package/lib/Valgen.js +0 -289
  113. package/lib/ValidationError.d.ts +0 -2
  114. package/lib/ValidationError.js +0 -4
  115. package/lib/factories/AnyFactory.d.ts +0 -28
  116. package/lib/factories/AnyFactory.js +0 -73
  117. package/lib/factories/ArrayFactory.d.ts +0 -16
  118. package/lib/factories/ArrayFactory.js +0 -148
  119. package/lib/factories/Base64Factory.d.ts +0 -12
  120. package/lib/factories/Base64Factory.js +0 -31
  121. package/lib/factories/BooleanFactory.d.ts +0 -12
  122. package/lib/factories/BooleanFactory.js +0 -49
  123. package/lib/factories/DateFactory.d.ts +0 -40
  124. package/lib/factories/DateFactory.js +0 -239
  125. package/lib/factories/FunctionFactory.d.ts +0 -12
  126. package/lib/factories/FunctionFactory.js +0 -28
  127. package/lib/factories/IntegerFactory.d.ts +0 -14
  128. package/lib/factories/IntegerFactory.js +0 -33
  129. package/lib/factories/NilFactory.d.ts +0 -4
  130. package/lib/factories/NilFactory.js +0 -20
  131. package/lib/factories/NumberFactory.d.ts +0 -36
  132. package/lib/factories/NumberFactory.js +0 -178
  133. package/lib/factories/ObjectFactory.d.ts +0 -38
  134. package/lib/factories/ObjectFactory.js +0 -326
  135. package/lib/factories/StringFactory.d.ts +0 -16
  136. package/lib/factories/StringFactory.js +0 -94
  137. package/lib/factories/UnionFactory.d.ts +0 -13
  138. package/lib/factories/UnionFactory.js +0 -62
  139. package/lib/index.d.ts +0 -19
  140. package/lib/index.js +0 -37
@@ -1,62 +0,0 @@
1
- 'use strict';
2
- const {AnyFactory} = require('./AnyFactory');
3
-
4
- class UnionFactory extends AnyFactory {
5
-
6
- normalizeCompileOptions(options) {
7
- return options;
8
- }
9
-
10
- normalizeAttribute(attr, v) {
11
- switch (attr) {
12
- case 'anyOf':
13
- if (v && !Array.isArray(v))
14
- throw new TypeError('Value must be an array');
15
- if (v && v.length < 2)
16
- throw new TypeError('Value must contain at least 2 items');
17
- return v;
18
- default:
19
- return v;
20
- }
21
- }
22
-
23
- _generateValidationCode(dataType, options) {
24
- const data = super._generateValidationCode(dataType, options);
25
- const anyOf = dataType.get('anyOf');
26
- data.variables.subValidators =
27
- anyOf.map(t => t.generate(options));
28
-
29
- data.code += `
30
- const len = subValidators.length;
31
- let bestFn;
32
- let bestRank = 0;
33
- for (let i = 0; i < len; i++) {
34
- const fn = subValidators[i];
35
- let rank = fn(value, {...ctx, typeCheck: true});
36
- if (!rank.valid)
37
- continue;
38
- rank = rank.value;
39
- if (rank === undefined || rank > bestRank) {
40
- bestFn = fn;
41
- if (rank === 1 || rank === undefined)
42
- break;
43
- bestRank = rank;
44
- }
45
- }
46
-
47
- if (!bestFn) {
48
- return ctx.logError({
49
- message: 'Value does not match any of expected types.',
50
- errorType: 'no-type-matched'
51
- });
52
- }
53
- const vv = bestFn(value, ctx);
54
- if (vv.valid)
55
- return vv.value;
56
- `;
57
- return data;
58
- }
59
-
60
- }
61
-
62
- module.exports = {UnionFactory};
package/lib/index.d.ts DELETED
@@ -1,19 +0,0 @@
1
- import {Valgen} from './Valgen';
2
- export function vg(options?: Valgen.IOptions): Valgen;
3
- export default vg;
4
-
5
- export * from './Valgen';
6
- export * from './factories/AnyFactory';
7
- export * from './factories/ArrayFactory';
8
- export * from './factories/BooleanFactory';
9
- export * from './factories/DateFactory';
10
- export * from './factories/IntegerFactory';
11
- export * from './factories/NilFactory';
12
- export * from './factories/NumberFactory';
13
- export * from './factories/ObjectFactory';
14
- export * from './factories/StringFactory';
15
- export * from './factories/UnionFactory';
16
- export * from './factories/FunctionFactory';
17
- export * from './factories/Base64Factory';
18
-
19
- declare module "vg";
package/lib/index.js DELETED
@@ -1,37 +0,0 @@
1
- const {Valgen} = require('./Valgen');
2
- const {AnyFactory} = require('./factories/AnyFactory');
3
- const {ArrayFactory} = require('./factories/ArrayFactory');
4
- const {BooleanFactory} = require('./factories/BooleanFactory');
5
- const {DateFactory} = require('./factories/DateFactory');
6
- const {IntegerFactory} = require('./factories/IntegerFactory');
7
- const {NilFactory} = require('./factories/NilFactory');
8
- const {NumberFactory} = require('./factories/NumberFactory');
9
- const {ObjectFactory} = require('./factories/ObjectFactory');
10
- const {StringFactory} = require('./factories/StringFactory');
11
- const {UnionFactory} = require('./factories/UnionFactory');
12
- const {Base64Factory} = require('./factories/Base64Factory');
13
- const {FunctionFactory} = require('./factories/FunctionFactory');
14
-
15
- function vg(options) {
16
- return new Valgen(options);
17
- }
18
-
19
- module.exports = vg;
20
- module.exports.__esModule = true;
21
- module.exports.default = vg;
22
-
23
- Object.assign(vg, {
24
- Valgen,
25
- AnyFactory,
26
- ArrayFactory,
27
- BooleanFactory,
28
- DateFactory,
29
- IntegerFactory,
30
- NilFactory,
31
- NumberFactory,
32
- ObjectFactory,
33
- StringFactory,
34
- UnionFactory,
35
- Base64Factory,
36
- FunctionFactory
37
- });