@e22m4u/js-repository 0.3.3 → 0.5.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 (92) hide show
  1. package/README.md +479 -61
  2. package/dist/cjs/index.cjs +354 -277
  3. package/package.json +7 -7
  4. package/src/adapter/adapter-loader.js +1 -1
  5. package/src/adapter/adapter-loader.spec.js +1 -1
  6. package/src/adapter/decorator/data-sanitizing-decorator.js +1 -1
  7. package/src/adapter/decorator/data-transformation-decorator.js +1 -1
  8. package/src/adapter/decorator/data-validation-decorator.js +1 -1
  9. package/src/adapter/decorator/default-values-decorator.js +1 -1
  10. package/src/adapter/decorator/fields-filtering-decorator.js +1 -1
  11. package/src/adapter/decorator/inclusion-decorator.js +1 -1
  12. package/src/adapter/decorator/property-uniqueness-decorator.js +1 -1
  13. package/src/definition/datasource/datasource-definition-validator.js +3 -3
  14. package/src/definition/datasource/datasource-definition-validator.spec.js +3 -3
  15. package/src/definition/definition-registry.js +12 -6
  16. package/src/definition/definition-registry.spec.js +173 -46
  17. package/src/definition/model/model-data-sanitizer.js +2 -2
  18. package/src/definition/model/model-data-transformer.js +71 -13
  19. package/src/definition/model/model-data-transformer.spec.js +2073 -407
  20. package/src/definition/model/model-data-validator.js +125 -37
  21. package/src/definition/model/model-data-validator.spec.js +2138 -440
  22. package/src/definition/model/model-definition-utils.js +5 -5
  23. package/src/definition/model/model-definition-utils.spec.js +7 -7
  24. package/src/definition/model/model-definition-validator.js +7 -7
  25. package/src/definition/model/model-definition-validator.spec.js +10 -7
  26. package/src/definition/model/properties/properties-definition-validator.js +129 -54
  27. package/src/definition/model/properties/properties-definition-validator.spec.js +85 -25
  28. package/src/definition/model/properties/property-transformer/builtin/index.d.ts +0 -1
  29. package/src/definition/model/properties/property-transformer/builtin/index.js +0 -1
  30. package/src/definition/model/properties/property-transformer/builtin/to-lower-case-transformer.d.ts +1 -1
  31. package/src/definition/model/properties/property-transformer/builtin/to-lower-case-transformer.js +1 -1
  32. package/src/definition/model/properties/property-transformer/builtin/to-lower-case-transformer.spec.js +1 -1
  33. package/src/definition/model/properties/property-transformer/builtin/to-upper-case-transformer.d.ts +1 -1
  34. package/src/definition/model/properties/property-transformer/builtin/to-upper-case-transformer.js +1 -1
  35. package/src/definition/model/properties/property-transformer/builtin/to-upper-case-transformer.spec.js +1 -1
  36. package/src/definition/model/properties/property-transformer/builtin/trim-transformer.js +1 -1
  37. package/src/definition/model/properties/property-transformer/builtin/trim-transformer.spec.js +1 -1
  38. package/src/definition/model/properties/property-transformer/property-transformer-registry.js +2 -4
  39. package/src/definition/model/properties/property-transformer/property-transformer-registry.spec.js +2 -4
  40. package/src/definition/model/properties/property-transformer/property-transformer.d.ts +2 -2
  41. package/src/definition/model/properties/property-uniqueness-validator.js +4 -4
  42. package/src/definition/model/properties/property-uniqueness-validator.spec.js +4 -4
  43. package/src/definition/model/properties/property-validator/builtin/max-length-validator.d.ts +1 -1
  44. package/src/definition/model/properties/property-validator/builtin/max-length-validator.js +2 -2
  45. package/src/definition/model/properties/property-validator/builtin/max-length-validator.spec.js +2 -2
  46. package/src/definition/model/properties/property-validator/builtin/min-length-validator.d.ts +1 -1
  47. package/src/definition/model/properties/property-validator/builtin/min-length-validator.js +2 -2
  48. package/src/definition/model/properties/property-validator/builtin/min-length-validator.spec.js +2 -2
  49. package/src/definition/model/properties/property-validator/builtin/regexp-validator.d.ts +1 -1
  50. package/src/definition/model/properties/property-validator/builtin/regexp-validator.js +2 -2
  51. package/src/definition/model/properties/property-validator/builtin/regexp-validator.spec.js +2 -2
  52. package/src/definition/model/properties/property-validator/property-validator-registry.js +2 -2
  53. package/src/definition/model/properties/property-validator/property-validator-registry.spec.js +2 -2
  54. package/src/definition/model/properties/property-validator/property-validator.d.ts +2 -2
  55. package/src/definition/model/relations/relations-definition-validator.js +23 -23
  56. package/src/definition/model/relations/relations-definition-validator.spec.js +24 -24
  57. package/src/errors/invalid-operator-value-error.js +1 -1
  58. package/src/errors/invalid-operator-value-error.spec.js +1 -1
  59. package/src/filter/fields-clause-tool.js +5 -5
  60. package/src/filter/fields-clause-tool.spec.js +16 -16
  61. package/src/filter/include-clause-tool.js +6 -6
  62. package/src/filter/include-clause-tool.spec.js +2 -2
  63. package/src/filter/operator-clause-tool.js +13 -13
  64. package/src/filter/operator-clause-tool.spec.js +13 -13
  65. package/src/filter/order-clause-tool.js +3 -3
  66. package/src/filter/order-clause-tool.spec.js +4 -4
  67. package/src/filter/slice-clause-tool.js +5 -5
  68. package/src/filter/slice-clause-tool.spec.js +5 -5
  69. package/src/filter/where-clause-tool.js +4 -4
  70. package/src/filter/where-clause-tool.spec.js +3 -3
  71. package/src/relations/belongs-to-resolver.js +14 -14
  72. package/src/relations/belongs-to-resolver.spec.js +14 -14
  73. package/src/relations/has-many-resolver.js +22 -22
  74. package/src/relations/has-many-resolver.spec.js +23 -23
  75. package/src/relations/has-one-resolver.js +22 -22
  76. package/src/relations/has-one-resolver.spec.js +23 -23
  77. package/src/relations/references-many-resolver.js +7 -7
  78. package/src/relations/references-many-resolver.spec.js +7 -7
  79. package/src/repository/repository-registry.js +5 -3
  80. package/src/repository/repository-registry.spec.js +39 -9
  81. package/src/utils/exclude-object-keys.js +1 -1
  82. package/src/utils/exclude-object-keys.spec.js +1 -1
  83. package/src/utils/index.d.ts +1 -0
  84. package/src/utils/index.js +1 -0
  85. package/src/utils/model-name-to-model-key.d.ts +6 -0
  86. package/src/utils/model-name-to-model-key.js +17 -0
  87. package/src/utils/model-name-to-model-key.spec.js +92 -0
  88. package/src/utils/select-object-keys.js +3 -3
  89. package/src/utils/select-object-keys.spec.js +3 -3
  90. package/src/definition/model/properties/property-transformer/builtin/to-title-case-transformer.d.ts +0 -6
  91. package/src/definition/model/properties/property-transformer/builtin/to-title-case-transformer.js +0 -22
  92. package/src/definition/model/properties/property-transformer/builtin/to-title-case-transformer.spec.js +0 -41
