ejv 1.1.10 → 2.0.0

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 (75) hide show
  1. package/.eslintrc.json +88 -0
  2. package/.mocharc.json +8 -0
  3. package/CHANGELOG.md +70 -29
  4. package/README-KR.md +6 -2
  5. package/README.md +6 -2
  6. package/build/{constants.js → cjs/constants.js} +117 -118
  7. package/build/cjs/constants.js.map +1 -0
  8. package/build/cjs/ejv.js +1263 -0
  9. package/build/cjs/ejv.js.map +1 -0
  10. package/build/{public_api.js → cjs/index.js} +14 -14
  11. package/build/cjs/index.js.map +1 -0
  12. package/build/cjs/interfaces.js +29 -0
  13. package/build/cjs/interfaces.js.map +1 -0
  14. package/build/cjs/package.json +1 -0
  15. package/build/{tester.js → cjs/tester.js} +273 -268
  16. package/build/cjs/tester.js.map +1 -0
  17. package/build/cjs/util.js +103 -0
  18. package/build/cjs/util.js.map +1 -0
  19. package/build/constants.d.ts +101 -104
  20. package/build/ejv.d.ts +2 -2
  21. package/build/esm/constants.js +115 -0
  22. package/build/esm/constants.js.map +1 -0
  23. package/build/esm/ejv.js +1261 -0
  24. package/build/esm/ejv.js.map +1 -0
  25. package/build/esm/index.js +4 -0
  26. package/build/esm/index.js.map +1 -0
  27. package/build/esm/interfaces.js +33 -0
  28. package/build/esm/interfaces.js.map +1 -0
  29. package/build/esm/package.json +1 -0
  30. package/build/esm/tester.js +240 -0
  31. package/build/esm/tester.js.map +1 -0
  32. package/build/esm/util.js +96 -0
  33. package/build/esm/util.js.map +1 -0
  34. package/build/index.d.ts +3 -0
  35. package/build/interfaces.d.ts +78 -38
  36. package/build/scripts/add-js-extensions.js +46 -0
  37. package/build/scripts/add-js-extensions.js.map +1 -0
  38. package/build/tester.d.ts +33 -34
  39. package/build/util.d.ts +7 -1
  40. package/package.json +48 -37
  41. package/scripts/add-js-extensions.ts +59 -0
  42. package/spec/ArrayScheme.ts +1021 -0
  43. package/spec/CommonScheme.ts +251 -0
  44. package/spec/DateScheme.ts +472 -0
  45. package/spec/NumberScheme.ts +1032 -0
  46. package/spec/ObjectScheme.ts +499 -0
  47. package/spec/RegExpScheme.ts +112 -0
  48. package/spec/StringScheme.ts +1239 -0
  49. package/spec/common-test-util.ts +63 -0
  50. package/spec/ejv.spec.ts +133 -4558
  51. package/spec/testers.spec.ts +17 -16
  52. package/src/constants.ts +41 -42
  53. package/src/ejv.ts +1141 -564
  54. package/src/index.ts +14 -0
  55. package/src/interfaces.ts +127 -41
  56. package/src/tester.ts +75 -69
  57. package/src/util.ts +106 -41
  58. package/tsconfig.cjs.json +8 -0
  59. package/tsconfig.esm.json +7 -0
  60. package/tsconfig.json +21 -18
  61. package/tsconfig.scripts.json +14 -0
  62. package/tsconfig.types.json +9 -0
  63. package/build/constants.js.map +0 -1
  64. package/build/ejv.js +0 -685
  65. package/build/ejv.js.map +0 -1
  66. package/build/interfaces.js +0 -15
  67. package/build/interfaces.js.map +0 -1
  68. package/build/public_api.d.ts +0 -3
  69. package/build/public_api.js.map +0 -1
  70. package/build/tester.js.map +0 -1
  71. package/build/util.js +0 -66
  72. package/build/util.js.map +0 -1
  73. package/spec/common-test-runner.ts +0 -17
  74. package/src/public_api.ts +0 -3
  75. package/tsconfig.spec.json +0 -19
@@ -0,0 +1,63 @@
1
+ // to test common type easily
2
+
3
+ import { expect } from 'chai';
4
+
5
+ import { EjvError, Scheme } from '../src/interfaces';
6
+ import { ejv } from '../src/ejv';
7
+ import { ErrorType } from '../src/constants';
8
+
9
+ export const commonTestRunner = (
10
+ testFnc: (args: unknown) => unknown,
11
+ nullResult: boolean,
12
+ undefinedResult: boolean,
13
+ booleanResult: boolean,
14
+ numberResult: boolean,
15
+ stringResult: boolean,
16
+ arrayResult: boolean,
17
+ objectResult: boolean
18
+ ): boolean => {
19
+ return testFnc(null) === nullResult
20
+ && testFnc(undefined) === undefinedResult
21
+ && testFnc(true) === booleanResult
22
+ && testFnc(8) === numberResult
23
+ && testFnc('hello') === stringResult
24
+ && testFnc([1, 2, 3]) === arrayResult
25
+ && testFnc({ a: 1 }) === objectResult;
26
+ };
27
+
28
+ export interface TypeTester {
29
+ type: string;
30
+ value: unknown;
31
+ }
32
+
33
+ export const typeTesterArr: TypeTester[] = [
34
+ { type: 'boolean', value: true },
35
+ { type: 'number', value: 123 },
36
+ { type: 'string', value: 'ejv' },
37
+ { type: 'object', value: {} },
38
+ { type: 'date', value: new Date },
39
+ { type: 'regexp', value: new RegExp('ejv') },
40
+ { type: 'array', value: [1, 2, 3] }
41
+ ];
42
+
43
+
44
+ export const checkSchemeError = (param: {
45
+ data: object,
46
+ errorScheme: Scheme,
47
+ message: string,
48
+ }): void => {
49
+ const ejvError: EjvError | null = ejv(param.data, [param.errorScheme]);
50
+
51
+ expect(ejvError).to.be.instanceOf(EjvError);
52
+ expect(ejvError).to.have.property('type', ErrorType.INVALID_SCHEMES);
53
+ expect(ejvError).to.have.property('message', param.message);
54
+
55
+ expect(ejvError).to.have.property('data', param.data);
56
+ expect(ejvError).to.not.have.property('path');
57
+
58
+ expect(ejvError).to.have.property('errorScheme', param.errorScheme);
59
+ expect(ejvError).to.not.have.property('errorData');
60
+
61
+ expect(ejvError).to.have.property('isSchemeError', true);
62
+ expect(ejvError).to.have.property('isDataError', false);
63
+ };