@travetto/model-query 5.0.13 → 5.0.15
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/LICENSE +1 -1
- package/package.json +5 -5
- package/src/internal/service/query.ts +12 -2
- package/support/test/query.ts +1 -7
package/LICENSE
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@travetto/model-query",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.15",
|
|
4
4
|
"description": "Datastore abstraction for advanced query support.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"datastore",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"directory": "module/model-query"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@travetto/di": "^5.0.
|
|
30
|
-
"@travetto/model": "^5.0.
|
|
31
|
-
"@travetto/schema": "^5.0.
|
|
29
|
+
"@travetto/di": "^5.0.14",
|
|
30
|
+
"@travetto/model": "^5.0.15",
|
|
31
|
+
"@travetto/schema": "^5.0.14"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
|
-
"@travetto/test": "^5.0.
|
|
34
|
+
"@travetto/test": "^5.0.16"
|
|
35
35
|
},
|
|
36
36
|
"peerDependenciesMeta": {
|
|
37
37
|
"@travetto/test": {
|
|
@@ -31,8 +31,18 @@ export class ModelQueryUtil {
|
|
|
31
31
|
if (res.length === 1 || res.length > 1 && !failOnMany) {
|
|
32
32
|
return res[0]!;
|
|
33
33
|
}
|
|
34
|
-
const requestedId = ((where && 'id' in where && typeof where.id === 'string') ? where.id : undefined)
|
|
35
|
-
|
|
34
|
+
const requestedId = ((where && 'id' in where && typeof where.id === 'string') ? where.id : undefined);
|
|
35
|
+
if (res.length === 0) {
|
|
36
|
+
if (requestedId) {
|
|
37
|
+
throw new NotFoundError(cls, requestedId);
|
|
38
|
+
} else {
|
|
39
|
+
const err = new NotFoundError(cls, 'unknown');
|
|
40
|
+
err.message = 'No results found for query';
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
} else {
|
|
44
|
+
throw new AppError(`Invalid number of results: ${res.length}`, { category: 'data' });
|
|
45
|
+
}
|
|
36
46
|
}
|
|
37
47
|
|
|
38
48
|
/**
|
package/support/test/query.ts
CHANGED
|
@@ -54,13 +54,7 @@ export abstract class ModelQuerySuite extends BaseModelSuite<ModelQuerySupport &
|
|
|
54
54
|
|
|
55
55
|
await assert.rejects(() => service.queryOne(Person, { where: { gender: 'm' } }), /Invalid number of results/);
|
|
56
56
|
await assert.rejects(() => service.queryOne(Person, { where: { gender: 'z' } }), NotFoundError);
|
|
57
|
-
await assert.rejects(() => service.queryOne(Person, { where: { gender: 'z' } }), /
|
|
58
|
-
assert.deepStrictEqual(
|
|
59
|
-
(await service.queryOne(Person, { where: { gender: 'z' } }).catch(e => e)).details.where,
|
|
60
|
-
{
|
|
61
|
-
gender: 'z'
|
|
62
|
-
}
|
|
63
|
-
);
|
|
57
|
+
await assert.rejects(() => service.queryOne(Person, { where: { gender: 'z' } }), /No results found for query/);
|
|
64
58
|
await assert.rejects(() => service.queryOne(Person, { where: { id: 'orange' } }), NotFoundError);
|
|
65
59
|
await assert.rejects(() => service.queryOne(Person, { where: { id: 'orange' } }), /orange/);
|
|
66
60
|
}
|