@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.
Files changed (79) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/queries/QueryResult.d.ts.map +1 -1
  6. package/dist/cjs/queries/QueryResult.js +15 -5
  7. package/dist/cjs/queries/QueryResult.js.map +1 -1
  8. package/dist/cjs/queries/ValidateRequestArguments.js +3 -3
  9. package/dist/cjs/queries/ValidateRequestArguments.js.map +1 -1
  10. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts +2 -0
  11. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts.map +1 -0
  12. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts +2 -0
  13. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts.map +1 -0
  14. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts +2 -0
  15. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts.map +1 -0
  16. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts +2 -0
  17. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts.map +1 -0
  18. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts +2 -0
  19. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts.map +1 -0
  20. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts +2 -0
  21. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts.map +1 -0
  22. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts +2 -0
  23. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts.map +1 -0
  24. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts +2 -0
  25. package/dist/cjs/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts.map +1 -0
  26. package/dist/esm/index.d.ts +1 -0
  27. package/dist/esm/index.d.ts.map +1 -1
  28. package/dist/esm/index.js +1 -0
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/queries/QueryResult.d.ts.map +1 -1
  31. package/dist/esm/queries/QueryResult.js +15 -5
  32. package/dist/esm/queries/QueryResult.js.map +1 -1
  33. package/dist/esm/queries/ValidateRequestArguments.js +3 -3
  34. package/dist/esm/queries/ValidateRequestArguments.js.map +1 -1
  35. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts +2 -0
  36. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.d.ts.map +1 -0
  37. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.js +9 -0
  38. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.js.map +1 -0
  39. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts +2 -0
  40. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.d.ts.map +1 -0
  41. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.js +9 -0
  42. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.js.map +1 -0
  43. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts +2 -0
  44. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.d.ts.map +1 -0
  45. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.js +9 -0
  46. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.js.map +1 -0
  47. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts +2 -0
  48. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.d.ts.map +1 -0
  49. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.js +9 -0
  50. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.js.map +1 -0
  51. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts +2 -0
  52. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.d.ts.map +1 -0
  53. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.js +9 -0
  54. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.js.map +1 -0
  55. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts +2 -0
  56. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.d.ts.map +1 -0
  57. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.js +9 -0
  58. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.js.map +1 -0
  59. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts +2 -0
  60. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.d.ts.map +1 -0
  61. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.js +9 -0
  62. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.js.map +1 -0
  63. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts +2 -0
  64. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.d.ts.map +1 -0
  65. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.js +9 -0
  66. package/dist/esm/queries/for_ValidateRequestArguments/when_validating_arguments/without_arguments_object.js.map +1 -0
  67. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  68. package/index.ts +1 -0
  69. package/package.json +2 -2
  70. package/queries/QueryResult.ts +15 -5
  71. package/queries/ValidateRequestArguments.ts +3 -3
  72. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_empty_string_value.ts +14 -0
  73. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_missing_property.ts +14 -0
  74. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_no_required_arguments.ts +14 -0
  75. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_null_value.ts +14 -0
  76. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_numeric_zero_value.ts +14 -0
  77. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_undefined_value.ts +14 -0
  78. package/queries/for_ValidateRequestArguments/when_validating_arguments/with_valid_string_value.ts +14 -0
  79. 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.40.1",
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.15.1",
72
+ "@cratis/fundamentals": "^7.16.0",
73
73
  "rxjs": "^7.8.2"
74
74
  }
75
75
  }
@@ -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 = JsonSerializer.deserializeArrayFromInstance(instanceType, 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: JsonSerializer.deserializeArrayFromInstance(instanceType, result.changeSet.added ?? []),
150
- replaced: JsonSerializer.deserializeArrayFromInstance(instanceType, result.changeSet.replaced ?? []),
151
- removed: JsonSerializer.deserializeArrayFromInstance(instanceType, result.changeSet.removed ?? []),
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] == undefined ||
21
- actualArguments[argument] == null ||
22
- actualArguments[argument] == '') {
20
+ actualArguments[argument] === undefined ||
21
+ actualArguments[argument] === null ||
22
+ actualArguments[argument] === '') {
23
23
  missing.push(argument);
24
24
  }
25
25
  }
@@ -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
+ });
@@ -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
+ });
@@ -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
+ });
@@ -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
+ });
@@ -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
+ });
@@ -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
+ });
@@ -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
+ });