@e22m4u/js-repository 0.8.7 → 0.8.9
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/index.cjs +452 -406
- package/package.json +7 -7
- package/src/adapter/adapter-loader.js +2 -5
- package/src/adapter/adapter-loader.spec.js +2 -2
- package/src/adapter/adapter-registry.spec.js +2 -2
- package/src/adapter/builtin/memory-adapter.js +5 -5
- package/src/adapter/builtin/memory-adapter.spec.js +12 -12
- package/src/adapter/decorator/data-sanitizing-decorator.js +1 -2
- package/src/adapter/decorator/default-values-decorator.js +1 -2
- package/src/adapter/decorator/fields-filtering-decorator.js +1 -2
- package/src/adapter/decorator/inclusion-decorator.js +1 -2
- package/src/adapter/decorator/property-uniqueness-decorator.js +1 -2
- package/src/adapter/decorator/required-property-decorator.js +1 -2
- package/src/database-schema.spec.js +3 -5
- package/src/definition/datasource/datasource-definition-validator.js +3 -3
- package/src/definition/datasource/datasource-definition-validator.spec.js +3 -6
- package/src/definition/definition-registry.d.ts +10 -0
- package/src/definition/definition-registry.js +28 -19
- package/src/definition/definition-registry.spec.js +64 -117
- package/src/definition/model/model-data-sanitizer.js +2 -4
- package/src/definition/model/model-definition-utils.js +12 -14
- package/src/definition/model/model-definition-utils.spec.js +12 -21
- package/src/definition/model/model-definition-validator.js +12 -12
- package/src/definition/model/model-definition-validator.spec.js +12 -15
- package/src/definition/model/properties/primary-keys-definition-validator.js +4 -4
- package/src/definition/model/properties/primary-keys-definition-validator.spec.js +8 -8
- package/src/definition/model/properties/properties-definition-validator.js +42 -43
- package/src/definition/model/properties/properties-definition-validator.spec.js +45 -45
- package/src/definition/model/properties/property-uniqueness-validator.js +7 -11
- package/src/definition/model/properties/property-uniqueness-validator.spec.js +57 -60
- package/src/definition/model/properties/required-property-validator.js +1 -1
- package/src/definition/model/properties/required-property-validator.spec.js +1 -1
- package/src/definition/model/relations/relations-definition-validator.js +40 -42
- package/src/definition/model/relations/relations-definition-validator.spec.js +44 -45
- package/src/errors/invalid-operator-value-error.js +1 -1
- package/src/errors/invalid-operator-value-error.spec.js +1 -1
- package/src/filter/fields-clause-tool.js +95 -53
- package/src/filter/fields-clause-tool.spec.js +210 -387
- package/src/filter/include-clause-tool.js +9 -9
- package/src/filter/include-clause-tool.spec.js +4 -4
- package/src/filter/operator-clause-tool.js +20 -32
- package/src/filter/operator-clause-tool.spec.js +25 -49
- package/src/filter/order-clause-tool.js +55 -27
- package/src/filter/order-clause-tool.spec.js +151 -90
- package/src/filter/slice-clause-tool.js +5 -6
- package/src/filter/slice-clause-tool.spec.js +8 -24
- package/src/filter/where-clause-tool.js +18 -11
- package/src/filter/where-clause-tool.spec.js +27 -17
- package/src/relations/belongs-to-resolver.js +18 -30
- package/src/relations/belongs-to-resolver.spec.js +21 -44
- package/src/relations/has-many-resolver.js +28 -44
- package/src/relations/has-many-resolver.spec.js +44 -68
- package/src/relations/has-one-resolver.js +28 -44
- package/src/relations/has-one-resolver.spec.js +44 -68
- package/src/relations/references-many-resolver.js +8 -14
- package/src/relations/references-many-resolver.spec.js +12 -24
- package/src/repository/repository-registry.js +4 -6
- package/src/repository/repository-registry.spec.js +0 -19
- package/src/repository/repository.js +1 -1
- package/src/utils/exclude-object-keys.js +2 -2
- package/src/utils/exclude-object-keys.spec.js +2 -2
- package/src/utils/index.d.ts +0 -1
- package/src/utils/index.js +0 -1
- package/src/utils/like-to-regexp.js +1 -2
- package/src/utils/like-to-regexp.spec.js +5 -5
- package/src/utils/select-object-keys.js +6 -7
- package/src/utils/select-object-keys.spec.js +3 -6
- package/src/utils/model-name-to-model-key.d.ts +0 -6
- package/src/utils/model-name-to-model-key.js +0 -18
- package/src/utils/model-name-to-model-key.spec.js +0 -94
|
@@ -16,8 +16,7 @@ describe('HasManyResolver', function () {
|
|
|
16
16
|
const R = dbs.getService(HasManyResolver);
|
|
17
17
|
const error = v =>
|
|
18
18
|
format(
|
|
19
|
-
'
|
|
20
|
-
'an Array of Object, but %s was given.',
|
|
19
|
+
'Parameter "entities" must be an Array of Object, but %s was given.',
|
|
21
20
|
v,
|
|
22
21
|
);
|
|
23
22
|
const throwable = v =>
|
|
@@ -44,8 +43,7 @@ describe('HasManyResolver', function () {
|
|
|
44
43
|
const R = dbs.getService(HasManyResolver);
|
|
45
44
|
const error = v =>
|
|
46
45
|
format(
|
|
47
|
-
'
|
|
48
|
-
'an Array of Object, but %s was given.',
|
|
46
|
+
'Parameter "entities" must be an Array of Object, but %s was given.',
|
|
49
47
|
v,
|
|
50
48
|
);
|
|
51
49
|
const throwable = v =>
|
|
@@ -65,8 +63,8 @@ describe('HasManyResolver', function () {
|
|
|
65
63
|
const R = dbs.getService(HasManyResolver);
|
|
66
64
|
const error = v =>
|
|
67
65
|
format(
|
|
68
|
-
'
|
|
69
|
-
'
|
|
66
|
+
'Parameter "sourceName" must be a non-empty String, ' +
|
|
67
|
+
'but %s was given.',
|
|
70
68
|
v,
|
|
71
69
|
);
|
|
72
70
|
const throwable = v =>
|
|
@@ -86,8 +84,8 @@ describe('HasManyResolver', function () {
|
|
|
86
84
|
const R = dbs.getService(HasManyResolver);
|
|
87
85
|
const error = v =>
|
|
88
86
|
format(
|
|
89
|
-
'
|
|
90
|
-
'
|
|
87
|
+
'Parameter "targetName" must be a non-empty String, ' +
|
|
88
|
+
'but %s was given.',
|
|
91
89
|
v,
|
|
92
90
|
);
|
|
93
91
|
const throwable = v =>
|
|
@@ -107,8 +105,8 @@ describe('HasManyResolver', function () {
|
|
|
107
105
|
const R = dbs.getService(HasManyResolver);
|
|
108
106
|
const error = v =>
|
|
109
107
|
format(
|
|
110
|
-
'
|
|
111
|
-
'
|
|
108
|
+
'Parameter "relationName" must be a non-empty String, ' +
|
|
109
|
+
'but %s was given.',
|
|
112
110
|
v,
|
|
113
111
|
);
|
|
114
112
|
const throwable = v =>
|
|
@@ -128,8 +126,8 @@ describe('HasManyResolver', function () {
|
|
|
128
126
|
const R = dbs.getService(HasManyResolver);
|
|
129
127
|
const error = v =>
|
|
130
128
|
format(
|
|
131
|
-
'
|
|
132
|
-
'
|
|
129
|
+
'Parameter "foreignKey" must be a non-empty String, ' +
|
|
130
|
+
'but %s was given.',
|
|
133
131
|
v,
|
|
134
132
|
);
|
|
135
133
|
const throwable = v =>
|
|
@@ -148,11 +146,7 @@ describe('HasManyResolver', function () {
|
|
|
148
146
|
const dbs = new DatabaseSchema();
|
|
149
147
|
const R = dbs.getService(HasManyResolver);
|
|
150
148
|
const error = v =>
|
|
151
|
-
format(
|
|
152
|
-
'The provided parameter "scope" of HasManyResolver.includeTo ' +
|
|
153
|
-
'should be an Object, but %s was given.',
|
|
154
|
-
v,
|
|
155
|
-
);
|
|
149
|
+
format('Parameter "scope" must be an Object, but %s was given.', v);
|
|
156
150
|
const throwable = v =>
|
|
157
151
|
R.includeTo(
|
|
158
152
|
[],
|
|
@@ -179,9 +173,7 @@ describe('HasManyResolver', function () {
|
|
|
179
173
|
'relationName',
|
|
180
174
|
'foreignKey',
|
|
181
175
|
);
|
|
182
|
-
await expect(promise).to.be.rejectedWith(
|
|
183
|
-
'The model "target" is not defined',
|
|
184
|
-
);
|
|
176
|
+
await expect(promise).to.be.rejectedWith('Model "target" is not defined');
|
|
185
177
|
});
|
|
186
178
|
|
|
187
179
|
it('throws an error if a target model does not have datasource', async function () {
|
|
@@ -197,7 +189,7 @@ describe('HasManyResolver', function () {
|
|
|
197
189
|
'foreignKey',
|
|
198
190
|
);
|
|
199
191
|
await expect(promise).to.be.rejectedWith(
|
|
200
|
-
'
|
|
192
|
+
'Model "target" does not have a specified datasource.',
|
|
201
193
|
);
|
|
202
194
|
});
|
|
203
195
|
|
|
@@ -728,8 +720,7 @@ describe('HasManyResolver', function () {
|
|
|
728
720
|
const R = dbs.getService(HasManyResolver);
|
|
729
721
|
const error = v =>
|
|
730
722
|
format(
|
|
731
|
-
'
|
|
732
|
-
'an Array of Object, but %s was given.',
|
|
723
|
+
'Parameter "entities" must be an Array of Object, but %s was given.',
|
|
733
724
|
v,
|
|
734
725
|
);
|
|
735
726
|
const throwable = v =>
|
|
@@ -757,8 +748,7 @@ describe('HasManyResolver', function () {
|
|
|
757
748
|
const R = dbs.getService(HasManyResolver);
|
|
758
749
|
const error = v =>
|
|
759
750
|
format(
|
|
760
|
-
'
|
|
761
|
-
'an Array of Object, but %s was given.',
|
|
751
|
+
'Parameter "entities" must be an Array of Object, but %s was given.',
|
|
762
752
|
v,
|
|
763
753
|
);
|
|
764
754
|
const throwable = v =>
|
|
@@ -785,8 +775,8 @@ describe('HasManyResolver', function () {
|
|
|
785
775
|
const R = dbs.getService(HasManyResolver);
|
|
786
776
|
const error = v =>
|
|
787
777
|
format(
|
|
788
|
-
'
|
|
789
|
-
'
|
|
778
|
+
'Parameter "sourceName" must be a non-empty String, ' +
|
|
779
|
+
'but %s was given.',
|
|
790
780
|
v,
|
|
791
781
|
);
|
|
792
782
|
const throwable = v =>
|
|
@@ -813,8 +803,8 @@ describe('HasManyResolver', function () {
|
|
|
813
803
|
const R = dbs.getService(HasManyResolver);
|
|
814
804
|
const error = v =>
|
|
815
805
|
format(
|
|
816
|
-
'
|
|
817
|
-
'
|
|
806
|
+
'Parameter "targetName" must be a non-empty String, ' +
|
|
807
|
+
'but %s was given.',
|
|
818
808
|
v,
|
|
819
809
|
);
|
|
820
810
|
const throwable = v =>
|
|
@@ -841,8 +831,8 @@ describe('HasManyResolver', function () {
|
|
|
841
831
|
const R = dbs.getService(HasManyResolver);
|
|
842
832
|
const error = v =>
|
|
843
833
|
format(
|
|
844
|
-
'
|
|
845
|
-
'
|
|
834
|
+
'Parameter "relationName" must be a non-empty String, ' +
|
|
835
|
+
'but %s was given.',
|
|
846
836
|
v,
|
|
847
837
|
);
|
|
848
838
|
const throwable = v =>
|
|
@@ -869,8 +859,8 @@ describe('HasManyResolver', function () {
|
|
|
869
859
|
const R = dbs.getService(HasManyResolver);
|
|
870
860
|
const error = v =>
|
|
871
861
|
format(
|
|
872
|
-
'
|
|
873
|
-
'
|
|
862
|
+
'Parameter "foreignKey" must be a non-empty String, ' +
|
|
863
|
+
'but %s was given.',
|
|
874
864
|
v,
|
|
875
865
|
);
|
|
876
866
|
const throwable = v =>
|
|
@@ -897,8 +887,8 @@ describe('HasManyResolver', function () {
|
|
|
897
887
|
const R = dbs.getService(HasManyResolver);
|
|
898
888
|
const error = v =>
|
|
899
889
|
format(
|
|
900
|
-
'
|
|
901
|
-
'
|
|
890
|
+
'Parameter "discriminator" must be a non-empty String, ' +
|
|
891
|
+
'but %s was given.',
|
|
902
892
|
v,
|
|
903
893
|
);
|
|
904
894
|
const throwable = v =>
|
|
@@ -924,11 +914,7 @@ describe('HasManyResolver', function () {
|
|
|
924
914
|
const dbs = new DatabaseSchema();
|
|
925
915
|
const R = dbs.getService(HasManyResolver);
|
|
926
916
|
const error = v =>
|
|
927
|
-
format(
|
|
928
|
-
'The provided parameter "scope" of HasManyResolver.includePolymorphicTo ' +
|
|
929
|
-
'should be an Object, but %s was given.',
|
|
930
|
-
v,
|
|
931
|
-
);
|
|
917
|
+
format('Parameter "scope" must be an Object, but %s was given.', v);
|
|
932
918
|
const throwable = v =>
|
|
933
919
|
R.includePolymorphicTo(
|
|
934
920
|
[],
|
|
@@ -958,9 +944,7 @@ describe('HasManyResolver', function () {
|
|
|
958
944
|
'parentId',
|
|
959
945
|
'parentType',
|
|
960
946
|
);
|
|
961
|
-
await expect(promise).to.be.rejectedWith(
|
|
962
|
-
'The model "target" is not defined',
|
|
963
|
-
);
|
|
947
|
+
await expect(promise).to.be.rejectedWith('Model "target" is not defined');
|
|
964
948
|
});
|
|
965
949
|
|
|
966
950
|
it('throws an error if the given target model does not have a datasource', async function () {
|
|
@@ -978,7 +962,7 @@ describe('HasManyResolver', function () {
|
|
|
978
962
|
'parentType',
|
|
979
963
|
);
|
|
980
964
|
await expect(promise).to.be.rejectedWith(
|
|
981
|
-
'
|
|
965
|
+
'Model "target" does not have a specified datasource.',
|
|
982
966
|
);
|
|
983
967
|
});
|
|
984
968
|
|
|
@@ -1687,8 +1671,7 @@ describe('HasManyResolver', function () {
|
|
|
1687
1671
|
const R = dbs.getService(HasManyResolver);
|
|
1688
1672
|
const error = v =>
|
|
1689
1673
|
format(
|
|
1690
|
-
'
|
|
1691
|
-
'an Array of Object, but %s was given.',
|
|
1674
|
+
'Parameter "entities" must be an Array of Object, but %s was given.',
|
|
1692
1675
|
v,
|
|
1693
1676
|
);
|
|
1694
1677
|
const throwable = v =>
|
|
@@ -1724,8 +1707,7 @@ describe('HasManyResolver', function () {
|
|
|
1724
1707
|
const R = dbs.getService(HasManyResolver);
|
|
1725
1708
|
const error = v =>
|
|
1726
1709
|
format(
|
|
1727
|
-
'
|
|
1728
|
-
'an Array of Object, but %s was given.',
|
|
1710
|
+
'Parameter "entities" must be an Array of Object, but %s was given.',
|
|
1729
1711
|
v,
|
|
1730
1712
|
);
|
|
1731
1713
|
const throwable = v =>
|
|
@@ -1751,8 +1733,8 @@ describe('HasManyResolver', function () {
|
|
|
1751
1733
|
const R = dbs.getService(HasManyResolver);
|
|
1752
1734
|
const error = v =>
|
|
1753
1735
|
format(
|
|
1754
|
-
'
|
|
1755
|
-
'
|
|
1736
|
+
'Parameter "sourceName" must be a non-empty String, ' +
|
|
1737
|
+
'but %s was given.',
|
|
1756
1738
|
v,
|
|
1757
1739
|
);
|
|
1758
1740
|
const throwable = v =>
|
|
@@ -1778,8 +1760,8 @@ describe('HasManyResolver', function () {
|
|
|
1778
1760
|
const R = dbs.getService(HasManyResolver);
|
|
1779
1761
|
const error = v =>
|
|
1780
1762
|
format(
|
|
1781
|
-
'
|
|
1782
|
-
'
|
|
1763
|
+
'Parameter "targetName" must be a non-empty String, ' +
|
|
1764
|
+
'but %s was given.',
|
|
1783
1765
|
v,
|
|
1784
1766
|
);
|
|
1785
1767
|
const throwable = v =>
|
|
@@ -1805,8 +1787,8 @@ describe('HasManyResolver', function () {
|
|
|
1805
1787
|
const R = dbs.getService(HasManyResolver);
|
|
1806
1788
|
const error = v =>
|
|
1807
1789
|
format(
|
|
1808
|
-
'
|
|
1809
|
-
'
|
|
1790
|
+
'Parameter "relationName" must be a non-empty String, ' +
|
|
1791
|
+
'but %s was given.',
|
|
1810
1792
|
v,
|
|
1811
1793
|
);
|
|
1812
1794
|
const throwable = v =>
|
|
@@ -1832,8 +1814,8 @@ describe('HasManyResolver', function () {
|
|
|
1832
1814
|
const R = dbs.getService(HasManyResolver);
|
|
1833
1815
|
const error = v =>
|
|
1834
1816
|
format(
|
|
1835
|
-
'
|
|
1836
|
-
'
|
|
1817
|
+
'Parameter "targetRelationName" must be a non-empty String, ' +
|
|
1818
|
+
'but %s was given.',
|
|
1837
1819
|
v,
|
|
1838
1820
|
);
|
|
1839
1821
|
const throwable = v =>
|
|
@@ -1858,11 +1840,7 @@ describe('HasManyResolver', function () {
|
|
|
1858
1840
|
const dbs = new DatabaseSchema();
|
|
1859
1841
|
const R = dbs.getService(HasManyResolver);
|
|
1860
1842
|
const error = v =>
|
|
1861
|
-
format(
|
|
1862
|
-
'The provided parameter "scope" of HasManyResolver.includePolymorphicByRelationName ' +
|
|
1863
|
-
'should be an Object, but %s was given.',
|
|
1864
|
-
v,
|
|
1865
|
-
);
|
|
1843
|
+
format('Parameter "scope" must be an Object, but %s was given.', v);
|
|
1866
1844
|
const throwable = v =>
|
|
1867
1845
|
R.includePolymorphicByRelationName(
|
|
1868
1846
|
[],
|
|
@@ -1890,9 +1868,7 @@ describe('HasManyResolver', function () {
|
|
|
1890
1868
|
'children',
|
|
1891
1869
|
'parent',
|
|
1892
1870
|
);
|
|
1893
|
-
await expect(promise).to.be.rejectedWith(
|
|
1894
|
-
'The model "target" is not defined',
|
|
1895
|
-
);
|
|
1871
|
+
await expect(promise).to.be.rejectedWith('Model "target" is not defined');
|
|
1896
1872
|
});
|
|
1897
1873
|
|
|
1898
1874
|
it('throws an error if the given target model does not have the given relation name', async function () {
|
|
@@ -1909,7 +1885,7 @@ describe('HasManyResolver', function () {
|
|
|
1909
1885
|
'parent',
|
|
1910
1886
|
);
|
|
1911
1887
|
await expect(promise).to.be.rejectedWith(
|
|
1912
|
-
'
|
|
1888
|
+
'Model "target" does not have relation name "parent".',
|
|
1913
1889
|
);
|
|
1914
1890
|
});
|
|
1915
1891
|
|
|
@@ -1935,7 +1911,7 @@ describe('HasManyResolver', function () {
|
|
|
1935
1911
|
'parent',
|
|
1936
1912
|
);
|
|
1937
1913
|
await expect(promise).to.be.rejectedWith(
|
|
1938
|
-
'
|
|
1914
|
+
'Relation "children" of the model "source" is a polymorphic "hasMany" relation, ' +
|
|
1939
1915
|
'so it requires the target relation "parent" to be a polymorphic "belongsTo", ' +
|
|
1940
1916
|
'but "referencesMany" type was given.',
|
|
1941
1917
|
);
|
|
@@ -1963,7 +1939,7 @@ describe('HasManyResolver', function () {
|
|
|
1963
1939
|
'parent',
|
|
1964
1940
|
);
|
|
1965
1941
|
await expect(promise).to.be.rejectedWith(
|
|
1966
|
-
'
|
|
1942
|
+
'Relation "children" of the model "source" is a polymorphic ' +
|
|
1967
1943
|
'"hasMany" relation, so it requires the target relation "parent" ' +
|
|
1968
1944
|
'to be a polymorphic too.',
|
|
1969
1945
|
);
|
|
@@ -1991,7 +1967,7 @@ describe('HasManyResolver', function () {
|
|
|
1991
1967
|
'parent',
|
|
1992
1968
|
);
|
|
1993
1969
|
await expect(promise).to.be.rejectedWith(
|
|
1994
|
-
'
|
|
1970
|
+
'Model "target" does not have a specified datasource.',
|
|
1995
1971
|
);
|
|
1996
1972
|
});
|
|
1997
1973
|
|
|
@@ -29,43 +29,38 @@ export class HasOneResolver extends Service {
|
|
|
29
29
|
) {
|
|
30
30
|
if (!entities || !Array.isArray(entities)) {
|
|
31
31
|
throw new InvalidArgumentError(
|
|
32
|
-
'
|
|
33
|
-
'an Array of Object, but %v was given.',
|
|
32
|
+
'Parameter "entities" must be an Array of Object, but %v was given.',
|
|
34
33
|
entities,
|
|
35
34
|
);
|
|
36
35
|
}
|
|
37
36
|
if (!sourceName || typeof sourceName !== 'string') {
|
|
38
37
|
throw new InvalidArgumentError(
|
|
39
|
-
'
|
|
40
|
-
'a non-empty String, but %v was given.',
|
|
38
|
+
'Parameter "sourceName" must be a non-empty String, but %v was given.',
|
|
41
39
|
sourceName,
|
|
42
40
|
);
|
|
43
41
|
}
|
|
44
42
|
if (!targetName || typeof targetName !== 'string') {
|
|
45
43
|
throw new InvalidArgumentError(
|
|
46
|
-
'
|
|
47
|
-
'a non-empty String, but %v was given.',
|
|
44
|
+
'Parameter "targetName" must be a non-empty String, but %v was given.',
|
|
48
45
|
targetName,
|
|
49
46
|
);
|
|
50
47
|
}
|
|
51
48
|
if (!relationName || typeof relationName !== 'string') {
|
|
52
49
|
throw new InvalidArgumentError(
|
|
53
|
-
'
|
|
54
|
-
'
|
|
50
|
+
'Parameter "relationName" must be a non-empty String, ' +
|
|
51
|
+
'but %v was given.',
|
|
55
52
|
relationName,
|
|
56
53
|
);
|
|
57
54
|
}
|
|
58
55
|
if (!foreignKey || typeof foreignKey !== 'string') {
|
|
59
56
|
throw new InvalidArgumentError(
|
|
60
|
-
'
|
|
61
|
-
'a non-empty String, but %v was given.',
|
|
57
|
+
'Parameter "foreignKey" must be a non-empty String, but %v was given.',
|
|
62
58
|
foreignKey,
|
|
63
59
|
);
|
|
64
60
|
}
|
|
65
61
|
if (scope && (typeof scope !== 'object' || Array.isArray(scope))) {
|
|
66
62
|
throw new InvalidArgumentError(
|
|
67
|
-
'
|
|
68
|
-
'should be an Object, but %v was given.',
|
|
63
|
+
'Parameter "scope" must be an Object, but %v was given.',
|
|
69
64
|
scope,
|
|
70
65
|
);
|
|
71
66
|
}
|
|
@@ -78,8 +73,7 @@ export class HasOneResolver extends Service {
|
|
|
78
73
|
entities.forEach(entity => {
|
|
79
74
|
if (!entity || typeof entity !== 'object' || Array.isArray(entity)) {
|
|
80
75
|
throw new InvalidArgumentError(
|
|
81
|
-
'
|
|
82
|
-
'an Array of Object, but %v was given.',
|
|
76
|
+
'Parameter "entities" must be an Array of Object, but %v was given.',
|
|
83
77
|
entity,
|
|
84
78
|
);
|
|
85
79
|
}
|
|
@@ -140,50 +134,45 @@ export class HasOneResolver extends Service {
|
|
|
140
134
|
) {
|
|
141
135
|
if (!entities || !Array.isArray(entities)) {
|
|
142
136
|
throw new InvalidArgumentError(
|
|
143
|
-
'
|
|
144
|
-
'an Array of Object, but %v was given.',
|
|
137
|
+
'Parameter "entities" must be an Array of Object, but %v was given.',
|
|
145
138
|
entities,
|
|
146
139
|
);
|
|
147
140
|
}
|
|
148
141
|
if (!sourceName || typeof sourceName !== 'string') {
|
|
149
142
|
throw new InvalidArgumentError(
|
|
150
|
-
'
|
|
151
|
-
'a non-empty String, but %v was given.',
|
|
143
|
+
'Parameter "sourceName" must be a non-empty String, but %v was given.',
|
|
152
144
|
sourceName,
|
|
153
145
|
);
|
|
154
146
|
}
|
|
155
147
|
if (!targetName || typeof targetName !== 'string') {
|
|
156
148
|
throw new InvalidArgumentError(
|
|
157
|
-
'
|
|
158
|
-
'a non-empty String, but %v was given.',
|
|
149
|
+
'Parameter "targetName" must be a non-empty String, but %v was given.',
|
|
159
150
|
targetName,
|
|
160
151
|
);
|
|
161
152
|
}
|
|
162
153
|
if (!relationName || typeof relationName !== 'string') {
|
|
163
154
|
throw new InvalidArgumentError(
|
|
164
|
-
'
|
|
165
|
-
'
|
|
155
|
+
'Parameter "relationName" must be a non-empty String, ' +
|
|
156
|
+
'but %v was given.',
|
|
166
157
|
relationName,
|
|
167
158
|
);
|
|
168
159
|
}
|
|
169
160
|
if (!foreignKey || typeof foreignKey !== 'string') {
|
|
170
161
|
throw new InvalidArgumentError(
|
|
171
|
-
'
|
|
172
|
-
'a non-empty String, but %v was given.',
|
|
162
|
+
'Parameter "foreignKey" must be a non-empty String, but %v was given.',
|
|
173
163
|
foreignKey,
|
|
174
164
|
);
|
|
175
165
|
}
|
|
176
166
|
if (!discriminator || typeof discriminator !== 'string') {
|
|
177
167
|
throw new InvalidArgumentError(
|
|
178
|
-
'
|
|
179
|
-
'
|
|
168
|
+
'Parameter "discriminator" must be a non-empty String, ' +
|
|
169
|
+
'but %v was given.',
|
|
180
170
|
discriminator,
|
|
181
171
|
);
|
|
182
172
|
}
|
|
183
173
|
if (scope && (typeof scope !== 'object' || Array.isArray(scope))) {
|
|
184
174
|
throw new InvalidArgumentError(
|
|
185
|
-
'
|
|
186
|
-
'should be an Object, but %v was given.',
|
|
175
|
+
'Parameter "scope" must be an Object, but %v was given.',
|
|
187
176
|
scope,
|
|
188
177
|
);
|
|
189
178
|
}
|
|
@@ -196,8 +185,7 @@ export class HasOneResolver extends Service {
|
|
|
196
185
|
entities.forEach(entity => {
|
|
197
186
|
if (!entity || typeof entity !== 'object' || Array.isArray(entity)) {
|
|
198
187
|
throw new InvalidArgumentError(
|
|
199
|
-
'
|
|
200
|
-
'an Array of Object, but %v was given.',
|
|
188
|
+
'Parameter "entities" must be an Array of Object, but %v was given.',
|
|
201
189
|
entity,
|
|
202
190
|
);
|
|
203
191
|
}
|
|
@@ -259,43 +247,39 @@ export class HasOneResolver extends Service {
|
|
|
259
247
|
) {
|
|
260
248
|
if (!entities || !Array.isArray(entities)) {
|
|
261
249
|
throw new InvalidArgumentError(
|
|
262
|
-
'
|
|
263
|
-
'an Array of Object, but %v was given.',
|
|
250
|
+
'Parameter "entities" must be an Array of Object, but %v was given.',
|
|
264
251
|
entities,
|
|
265
252
|
);
|
|
266
253
|
}
|
|
267
254
|
if (!sourceName || typeof sourceName !== 'string') {
|
|
268
255
|
throw new InvalidArgumentError(
|
|
269
|
-
'
|
|
270
|
-
'a non-empty String, but %v was given.',
|
|
256
|
+
'Parameter "sourceName" must be a non-empty String, but %v was given.',
|
|
271
257
|
sourceName,
|
|
272
258
|
);
|
|
273
259
|
}
|
|
274
260
|
if (!targetName || typeof targetName !== 'string') {
|
|
275
261
|
throw new InvalidArgumentError(
|
|
276
|
-
'
|
|
277
|
-
'a non-empty String, but %v was given.',
|
|
262
|
+
'Parameter "targetName" must be a non-empty String, but %v was given.',
|
|
278
263
|
targetName,
|
|
279
264
|
);
|
|
280
265
|
}
|
|
281
266
|
if (!relationName || typeof relationName !== 'string') {
|
|
282
267
|
throw new InvalidArgumentError(
|
|
283
|
-
'
|
|
284
|
-
'
|
|
268
|
+
'Parameter "relationName" must be a non-empty String, ' +
|
|
269
|
+
'but %v was given.',
|
|
285
270
|
relationName,
|
|
286
271
|
);
|
|
287
272
|
}
|
|
288
273
|
if (!targetRelationName || typeof targetRelationName !== 'string') {
|
|
289
274
|
throw new InvalidArgumentError(
|
|
290
|
-
'
|
|
291
|
-
'
|
|
275
|
+
'Parameter "targetRelationName" must be a non-empty String, ' +
|
|
276
|
+
'but %v was given.',
|
|
292
277
|
targetRelationName,
|
|
293
278
|
);
|
|
294
279
|
}
|
|
295
280
|
if (scope && (typeof scope !== 'object' || Array.isArray(scope))) {
|
|
296
281
|
throw new InvalidArgumentError(
|
|
297
|
-
'
|
|
298
|
-
'should be an Object, but %v was given.',
|
|
282
|
+
'Parameter "scope" must be an Object, but %v was given.',
|
|
299
283
|
scope,
|
|
300
284
|
);
|
|
301
285
|
}
|
|
@@ -305,7 +289,7 @@ export class HasOneResolver extends Service {
|
|
|
305
289
|
).getRelationDefinitionByName(targetName, targetRelationName);
|
|
306
290
|
if (targetRelationDef.type !== RelationType.BELONGS_TO) {
|
|
307
291
|
throw new InvalidArgumentError(
|
|
308
|
-
'
|
|
292
|
+
'Relation %v of the model %v is a polymorphic "hasOne" relation, ' +
|
|
309
293
|
'so it requires the target relation %v to be a polymorphic "belongsTo", ' +
|
|
310
294
|
'but %v type was given.',
|
|
311
295
|
relationName,
|
|
@@ -316,7 +300,7 @@ export class HasOneResolver extends Service {
|
|
|
316
300
|
}
|
|
317
301
|
if (!targetRelationDef.polymorphic) {
|
|
318
302
|
throw new InvalidArgumentError(
|
|
319
|
-
'
|
|
303
|
+
'Relation %v of the model %v is a polymorphic "hasOne" relation, ' +
|
|
320
304
|
'so it requires the target relation %v to be a polymorphic too.',
|
|
321
305
|
relationName,
|
|
322
306
|
sourceName,
|