@cratis/arc 20.40.1 → 20.41.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.
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/queries/QueryResult.d.ts.map +1 -1
- package/dist/cjs/queries/QueryResult.js +15 -5
- package/dist/cjs/queries/QueryResult.js.map +1 -1
- package/dist/cjs/queries/ValidateRequestArguments.js +3 -3
- package/dist/cjs/queries/ValidateRequestArguments.js.map +1 -1
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts.map +1 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts +2 -0
- package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/queries/QueryResult.d.ts.map +1 -1
- package/dist/esm/queries/QueryResult.js +15 -5
- package/dist/esm/queries/QueryResult.js.map +1 -1
- package/dist/esm/queries/ValidateRequestArguments.js +3 -3
- package/dist/esm/queries/ValidateRequestArguments.js.map +1 -1
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.js.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts +2 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts.map +1 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.js +9 -0
- package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/index.ts +1 -0
- package/package.json +2 -2
- package/queries/QueryResult.ts +15 -5
- package/queries/ValidateRequestArguments.ts +3 -3
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.ts +14 -0
- package/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.ts +14 -0
package/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Cratis. All rights reserved.
|
|
2
2
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
3
|
|
|
4
|
+
import '@cratis/fundamentals/reflection';
|
|
4
5
|
import * as commands from './commands';
|
|
5
6
|
import * as identity from './identity';
|
|
6
7
|
import * as messaging from './messaging';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cratis/arc",
|
|
3
|
-
"version": "20.
|
|
3
|
+
"version": "20.41.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Cratis",
|
|
6
6
|
"license": "MIT",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"up": "yarn g:up"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@cratis/fundamentals": "^7.
|
|
72
|
+
"@cratis/fundamentals": "^7.16.0",
|
|
73
73
|
"rxjs": "^7.8.2"
|
|
74
74
|
}
|
|
75
75
|
}
|
package/queries/QueryResult.ts
CHANGED
|
@@ -129,14 +129,17 @@ export class QueryResult<TDataType = object> implements IQueryResult<TDataType>
|
|
|
129
129
|
|
|
130
130
|
if (result.data) {
|
|
131
131
|
let data: object = result.data;
|
|
132
|
+
const isPrimitive = instanceType === String || instanceType === Number || instanceType === Boolean;
|
|
132
133
|
if (enumerable) {
|
|
133
134
|
if (Array.isArray(result.data)) {
|
|
134
|
-
data =
|
|
135
|
+
data = isPrimitive
|
|
136
|
+
? Array.from(result.data)
|
|
137
|
+
: JsonSerializer.deserializeArrayFromInstance(instanceType, data);
|
|
135
138
|
} else {
|
|
136
139
|
data = [];
|
|
137
140
|
}
|
|
138
141
|
} else {
|
|
139
|
-
data = JsonSerializer.deserializeFromInstance(instanceType, data);
|
|
142
|
+
data = isPrimitive ? data : JsonSerializer.deserializeFromInstance(instanceType, data);
|
|
140
143
|
}
|
|
141
144
|
|
|
142
145
|
this.data = data as TDataType;
|
|
@@ -145,10 +148,17 @@ export class QueryResult<TDataType = object> implements IQueryResult<TDataType>
|
|
|
145
148
|
}
|
|
146
149
|
|
|
147
150
|
if (enumerable && result.changeSet) {
|
|
151
|
+
const isPrimitive = instanceType === String || instanceType === Number || instanceType === Boolean;
|
|
148
152
|
this.changeSet = {
|
|
149
|
-
added:
|
|
150
|
-
|
|
151
|
-
|
|
153
|
+
added: isPrimitive
|
|
154
|
+
? Array.from(result.changeSet.added ?? [])
|
|
155
|
+
: JsonSerializer.deserializeArrayFromInstance(instanceType, result.changeSet.added ?? []),
|
|
156
|
+
replaced: isPrimitive
|
|
157
|
+
? Array.from(result.changeSet.replaced ?? [])
|
|
158
|
+
: JsonSerializer.deserializeArrayFromInstance(instanceType, result.changeSet.replaced ?? []),
|
|
159
|
+
removed: isPrimitive
|
|
160
|
+
? Array.from(result.changeSet.removed ?? [])
|
|
161
|
+
: JsonSerializer.deserializeArrayFromInstance(instanceType, result.changeSet.removed ?? []),
|
|
152
162
|
} as ChangeSet<unknown>;
|
|
153
163
|
}
|
|
154
164
|
}
|
|
@@ -17,9 +17,9 @@ export function ValidateRequestArguments(requestName: string, expectedRequestArg
|
|
|
17
17
|
} else {
|
|
18
18
|
for (const argument of expectedRequestArguments) {
|
|
19
19
|
if (!actualArguments.hasOwnProperty(argument) ||
|
|
20
|
-
actualArguments[argument]
|
|
21
|
-
actualArguments[argument]
|
|
22
|
-
actualArguments[argument]
|
|
20
|
+
actualArguments[argument] === undefined ||
|
|
21
|
+
actualArguments[argument] === null ||
|
|
22
|
+
actualArguments[argument] === '') {
|
|
23
23
|
missing.push(argument);
|
|
24
24
|
}
|
|
25
25
|
}
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with an empty string value', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['name'], { name: '' });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return false', () => result.should.be.false);
|
|
14
|
+
});
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with a missing required property', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['name'], { other: 'value' });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return false', () => result.should.be.false);
|
|
14
|
+
});
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with no required arguments', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', [], {});
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return true', () => result.should.be.true);
|
|
14
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with a null value', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['name'], { name: null });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return false', () => result.should.be.false);
|
|
14
|
+
});
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with a numeric zero value', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['offset'], { offset: 0 });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return true', () => result.should.be.true);
|
|
14
|
+
});
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with an undefined value', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['name'], { name: undefined });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return false', () => result.should.be.false);
|
|
14
|
+
});
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments with a valid string value', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['name'], { name: 'some-value' });
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return true', () => result.should.be.true);
|
|
14
|
+
});
|
package/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
+
|
|
4
|
+
import { ValidateRequestArguments } from '../../ValidateRequestArguments';
|
|
5
|
+
|
|
6
|
+
describe('when validating arguments without an arguments object', () => {
|
|
7
|
+
let result: boolean;
|
|
8
|
+
|
|
9
|
+
beforeEach(() => {
|
|
10
|
+
result = ValidateRequestArguments('TestRequest', ['name'], undefined);
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
it('should return false', () => result.should.be.false);
|
|
14
|
+
});
|