jitar 0.1.1 → 0.1.2

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 (180) hide show
  1. package/dist/core/Implementation.js +7 -0
  2. package/dist/core/errors/UnknownParameter.d.ts +3 -0
  3. package/dist/core/errors/UnknownParameter.js +6 -0
  4. package/dist/runtime/LocalRepository.d.ts +1 -1
  5. package/dist/runtime/LocalRepository.js +13 -4
  6. package/dist/server/configuration/RepositoryConfiguration.d.ts +1 -0
  7. package/dist/server/configuration/RepositoryConfiguration.js +7 -1
  8. package/dist/server/configuration/StandaloneConfiguration.d.ts +1 -0
  9. package/dist/server/configuration/StandaloneConfiguration.js +6 -0
  10. package/dist/server/utils/LocalFileManager.d.ts +1 -0
  11. package/dist/server/utils/LocalFileManager.js +19 -11
  12. package/dist/server/utils/RuntimeConfigurator.js +9 -4
  13. package/package.json +4 -1
  14. package/.eslintignore +0 -3
  15. package/.eslintrc +0 -16
  16. package/jest.config.js +0 -20
  17. package/src/client.ts +0 -18
  18. package/src/core/ErrorManager.ts +0 -18
  19. package/src/core/Implementation.ts +0 -53
  20. package/src/core/Procedure.ts +0 -98
  21. package/src/core/Segment.ts +0 -62
  22. package/src/core/SegmentBuilder.ts +0 -55
  23. package/src/core/Version.ts +0 -68
  24. package/src/core/definitions/AccessLevel.ts +0 -3
  25. package/src/core/errors/ImplementationNotFound.ts +0 -12
  26. package/src/core/errors/InvalidVersionNumber.ts +0 -12
  27. package/src/core/errors/MissingParameterValue.ts +0 -12
  28. package/src/core/errors/NotImplemented.ts +0 -12
  29. package/src/core/errors/ProcedureNotFound.ts +0 -12
  30. package/src/core/interfaces/Runner.ts +0 -7
  31. package/src/core/reflection/ParameterParser.ts +0 -74
  32. package/src/core/reflection/ReflectionHelper.ts +0 -118
  33. package/src/core/reflection/models/ReflectionField.ts +0 -22
  34. package/src/core/reflection/models/ReflectionParameter.ts +0 -18
  35. package/src/core/types/Component.ts +0 -8
  36. package/src/core/types/FlexObject.ts +0 -4
  37. package/src/core/types/Module.ts +0 -6
  38. package/src/core/types/SegmentImplementation.ts +0 -9
  39. package/src/core/types/SegmentModule.ts +0 -9
  40. package/src/core/types/SegmentProcedure.ts +0 -11
  41. package/src/core/utils/FqnBuilder.ts +0 -11
  42. package/src/hooks.ts +0 -2
  43. package/src/lib.ts +0 -7
  44. package/src/runtime/ClientId.ts +0 -18
  45. package/src/runtime/Gateway.ts +0 -18
  46. package/src/runtime/LocalGateway.ts +0 -93
  47. package/src/runtime/LocalNode.ts +0 -130
  48. package/src/runtime/LocalRepository.ts +0 -154
  49. package/src/runtime/Node.ts +0 -15
  50. package/src/runtime/NodeBalancer.ts +0 -61
  51. package/src/runtime/NodeMonitor.ts +0 -63
  52. package/src/runtime/Proxy.ts +0 -60
  53. package/src/runtime/Remote.ts +0 -157
  54. package/src/runtime/RemoteGateway.ts +0 -40
  55. package/src/runtime/RemoteNode.ts +0 -49
  56. package/src/runtime/RemoteRepository.ts +0 -60
  57. package/src/runtime/Repository.ts +0 -20
  58. package/src/runtime/Runtime.ts +0 -47
  59. package/src/runtime/caching/CacheBuilder.ts +0 -424
  60. package/src/runtime/caching/ImportRewriter.ts +0 -76
  61. package/src/runtime/caching/RemoteBuilder.ts +0 -51
  62. package/src/runtime/caching/SourceAppender.ts +0 -57
  63. package/src/runtime/caching/definitions/Keywords.ts +0 -3
  64. package/src/runtime/caching/errors/InvalidSegmentFilename.ts +0 -8
  65. package/src/runtime/caching/errors/MissingModuleExport.ts +0 -8
  66. package/src/runtime/caching/errors/SegmentFileNotLoaded.ts +0 -8
  67. package/src/runtime/caching/errors/SegmentModuleNotLoaded.ts +0 -8
  68. package/src/runtime/caching/models/ApplicationModule.ts +0 -30
  69. package/src/runtime/caching/models/Implementation.ts +0 -41
  70. package/src/runtime/caching/models/Procedure.ts +0 -26
  71. package/src/runtime/caching/models/Segment.ts +0 -28
  72. package/src/runtime/caching/models/SegmentModule.ts +0 -26
  73. package/src/runtime/caching/types/SegmentFile.ts +0 -6
  74. package/src/runtime/caching/types/SegmentImportProperties.ts +0 -9
  75. package/src/runtime/caching/types/SegmentImports.ts +0 -6
  76. package/src/runtime/errors/ClientNotFound.ts +0 -12
  77. package/src/runtime/errors/FileNotFound.ts +0 -12
  78. package/src/runtime/errors/InvalidClientId.ts +0 -12
  79. package/src/runtime/errors/InvalidJitarHooks.ts +0 -12
  80. package/src/runtime/errors/InvalidSegmentFile.ts +0 -12
  81. package/src/runtime/errors/ModuleNotLoaded.ts +0 -12
  82. package/src/runtime/errors/NoNodeAvailable.ts +0 -12
  83. package/src/runtime/errors/RepositoryNotAvaiable.ts +0 -12
  84. package/src/runtime/errors/RuntimeNotAvailable.ts +0 -12
  85. package/src/runtime/errors/SegmentNotFound.ts +0 -12
  86. package/src/runtime/hooks/dependencies.ts +0 -19
  87. package/src/runtime/hooks/runtime.ts +0 -25
  88. package/src/runtime/interfaces/FileManager.ts +0 -19
  89. package/src/runtime/interfaces/HealthCheck.ts +0 -5
  90. package/src/runtime/interfaces/ProcedureContainer.ts +0 -9
  91. package/src/runtime/models/File.ts +0 -22
  92. package/src/runtime/serialization/ArraySerializer.ts +0 -27
  93. package/src/runtime/serialization/ClassSerializer.ts +0 -133
  94. package/src/runtime/serialization/MapSerializer.ts +0 -60
  95. package/src/runtime/serialization/ObjectSerializer.ts +0 -42
  96. package/src/runtime/serialization/SetSerializer.ts +0 -42
  97. package/src/runtime/serialization/ValueSerializer.ts +0 -81
  98. package/src/runtime/serialization/errors/ClassNotFound.ts +0 -12
  99. package/src/runtime/serialization/errors/InvalidClass.ts +0 -12
  100. package/src/runtime/serialization/errors/InvalidPropertyType.ts +0 -12
  101. package/src/runtime/serialization/interfaces/Serializer.ts +0 -10
  102. package/src/runtime/serialization/types/SerializableObject.ts +0 -6
  103. package/src/runtime/serialization/types/Serialized.ts +0 -8
  104. package/src/runtime/serialization/types/SerializedClass.ts +0 -13
  105. package/src/runtime/serialization/types/SerializedMap.ts +0 -13
  106. package/src/runtime/serialization/types/SerializedObject.ts +0 -4
  107. package/src/runtime/serialization/types/SerializedSet.ts +0 -9
  108. package/src/runtime/types/JitarHooks.ts +0 -10
  109. package/src/runtime/types/ModuleImporter.ts +0 -6
  110. package/src/runtime/utils/ModuleAnalyser.ts +0 -60
  111. package/src/runtime/utils/ModuleLoader.ts +0 -51
  112. package/src/runtime/utils/UrlRewriter.ts +0 -59
  113. package/src/server/JitarServer.ts +0 -161
  114. package/src/server/configuration/GatewayConfiguration.ts +0 -9
  115. package/src/server/configuration/NodeConfiguration.ts +0 -15
  116. package/src/server/configuration/ProxyConfiguration.ts +0 -16
  117. package/src/server/configuration/RepositoryConfiguration.ts +0 -17
  118. package/src/server/configuration/RuntimeConfiguration.ts +0 -30
  119. package/src/server/configuration/ServerOptions.ts +0 -14
  120. package/src/server/configuration/StandaloneConfiguration.ts +0 -21
  121. package/src/server/controllers/AssetsController.ts +0 -59
  122. package/src/server/controllers/HealthController.ts +0 -41
  123. package/src/server/controllers/JitarController.ts +0 -18
  124. package/src/server/controllers/ModulesController.ts +0 -77
  125. package/src/server/controllers/NodesController.ts +0 -58
  126. package/src/server/controllers/ProceduresController.ts +0 -31
  127. package/src/server/controllers/ProxyController.ts +0 -38
  128. package/src/server/controllers/RPCController.ts +0 -173
  129. package/src/server/definitions/RuntimeDefaults.ts +0 -10
  130. package/src/server/errors/MissingConfigurationValue.ts +0 -8
  131. package/src/server/errors/RuntimeNotAvaiable.ts +0 -8
  132. package/src/server/errors/UnknownRuntimeMode.ts +0 -8
  133. package/src/server/models/HealthDto.ts +0 -11
  134. package/src/server/models/NodeDto.ts +0 -11
  135. package/src/server/utils/DataConverter.ts +0 -15
  136. package/src/server/utils/LocalFileManager.ts +0 -122
  137. package/src/server/utils/RuntimeConfigurationLoader.ts +0 -19
  138. package/src/server/utils/RuntimeConfigurator.ts +0 -207
  139. package/src/server/utils/ServerOptionsReader.ts +0 -17
  140. package/src/server.ts +0 -16
  141. package/test/_fixtures/core/Implementation.fixture.ts +0 -33
  142. package/test/_fixtures/core/Procedure.fixture.ts +0 -33
  143. package/test/_fixtures/core/Segment.fixture.ts +0 -36
  144. package/test/_fixtures/core/SegmentBuilder.fixture.ts +0 -45
  145. package/test/_fixtures/core/Version.fixture.ts +0 -18
  146. package/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts +0 -56
  147. package/test/_fixtures/runtime/LocalGateway.fixture.ts +0 -24
  148. package/test/_fixtures/runtime/LocalNode.fixture.ts +0 -16
  149. package/test/_fixtures/runtime/LocalRepository.fixture.ts +0 -73
  150. package/test/_fixtures/runtime/NodeBalancer.fixture.ts +0 -19
  151. package/test/_fixtures/runtime/NodeMonitor.fixture.ts +0 -34
  152. package/test/_fixtures/runtime/RemoteNode.fixture.ts +0 -8
  153. package/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts +0 -81
  154. package/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts +0 -50
  155. package/test/_fixtures/runtime/caching/SourceAppender.fixture.ts +0 -35
  156. package/test/_fixtures/runtime/segments.ts +0 -78
  157. package/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts +0 -134
  158. package/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts +0 -26
  159. package/test/core/Implementation.spec.ts +0 -89
  160. package/test/core/Procedure.spec.ts +0 -108
  161. package/test/core/Segment.spec.ts +0 -74
  162. package/test/core/SegmentBuilder.spec.ts +0 -39
  163. package/test/core/Version.spec.ts +0 -103
  164. package/test/core/errors/ErrorManager.spec.ts +0 -32
  165. package/test/core/reflection/ReflectionHelper.spec.ts +0 -128
  166. package/test/core/utils/FqnBuilder.spec.ts +0 -22
  167. package/test/runtime/ClientId.spec.ts +0 -43
  168. package/test/runtime/LocalGateway.spec.ts +0 -40
  169. package/test/runtime/LocalNode.spec.ts +0 -87
  170. package/test/runtime/LocalRepository.spec.ts +0 -50
  171. package/test/runtime/NodeBalancer.spec.ts +0 -39
  172. package/test/runtime/NodeMonitor.spec.ts +0 -31
  173. package/test/runtime/RemoteNode.spec.ts +0 -43
  174. package/test/runtime/caching/ImportRewriter.spec.ts +0 -68
  175. package/test/runtime/caching/RemoteBuilder.spec.ts +0 -21
  176. package/test/runtime/caching/SourceAppender.spec.ts +0 -31
  177. package/test/runtime/serialization/ValueSerializer.spec.ts +0 -203
  178. package/test/runtime/utils/ModuleAnalyser.spec.ts +0 -54
  179. package/test/runtime/utils/UrlRewriter.spec.ts +0 -57
  180. package/tsconfig.json +0 -23