@@ -1,41 +0,0 @@
1
- import {expect} from 'chai';
2
- import {format} from '@e22m4u/js-format';
3
- import {toTitleCaseTransformer} from './to-title-case-transformer.js';
4
-
5
- describe('toTitleCaseTransformer', function () {
6
- it('returns undefined and null values as is', function () {
7
- const res1 = toTitleCaseTransformer(undefined, undefined, {});
8
- const res2 = toTitleCaseTransformer(null, undefined, {});
9
- expect(res1).to.be.undefined;
10
- expect(res2).to.be.null;
11
- });
12
-
13
- it('converts the given string to title case', function () {
14
- const res1 = toTitleCaseTransformer('TEST', undefined, {});
15
- const res2 = toTitleCaseTransformer('test', undefined, {});
16
- expect(res1).to.be.eq('Test');
17
- expect(res2).to.be.eq('Test');
18
- });
19
-
20
- it('throws an error if the given value is not a string', function () {
21
- const throwable = v => () =>
22
- toTitleCaseTransformer(v, undefined, {
23
- transformerName: 'toTitleCase',
24
- });
25
- const error = v =>
26
- format(
27
- 'The property transformer "toTitleCase" requires a String value, but %s given.',
28
- v,
29
- );
30
- expect(throwable(10)).to.throw(error('10'));
31
- expect(throwable(0)).to.throw(error('0'));
32
- expect(throwable(true)).to.throw(error('true'));
33
- expect(throwable(false)).to.throw(error('false'));
34
- expect(throwable({})).to.throw(error('Object'));
35
- expect(throwable([])).to.throw(error('Array'));
36
- throwable('str')();
37
- throwable('')();
38
- throwable(undefined)();
39
- throwable(null)();
40
- });
41
- });