@@ -1,50 +0,0 @@
1
-
2
- import InvalidClientId from '../../src/runtime/errors/InvalidClientId';
3
- import ClientNotFound from '../../src/runtime/errors/ClientNotFound';
4
-
5
- import
6
- {
7
- repository, client,
8
- UNSEGMENTED_FILE, LOCAL_FILE, REMOTE_FILE
9
- } from '../_fixtures/runtime/LocalRepository.fixture';
10
-
11
- describe('runtime/LocalRepository', () =>
12
- {
13
- describe('.loadModule(clientId, filename)', () =>
14
- {
15
- it('should not accept an invalid client id', () =>
16
- {
17
- const run = async () => await repository.loadModule('INVALID', '/some/file');
18
-
19
- expect(run).rejects.toEqual(new InvalidClientId('INVALID'));
20
- });
21
-
22
- it('should not accept an unknown client id', () =>
23
- {
24
- const run = async () => await repository.loadModule('CLIENT_9999', '/some/file');
25
-
26
- expect(run).rejects.toEqual(new ClientNotFound('CLIENT_9999'));
27
- });
28
-
29
- it('should return an unsegmented module file', async () =>
30
- {
31
- const result = await repository.loadModule(client.id, UNSEGMENTED_FILE);
32
-
33
- expect(result.content.toString()).toContain('fourthPrivateTask()');
34
- });
35
-
36
- it('should return the actual module file', async () =>
37
- {
38
- const result = await repository.loadModule(client.id, LOCAL_FILE);
39
-
40
- expect(result.content).toContain('firstPublicTask()');
41
- });
42
-
43
- it('should return a remote module file', async () =>
44
- {
45
- const result = await repository.loadModule(client.id, REMOTE_FILE);
46
-
47
- expect(result.content.toString()).toContain('runProcedure()');
48
- });
49
- });
50
- });
@@ -1,39 +0,0 @@
1
-
2
- import NoNodeAvailable from '../../src/runtime/errors/NoNodeAvailable';
3
- import Version from '../../src/core/Version';
4
-
5
- import {
6
- balancer,
7
- emptyBalancer,
8
- firstNode,
9
- secondNode
10
- } from '../_fixtures/runtime/NodeBalancer.fixture';
11
-
12
- describe('runtime/LocalGateway', () =>
13
- {
14
- describe('.getNextNode()', () =>
15
- {
16
- it('should select nodes round robin', async () =>
17
- {
18
- const firstSelectedNode = balancer.getNextNode();
19
- const secondSelectedNode = balancer.getNextNode();
20
- const thirdSelectedNode = balancer.getNextNode();
21
- const fouthSelectedNode = balancer.getNextNode();
22
-
23
- expect(firstSelectedNode).toBe(firstNode);
24
- expect(secondSelectedNode).toBe(secondNode);
25
- expect(thirdSelectedNode).toBe(firstNode);
26
- expect(fouthSelectedNode).toBe(secondNode);
27
- });
28
- });
29
-
30
- describe('.run(name, version, parameters)', () =>
31
- {
32
- it('throw a node not available error', async () =>
33
- {
34
- const run = async() => await emptyBalancer.run('NoProcedure', Version.DEFAULT, new Map());
35
-
36
- expect(run).rejects.toEqual(new NoNodeAvailable('NoProcedure'));
37
- });
38
- });
39
- });
@@ -1,31 +0,0 @@
1
-
2
- import {
3
- goodNode,
4
- badNode,
5
- gateway,
6
- monitor
7
- } from '../_fixtures/runtime/NodeMonitor.fixture';
8
-
9
- describe('runtime/LocalGateway', () =>
10
- {
11
- describe('.monitor()', () =>
12
- {
13
- it('should keep a node and remove a node', async () =>
14
- {
15
- const beforeNodes = gateway.nodes;
16
-
17
- expect(beforeNodes.length).toBe(2);
18
- expect(beforeNodes[0]).toBe(goodNode);
19
- expect(beforeNodes[1]).toBe(badNode);
20
-
21
- monitor.start();
22
- await new Promise(resolve => setTimeout(resolve, 300));
23
- monitor.stop();
24
-
25
- const afterNodes = gateway.nodes;
26
-
27
- expect(afterNodes.length).toBe(1);
28
- expect(afterNodes[0]).toBe(goodNode);
29
- });
30
- });
31
- });
@@ -1,43 +0,0 @@
1
-
2
- import { API_URL, node } from '../_fixtures/runtime/RemoteNode.fixture';
3
-
4
- describe('runtime/LocalGateway', () =>
5
- {
6
- describe('.url', () =>
7
- {
8
- it('should contain an url', () =>
9
- {
10
- expect(node.url).toContain(API_URL);
11
- });
12
- });
13
-
14
- describe('.getProcedureNames()', () =>
15
- {
16
- it('should contain all registered procedure', () =>
17
- {
18
- const names = node.getProcedureNames();
19
-
20
- expect(names).toContain('FirstProcedure');
21
- expect(names).toContain('SecondProcedure');
22
- });
23
- });
24
-
25
- describe('.hasProcedure(name)', () =>
26
- {
27
- it('should find a procedure', () =>
28
- {
29
- const hasFirstProcedure = node.hasProcedure('FirstProcedure');
30
- const hasSecondProcedure = node.hasProcedure('FirstProcedure');
31
-
32
- expect(hasFirstProcedure).toBeTruthy();
33
- expect(hasSecondProcedure).toBeTruthy();
34
- });
35
-
36
- it('should not find a procedure', () =>
37
- {
38
- const hasNoProcedure = node.hasProcedure('NoProcedure');
39
-
40
- expect(hasNoProcedure).toBeFalsy();
41
- });
42
- });
43
- });
@@ -1,68 +0,0 @@
1
-
2
- import ImportRewriter from '../../../src/runtime/caching/ImportRewriter';
3
-
4
- import
5
- {
6
- noSystemImports, noSystemImportsResult,
7
- hasSystemImports, hasSystemImportsResult,
8
- hasJitarImports, hasJitarImportsResult,
9
- hasMixedImports, hasMixedImportsResult,
10
- hasDynamicImports, hasDynamicImportsResult,
11
- hasImportsAndContent, hasImportsAndContentResult,
12
- hasImportsNoSemicolon, hasImportsResultNoSemicolon
13
- } from '../../_fixtures/runtime/caching/ImportRewriter.fixture';
14
-
15
- describe('runtime/utils/ImportRewriter', () =>
16
- {
17
- describe('.rewrite(module)', () =>
18
- {
19
- it('should not rewrite non-system imports', () =>
20
- {
21
- const result = ImportRewriter.rewrite(noSystemImports);
22
-
23
- expect(result).toBe(noSystemImportsResult);
24
- });
25
-
26
- it('should rewrite all system imports', () =>
27
- {
28
- const result = ImportRewriter.rewrite(hasSystemImports);
29
-
30
- expect(result).toBe(hasSystemImportsResult);
31
- });
32
-
33
- it('should rewrite all jitar imports', () =>
34
- {
35
- const result = ImportRewriter.rewrite(hasJitarImports);
36
-
37
- expect(result).toBe(hasJitarImportsResult);
38
- });
39
-
40
- it('should rewrite all imports without semicolon', () =>
41
- {
42
- const result = ImportRewriter.rewrite(hasImportsNoSemicolon);
43
-
44
- expect(result).toBe(hasImportsResultNoSemicolon);
45
- });
46
-
47
- it('should rewrite mixed system and jitar imports', () =>
48
- {
49
- const result = ImportRewriter.rewrite(hasMixedImports);
50
-
51
- expect(result).toBe(hasMixedImportsResult);
52
- });
53
-
54
- it('should not rewrite dynamic imports', () =>
55
- {
56
- const result = ImportRewriter.rewrite(hasDynamicImports);
57
-
58
- expect(result).toBe(hasDynamicImportsResult);
59
- });
60
-
61
- it('should not modify any content', () =>
62
- {
63
- const result = ImportRewriter.rewrite(hasImportsAndContent);
64
-
65
- expect(result).toBe(hasImportsAndContentResult);
66
- });
67
- });
68
- });
@@ -1,21 +0,0 @@
1
-
2
- import RemoteBuilder from '../../../src/runtime/caching/RemoteBuilder';
3
-
4
- import
5
- {
6
- segmentModule,
7
- codeResult
8
- } from '../../_fixtures/runtime/caching/RemoteBuilder.fixture';
9
-
10
- describe('runtime/utils/RemoteBuilder', () =>
11
- {
12
- describe('.build(module)', () =>
13
- {
14
- it('should create remote implementations for all exported functions', () =>
15
- {
16
- const result = RemoteBuilder.build(segmentModule);
17
-
18
- expect(result).toBe(codeResult);
19
- });
20
- });
21
- });
@@ -1,31 +0,0 @@
1
-
2
- import SourceAppender from '../../../src/runtime/caching/SourceAppender';
3
-
4
- import
5
- {
6
- applicationModule,
7
- emptyModule,
8
- filecode,
9
- filename,
10
- codeResult
11
- } from '../../_fixtures/runtime/caching/SourceAppender.fixture';
12
-
13
- describe('runtime/utils/SourceAppender', () =>
14
- {
15
- describe('.append(module, code, filename)', () =>
16
- {
17
- it('should append a source properties to all exported classes', () =>
18
- {
19
- const result = SourceAppender.append(applicationModule, filecode, filename);
20
-
21
- expect(result).toBe(codeResult);
22
- });
23
-
24
- it('should not append any source', () =>
25
- {
26
- const result = SourceAppender.append(emptyModule, filecode, filename);
27
-
28
- expect(result).toBe(filecode);
29
- });
30
- });
31
- });
@@ -1,203 +0,0 @@
1
-
2
- import
3
- {
4
- numberValue, boolValue, stringValue, nullValue, undefinedValue,
5
- emptyArray, mixedArray, nestedArray,
6
- emptyObject, mixedObject, nestedObject,
7
- emptyMap, mixedMap, nestedMap, serializedEmptyMap, serializedMixedMap, serializedNestedMap,
8
- emptySet, mixedSet, nestedSet, serializedEmptySet, serializedMixedSet, serializedNestedSet,
9
- dataClass, constructedClass, nestedClass, serializedDataClass, serializedConstructedClass, serializedNestedClass,
10
- serializedInvalidClass, serializedUnserializableClass,
11
- privateClass, serializedPrivateClass,
12
- errorClass, serializedError
13
- } from '../../_fixtures/runtime/serialization/ValueSerializer.fixture';
14
-
15
- import ValueSerializer from '../../../src/runtime/serialization/ValueSerializer';
16
- import ClassNotFound from '../../../src/runtime/serialization/errors/ClassNotFound';
17
- import InvalidClass from '../../../src/runtime/serialization/errors/InvalidClass';
18
-
19
- describe('serialization/ValueSerializer', () =>
20
- {
21
- describe('.serialize(value)', () =>
22
- {
23
- it('should serialize primitive values', () =>
24
- {
25
- const number = ValueSerializer.serialize(numberValue);
26
- const bool = ValueSerializer.serialize(numberValue);
27
- const string = ValueSerializer.serialize(stringValue);
28
- const none = ValueSerializer.serialize(nullValue);
29
- const notset = ValueSerializer.serialize(undefinedValue);
30
-
31
- expect(number).toBe(numberValue);
32
- expect(bool).toBe(numberValue);
33
- expect(string).toBe(stringValue);
34
- expect(none).toBe(nullValue);
35
- expect(notset).toBe(undefinedValue);
36
- });
37
-
38
- it('should serialize arrays', () =>
39
- {
40
- const empty = ValueSerializer.serialize(emptyArray);
41
- const mixed = ValueSerializer.serialize(mixedArray);
42
- const nested = ValueSerializer.serialize(nestedArray);
43
-
44
- expect(empty).toEqual(emptyArray);
45
- expect(mixed).toEqual(mixedArray);
46
- expect(nested).toEqual(nestedArray);
47
- });
48
-
49
- it('should serialize objects', () =>
50
- {
51
- const empty = ValueSerializer.serialize(emptyObject);
52
- const mixed = ValueSerializer.serialize(mixedObject);
53
- const nested = ValueSerializer.serialize(nestedObject);
54
-
55
- expect(empty).toEqual(emptyObject);
56
- expect(mixed).toEqual(mixedObject);
57
- expect(nested).toEqual(nestedObject);
58
- });
59
-
60
- it('should serialize maps', () =>
61
- {
62
- const empty = ValueSerializer.serialize(emptyMap);
63
- const mixed = ValueSerializer.serialize(mixedMap);
64
- const nested = ValueSerializer.serialize(nestedMap);
65
-
66
- expect(empty).toEqual(serializedEmptyMap);
67
- expect(mixed).toEqual(serializedMixedMap);
68
- expect(nested).toEqual(serializedNestedMap);
69
- });
70
-
71
- it('should serialize sets', () =>
72
- {
73
- const empty = ValueSerializer.serialize(emptySet);
74
- const mixed = ValueSerializer.serialize(mixedSet);
75
- const nested = ValueSerializer.serialize(nestedSet);
76
-
77
- expect(empty).toEqual(serializedEmptySet);
78
- expect(mixed).toEqual(serializedMixedSet);
79
- expect(nested).toEqual(serializedNestedSet);
80
- });
81
-
82
- it('should serialize error', () =>
83
- {
84
- const error = ValueSerializer.serialize(errorClass) as unknown;
85
-
86
- expect(error).toEqual(serializedError);
87
- });
88
-
89
- it('should serialize instances', () =>
90
- {
91
- const data = ValueSerializer.serialize(dataClass);
92
- const constructed = ValueSerializer.serialize(constructedClass);
93
- const nested = ValueSerializer.serialize(nestedClass);
94
-
95
- expect(data).toEqual(serializedDataClass);
96
- expect(constructed).toEqual(serializedConstructedClass);
97
- expect(nested).toEqual(serializedNestedClass);
98
-
99
- });
100
-
101
- it('should not serialize set or get only variables', () =>
102
- {
103
- const clazz = ValueSerializer.serialize(privateClass);
104
-
105
- expect(clazz).toEqual(serializedPrivateClass);
106
-
107
- });
108
- });
109
-
110
- describe('.deserialize(value)', () =>
111
- {
112
- it('should deserialize primitive values', async () =>
113
- {
114
- const number = await ValueSerializer.deserialize(numberValue);
115
- const bool = await ValueSerializer.deserialize(boolValue);
116
- const string = await ValueSerializer.deserialize(undefinedValue);
117
- const none = await ValueSerializer.deserialize(nullValue);
118
- const notset = await ValueSerializer.deserialize(undefinedValue);
119
-
120
- expect(number).toBe(numberValue);
121
- expect(bool).toBe(boolValue);
122
- expect(string).toBe(undefinedValue);
123
- expect(none).toBe(nullValue);
124
- expect(notset).toBe(undefinedValue);
125
- });
126
-
127
- it('should deserialize arrays', async () =>
128
- {
129
- const empty = await ValueSerializer.deserialize(emptyArray);
130
- const mixed = await ValueSerializer.deserialize(mixedArray);
131
- const nested = await ValueSerializer.deserialize(nestedArray);
132
-
133
- expect(empty).toEqual(emptyArray);
134
- expect(mixed).toEqual(mixedArray);
135
- expect(nested).toEqual(nestedArray);
136
- });
137
-
138
- it('should deserialize plain objects', async () =>
139
- {
140
- const empty = await ValueSerializer.deserialize(emptyObject);
141
- const mixed = await ValueSerializer.deserialize(mixedObject);
142
- const nested = await ValueSerializer.deserialize(nestedObject);
143
-
144
- expect(empty).toEqual(emptyObject);
145
- expect(mixed).toEqual(mixedObject);
146
- expect(nested).toEqual(nestedObject);
147
- });
148
-
149
- it('should deserialize maps', async () =>
150
- {
151
- const empty = await ValueSerializer.deserialize(serializedEmptyMap);
152
- const mixed = await ValueSerializer.deserialize(serializedMixedMap);
153
- const nested = await ValueSerializer.deserialize(serializedNestedMap);
154
-
155
- expect(empty).toEqual(emptyMap);
156
- expect(mixed).toEqual(mixedMap);
157
- expect(nested).toEqual(nestedMap);
158
- });
159
-
160
- it('should deserialize sets', async () =>
161
- {
162
- const empty = await ValueSerializer.deserialize(serializedEmptySet);
163
- const mixed = await ValueSerializer.deserialize(serializedMixedSet);
164
- const nested = await ValueSerializer.deserialize(serializedNestedSet);
165
-
166
- expect(empty).toEqual(emptySet);
167
- expect(mixed).toEqual(mixedSet);
168
- expect(nested).toEqual(nestedSet);
169
- });
170
-
171
- it('should deserialize error', async () =>
172
- {
173
- const empty = await ValueSerializer.deserialize(serializedError);
174
-
175
- expect(empty).toEqual(errorClass);
176
- });
177
-
178
- it('should deserialize instances', async () =>
179
- {
180
- const data = await ValueSerializer.deserialize(serializedDataClass);
181
- const constructed = await ValueSerializer.deserialize(serializedConstructedClass);
182
- const nested = await ValueSerializer.deserialize(serializedNestedClass);
183
-
184
- expect(data).toEqual(dataClass);
185
- expect(constructed).toEqual(constructedClass);
186
- expect(nested).toEqual(nestedClass);
187
- });
188
-
189
- it('should not deserialize invalid objects', async () =>
190
- {
191
- const deserialize = async () => await ValueSerializer.deserialize(serializedInvalidClass);
192
-
193
- expect(deserialize).rejects.toEqual(new ClassNotFound('Invalid'));
194
- });
195
-
196
- it('should not deserialize non-function instances', async () =>
197
- {
198
- const deserialize = async () => await ValueSerializer.deserialize(serializedUnserializableClass);
199
-
200
- expect(deserialize).rejects.toEqual(new InvalidClass('Infinity'));
201
- });
202
- });
203
- });
@@ -1,54 +0,0 @@
1
-
2
- import ModuleAnalyser from '../../../src/runtime/utils/ModuleAnalyser';
3
-
4
- import {
5
- theModule,
6
- pojo,
7
- realFunction,
8
- realClass
9
- } from '../../_fixtures/runtime/utils/ModuleAnaliser.fixture';
10
-
11
- describe('runtime/utils/ModuleAnaliser', () =>
12
- {
13
- describe('.filterObjects(module)', () =>
14
- {
15
- it('should filter all object types', () =>
16
- {
17
- const result = ModuleAnalyser.filterObjects(theModule);
18
-
19
- expect(result.size).toBe(3);
20
- expect(result.get('string')).toBe(undefined);
21
- expect(result.get('pojo')).toBe(pojo);
22
- expect(result.get('realFunction')).toBe(realFunction);
23
- expect(result.get('realClass')).toBe(realClass);
24
- });
25
- });
26
-
27
- describe('.filterFunctions(module)', () =>
28
- {
29
- it('should filter all actual functions', () =>
30
- {
31
- const result = ModuleAnalyser.filterFunctions(theModule);
32
-
33
- expect(result.size).toBe(1);
34
- expect(result.get('string')).toBe(undefined);
35
- expect(result.get('pojo')).toBe(undefined);
36
- expect(result.get('realFunction')).toBe(realFunction);
37
- expect(result.get('realClass')).toBe(undefined);
38
- });
39
- });
40
-
41
- describe('.filterClasses(module)', () =>
42
- {
43
- it('should filter all actual classes', () =>
44
- {
45
- const result = ModuleAnalyser.filterClasses(theModule);
46
-
47
- expect(result.size).toBe(1);
48
- expect(result.get('string')).toBe(undefined);
49
- expect(result.get('pojo')).toBe(undefined);
50
- expect(result.get('realFunction')).toBe(undefined);
51
- expect(result.get('realClass')).toBe(realClass);
52
- });
53
- });
54
- });
@@ -1,57 +0,0 @@
1
-
2
- import UrlRewriter from '../../../src/runtime/utils/UrlRewriter';
3
-
4
- describe('runtime/utils/UrlRewriter', () =>
5
- {
6
- describe('.addBase(url, base)', () =>
7
- {
8
- it('should add the base to the url', () =>
9
- {
10
- const result = UrlRewriter.addBase('sub/my-file.ext', '/base/path/');
11
-
12
- expect(result).toBe('/base/path/sub/my-file.ext');
13
- });
14
-
15
- it('should add the base to the url without a slash', () =>
16
- {
17
- const result = UrlRewriter.addBase('sub/my-file.ext', '/base/path');
18
-
19
- expect(result).toBe('/base/path/sub/my-file.ext');
20
- });
21
-
22
- it('should add the base to the url with trailing base slash', () =>
23
- {
24
- const result = UrlRewriter.addBase('/sub/my-file.ext', '/base/path/');
25
-
26
- expect(result).toBe('/base/path/sub/my-file.ext');
27
- });
28
-
29
- it('should remove last path part from the base', () =>
30
- {
31
- const result = UrlRewriter.addBase('../sub/my-file.ext', '/base/path/');
32
-
33
- expect(result).toBe('/base/sub/my-file.ext');
34
- });
35
-
36
- it('should remove last path parts from the base', () =>
37
- {
38
- const result = UrlRewriter.addBase('../../../sub/my-file.ext', '/base/path/to/folder');
39
-
40
- expect(result).toBe('/base/sub/my-file.ext');
41
- });
42
-
43
- it('should remove all parts from the base', () =>
44
- {
45
- const result = UrlRewriter.addBase('../../../sub/my-file.ext', '/base/path/');
46
-
47
- expect(result).toBe('sub/my-file.ext');
48
- });
49
-
50
- it('should add the base to the url', () =>
51
- {
52
- const result = UrlRewriter.addBase('./sub/my-file.ext', '/base/path/');
53
-
54
- expect(result).toBe('/base/path/sub/my-file.ext');
55
- });
56
- });
57
- });
package/tsconfig.json DELETED
@@ -1,23 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2022",
4
- "experimentalDecorators": true,
5
- "emitDecoratorMetadata": true,
6
- "module": "es2022",
7
- "rootDir": "./src/",
8
- "moduleResolution": "node",
9
- "declaration": true,
10
- "outDir": "./dist",
11
- "removeComments": true,
12
- "esModuleInterop": true,
13
- "forceConsistentCasingInFileNames": true,
14
- "strict": true,
15
- "skipLibCheck": true
16
- },
17
- "exclude": [
18
- "node_modules",
19
- "test",
20
- "dist",
21
- "examples"
22
- ]
23
- }