jitar 0.1.1 → 0.1.3

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 (183) hide show
  1. package/dist/client.d.ts +1 -0
  2. package/dist/client.js +12 -0
  3. package/dist/core/Implementation.js +7 -0
  4. package/dist/core/errors/UnknownParameter.d.ts +3 -0
  5. package/dist/core/errors/UnknownParameter.js +6 -0
  6. package/dist/runtime/LocalRepository.d.ts +1 -1
  7. package/dist/runtime/LocalRepository.js +13 -4
  8. package/dist/server/configuration/RepositoryConfiguration.d.ts +1 -0
  9. package/dist/server/configuration/RepositoryConfiguration.js +7 -1
  10. package/dist/server/configuration/StandaloneConfiguration.d.ts +1 -0
  11. package/dist/server/configuration/StandaloneConfiguration.js +6 -0
  12. package/dist/server/controllers/RPCController.js +20 -3
  13. package/dist/server/utils/LocalFileManager.d.ts +1 -0
  14. package/dist/server/utils/LocalFileManager.js +19 -11
  15. package/dist/server/utils/RuntimeConfigurator.js +9 -4
  16. package/package.json +6 -2
  17. package/.eslintignore +0 -3
  18. package/.eslintrc +0 -16
  19. package/jest.config.js +0 -20
  20. package/src/client.ts +0 -18
  21. package/src/core/ErrorManager.ts +0 -18
  22. package/src/core/Implementation.ts +0 -53
  23. package/src/core/Procedure.ts +0 -98
  24. package/src/core/Segment.ts +0 -62
  25. package/src/core/SegmentBuilder.ts +0 -55
  26. package/src/core/Version.ts +0 -68
  27. package/src/core/definitions/AccessLevel.ts +0 -3
  28. package/src/core/errors/ImplementationNotFound.ts +0 -12
  29. package/src/core/errors/InvalidVersionNumber.ts +0 -12
  30. package/src/core/errors/MissingParameterValue.ts +0 -12
  31. package/src/core/errors/NotImplemented.ts +0 -12
  32. package/src/core/errors/ProcedureNotFound.ts +0 -12
  33. package/src/core/interfaces/Runner.ts +0 -7
  34. package/src/core/reflection/ParameterParser.ts +0 -74
  35. package/src/core/reflection/ReflectionHelper.ts +0 -118
  36. package/src/core/reflection/models/ReflectionField.ts +0 -22
  37. package/src/core/reflection/models/ReflectionParameter.ts +0 -18
  38. package/src/core/types/Component.ts +0 -8
  39. package/src/core/types/FlexObject.ts +0 -4
  40. package/src/core/types/Module.ts +0 -6
  41. package/src/core/types/SegmentImplementation.ts +0 -9
  42. package/src/core/types/SegmentModule.ts +0 -9
  43. package/src/core/types/SegmentProcedure.ts +0 -11
  44. package/src/core/utils/FqnBuilder.ts +0 -11
  45. package/src/hooks.ts +0 -2
  46. package/src/lib.ts +0 -7
  47. package/src/runtime/ClientId.ts +0 -18
  48. package/src/runtime/Gateway.ts +0 -18
  49. package/src/runtime/LocalGateway.ts +0 -93
  50. package/src/runtime/LocalNode.ts +0 -130
  51. package/src/runtime/LocalRepository.ts +0 -154
  52. package/src/runtime/Node.ts +0 -15
  53. package/src/runtime/NodeBalancer.ts +0 -61
  54. package/src/runtime/NodeMonitor.ts +0 -63
  55. package/src/runtime/Proxy.ts +0 -60
  56. package/src/runtime/Remote.ts +0 -157
  57. package/src/runtime/RemoteGateway.ts +0 -40
  58. package/src/runtime/RemoteNode.ts +0 -49
  59. package/src/runtime/RemoteRepository.ts +0 -60
  60. package/src/runtime/Repository.ts +0 -20
  61. package/src/runtime/Runtime.ts +0 -47
  62. package/src/runtime/caching/CacheBuilder.ts +0 -424
  63. package/src/runtime/caching/ImportRewriter.ts +0 -76
  64. package/src/runtime/caching/RemoteBuilder.ts +0 -51
  65. package/src/runtime/caching/SourceAppender.ts +0 -57
  66. package/src/runtime/caching/definitions/Keywords.ts +0 -3
  67. package/src/runtime/caching/errors/InvalidSegmentFilename.ts +0 -8
  68. package/src/runtime/caching/errors/MissingModuleExport.ts +0 -8
  69. package/src/runtime/caching/errors/SegmentFileNotLoaded.ts +0 -8
  70. package/src/runtime/caching/errors/SegmentModuleNotLoaded.ts +0 -8
  71. package/src/runtime/caching/models/ApplicationModule.ts +0 -30
  72. package/src/runtime/caching/models/Implementation.ts +0 -41
  73. package/src/runtime/caching/models/Procedure.ts +0 -26
  74. package/src/runtime/caching/models/Segment.ts +0 -28
  75. package/src/runtime/caching/models/SegmentModule.ts +0 -26
  76. package/src/runtime/caching/types/SegmentFile.ts +0 -6
  77. package/src/runtime/caching/types/SegmentImportProperties.ts +0 -9
  78. package/src/runtime/caching/types/SegmentImports.ts +0 -6
  79. package/src/runtime/errors/ClientNotFound.ts +0 -12
  80. package/src/runtime/errors/FileNotFound.ts +0 -12
  81. package/src/runtime/errors/InvalidClientId.ts +0 -12
  82. package/src/runtime/errors/InvalidJitarHooks.ts +0 -12
  83. package/src/runtime/errors/InvalidSegmentFile.ts +0 -12
  84. package/src/runtime/errors/ModuleNotLoaded.ts +0 -12
  85. package/src/runtime/errors/NoNodeAvailable.ts +0 -12
  86. package/src/runtime/errors/RepositoryNotAvaiable.ts +0 -12
  87. package/src/runtime/errors/RuntimeNotAvailable.ts +0 -12
  88. package/src/runtime/errors/SegmentNotFound.ts +0 -12
  89. package/src/runtime/hooks/dependencies.ts +0 -19
  90. package/src/runtime/hooks/runtime.ts +0 -25
  91. package/src/runtime/interfaces/FileManager.ts +0 -19
  92. package/src/runtime/interfaces/HealthCheck.ts +0 -5
  93. package/src/runtime/interfaces/ProcedureContainer.ts +0 -9
  94. package/src/runtime/models/File.ts +0 -22
  95. package/src/runtime/serialization/ArraySerializer.ts +0 -27
  96. package/src/runtime/serialization/ClassSerializer.ts +0 -133
  97. package/src/runtime/serialization/MapSerializer.ts +0 -60
  98. package/src/runtime/serialization/ObjectSerializer.ts +0 -42
  99. package/src/runtime/serialization/SetSerializer.ts +0 -42
  100. package/src/runtime/serialization/ValueSerializer.ts +0 -81
  101. package/src/runtime/serialization/errors/ClassNotFound.ts +0 -12
  102. package/src/runtime/serialization/errors/InvalidClass.ts +0 -12
  103. package/src/runtime/serialization/errors/InvalidPropertyType.ts +0 -12
  104. package/src/runtime/serialization/interfaces/Serializer.ts +0 -10
  105. package/src/runtime/serialization/types/SerializableObject.ts +0 -6
  106. package/src/runtime/serialization/types/Serialized.ts +0 -8
  107. package/src/runtime/serialization/types/SerializedClass.ts +0 -13
  108. package/src/runtime/serialization/types/SerializedMap.ts +0 -13
  109. package/src/runtime/serialization/types/SerializedObject.ts +0 -4
  110. package/src/runtime/serialization/types/SerializedSet.ts +0 -9
  111. package/src/runtime/types/JitarHooks.ts +0 -10
  112. package/src/runtime/types/ModuleImporter.ts +0 -6
  113. package/src/runtime/utils/ModuleAnalyser.ts +0 -60
  114. package/src/runtime/utils/ModuleLoader.ts +0 -51
  115. package/src/runtime/utils/UrlRewriter.ts +0 -59
  116. package/src/server/JitarServer.ts +0 -161
  117. package/src/server/configuration/GatewayConfiguration.ts +0 -9
  118. package/src/server/configuration/NodeConfiguration.ts +0 -15
  119. package/src/server/configuration/ProxyConfiguration.ts +0 -16
  120. package/src/server/configuration/RepositoryConfiguration.ts +0 -17
  121. package/src/server/configuration/RuntimeConfiguration.ts +0 -30
  122. package/src/server/configuration/ServerOptions.ts +0 -14
  123. package/src/server/configuration/StandaloneConfiguration.ts +0 -21
  124. package/src/server/controllers/AssetsController.ts +0 -59
  125. package/src/server/controllers/HealthController.ts +0 -41
  126. package/src/server/controllers/JitarController.ts +0 -18
  127. package/src/server/controllers/ModulesController.ts +0 -77
  128. package/src/server/controllers/NodesController.ts +0 -58
  129. package/src/server/controllers/ProceduresController.ts +0 -31
  130. package/src/server/controllers/ProxyController.ts +0 -38
  131. package/src/server/controllers/RPCController.ts +0 -173
  132. package/src/server/definitions/RuntimeDefaults.ts +0 -10
  133. package/src/server/errors/MissingConfigurationValue.ts +0 -8
  134. package/src/server/errors/RuntimeNotAvaiable.ts +0 -8
  135. package/src/server/errors/UnknownRuntimeMode.ts +0 -8
  136. package/src/server/models/HealthDto.ts +0 -11
  137. package/src/server/models/NodeDto.ts +0 -11
  138. package/src/server/utils/DataConverter.ts +0 -15
  139. package/src/server/utils/LocalFileManager.ts +0 -122
  140. package/src/server/utils/RuntimeConfigurationLoader.ts +0 -19
  141. package/src/server/utils/RuntimeConfigurator.ts +0 -207
  142. package/src/server/utils/ServerOptionsReader.ts +0 -17
  143. package/src/server.ts +0 -16
  144. package/test/_fixtures/core/Implementation.fixture.ts +0 -33
  145. package/test/_fixtures/core/Procedure.fixture.ts +0 -33
  146. package/test/_fixtures/core/Segment.fixture.ts +0 -36
  147. package/test/_fixtures/core/SegmentBuilder.fixture.ts +0 -45
  148. package/test/_fixtures/core/Version.fixture.ts +0 -18
  149. package/test/_fixtures/core/reflection/ReflectionHelper.fixture.ts +0 -56
  150. package/test/_fixtures/runtime/LocalGateway.fixture.ts +0 -24
  151. package/test/_fixtures/runtime/LocalNode.fixture.ts +0 -16
  152. package/test/_fixtures/runtime/LocalRepository.fixture.ts +0 -73
  153. package/test/_fixtures/runtime/NodeBalancer.fixture.ts +0 -19
  154. package/test/_fixtures/runtime/NodeMonitor.fixture.ts +0 -34
  155. package/test/_fixtures/runtime/RemoteNode.fixture.ts +0 -8
  156. package/test/_fixtures/runtime/caching/ImportRewriter.fixture.ts +0 -81
  157. package/test/_fixtures/runtime/caching/RemoteBuilder.fixture.ts +0 -50
  158. package/test/_fixtures/runtime/caching/SourceAppender.fixture.ts +0 -35
  159. package/test/_fixtures/runtime/segments.ts +0 -78
  160. package/test/_fixtures/runtime/serialization/ValueSerializer.fixture.ts +0 -134
  161. package/test/_fixtures/runtime/utils/ModuleAnaliser.fixture.ts +0 -26
  162. package/test/core/Implementation.spec.ts +0 -89
  163. package/test/core/Procedure.spec.ts +0 -108
  164. package/test/core/Segment.spec.ts +0 -74
  165. package/test/core/SegmentBuilder.spec.ts +0 -39
  166. package/test/core/Version.spec.ts +0 -103
  167. package/test/core/errors/ErrorManager.spec.ts +0 -32
  168. package/test/core/reflection/ReflectionHelper.spec.ts +0 -128
  169. package/test/core/utils/FqnBuilder.spec.ts +0 -22
  170. package/test/runtime/ClientId.spec.ts +0 -43
  171. package/test/runtime/LocalGateway.spec.ts +0 -40
  172. package/test/runtime/LocalNode.spec.ts +0 -87
  173. package/test/runtime/LocalRepository.spec.ts +0 -50
  174. package/test/runtime/NodeBalancer.spec.ts +0 -39
  175. package/test/runtime/NodeMonitor.spec.ts +0 -31
  176. package/test/runtime/RemoteNode.spec.ts +0 -43
  177. package/test/runtime/caching/ImportRewriter.spec.ts +0 -68
  178. package/test/runtime/caching/RemoteBuilder.spec.ts +0 -21
  179. package/test/runtime/caching/SourceAppender.spec.ts +0 -31
  180. package/test/runtime/serialization/ValueSerializer.spec.ts +0 -203
  181. package/test/runtime/utils/ModuleAnalyser.spec.ts +0 -54
  182. package/test/runtime/utils/UrlRewriter.spec.ts +0 -57
  183. package/tsconfig.json +0 -23
@@ -1,51 +0,0 @@
1
-
2
- import * as AccessLevel from '../../core/definitions/AccessLevel.js';
3
- import ReflectionHelper from '../../core/reflection/ReflectionHelper.js';
4
-
5
- import Implementation from './models/Implementation.js';
6
- import SegmentModule from './models/SegmentModule.js';
7
- import * as Keywords from './definitions/Keywords.js';
8
-
9
- export default class RemoteBuilder
10
- {
11
- static build(module: SegmentModule): string
12
- {
13
- let code = this.#createRemoteImports();
14
-
15
- for (const [importKey, implementation] of module.implementations)
16
- {
17
- if (implementation.access !== AccessLevel.PUBLIC)
18
- {
19
- continue;
20
- }
21
-
22
- const asDefault = importKey === Keywords.DEFAULT;
23
-
24
- code += this.#createRemoteCode(implementation, asDefault);
25
- }
26
-
27
- return code;
28
- }
29
-
30
- static #createRemoteImports(): string
31
- {
32
- return `import { runProcedure } from "/jitar/hooks.js";\n`;
33
- }
34
-
35
- static #createRemoteCode(implementation: Implementation, asDefault: boolean): string
36
- {
37
- const parameters = ReflectionHelper.getFunctionParameters(implementation.executable as Function);
38
- const parameterNames = parameters.map(parameter => parameter.name);
39
-
40
- const procedureName = implementation.executable.name;
41
- const procedureFqn = implementation.fqn;
42
- const procedureVersion = implementation.version;
43
- const procedueParameters = parameterNames.join(', ');
44
- const procedureArguments = parameterNames.map(name => `'${name}': ${name}`).join(', ');
45
-
46
- const functionName = `\nexport ${asDefault ? `${Keywords.DEFAULT} ` : ''}async function ${procedureName}(${procedueParameters})`;
47
- const functionBody = `return runProcedure('${procedureFqn}', '${procedureVersion}', { ${procedureArguments} })`;
48
-
49
- return `${functionName} {\n\t${functionBody}\n}\n`;
50
- }
51
- }
@@ -1,57 +0,0 @@
1
-
2
- import ApplicationModule from './models/ApplicationModule.js';
3
- import * as Keywords from './definitions/Keywords.js';
4
-
5
- export default class SourceAppender
6
- {
7
- static append(module: ApplicationModule, code: string, filename: string): string
8
- {
9
- const classNames = this.#extractClassNames(module);
10
-
11
- if (classNames.length === 0)
12
- {
13
- return code;
14
- }
15
-
16
- const sourceCode = this.#createSourceCode(filename, classNames);
17
-
18
- return `${code}\n${sourceCode}`;
19
- }
20
-
21
- static #extractClassNames(module: ApplicationModule): string[]
22
- {
23
- const classes = module.classes;
24
- const names: string[] = [];
25
-
26
- for (const key of classes.keys())
27
- {
28
- const clazz = classes.get(key) as Function;
29
-
30
- if (clazz.name === '')
31
- {
32
- // The exported object does not have a name,
33
- // so we can't add the source properties.
34
- continue;
35
- }
36
-
37
- if (key !== Keywords.DEFAULT && key !== clazz.name)
38
- {
39
- // The object is being (re) exported under another name.
40
- // We need to skip this because we can't be sure the real
41
- // object is present in the module.
42
- continue;
43
- }
44
-
45
- names.push(clazz.name);
46
- }
47
-
48
- return names;
49
- }
50
-
51
- static #createSourceCode(filename: string, classNames: string[]): string
52
- {
53
- const codes = classNames.map(className => `${className}.source = '${filename}';`);
54
-
55
- return codes.join('\n');
56
- }
57
- }
@@ -1,3 +0,0 @@
1
-
2
- export const DEFAULT = 'default';
3
- export const JITAR = 'jitar';
@@ -1,8 +0,0 @@
1
-
2
- export default class InvalidSegmentFilename extends Error
3
- {
4
- constructor(filename: string)
5
- {
6
- super(`Segment filename '${filename}' is invalid`);
7
- }
8
- }
@@ -1,8 +0,0 @@
1
-
2
- export default class MissingModuleExport extends Error
3
- {
4
- constructor(filename: string, key: string)
5
- {
6
- super(`Module '${filename}' does not export '${key}'`);
7
- }
8
- }
@@ -1,8 +0,0 @@
1
-
2
- export default class SegmentFileNotLoaded extends Error
3
- {
4
- constructor(filename: string)
5
- {
6
- super(`Failed to load segment file '${filename}'`);
7
- }
8
- }
@@ -1,8 +0,0 @@
1
-
2
- export default class SegmentModuleNotLoaded extends Error
3
- {
4
- constructor(filename: string)
5
- {
6
- super(`Segment module could not be loaded from '${filename}'`);
7
- }
8
- }
@@ -1,30 +0,0 @@
1
-
2
- export default class ApplicationModule
3
- {
4
- #filename: string;
5
- #classes: Map<string, Function>;
6
- #functions: Map<string, Function>;
7
-
8
- constructor(filename: string, classes: Map<string, Function>, functions: Map<string, Function>)
9
- {
10
- this.#filename = filename;
11
- this.#classes = classes;
12
- this.#functions = functions;
13
- }
14
-
15
- get filename() { return this.#filename; }
16
-
17
- get classes() { return this.#classes; }
18
-
19
- get functions() { return this.#functions; }
20
-
21
- hasClasses()
22
- {
23
- return this.#classes.size > 0;
24
- }
25
-
26
- hasFunctions()
27
- {
28
- return this.#functions.size > 0;
29
- }
30
- }
@@ -1,41 +0,0 @@
1
-
2
- import Component from '../../../core/types/Component.js';
3
- import FqnBuilder from '../../../core/utils/FqnBuilder.js';
4
-
5
- let lastId = 0;
6
-
7
- export default class Implementation
8
- {
9
- #id: number;
10
- #module: string;
11
- #name: string;
12
- #fqn: string;
13
- #access: string;
14
- #version: string;
15
- #executable: Component;
16
-
17
- constructor(module: string, name: string, access: string, version: string, executable: Component)
18
- {
19
- this.#id = ++lastId;
20
- this.#module = module;
21
- this.#name = name;
22
- this.#fqn = FqnBuilder.build(module, name);
23
- this.#access = access;
24
- this.#version = version;
25
- this.#executable = executable;
26
- }
27
-
28
- get id() { return this.#id; }
29
-
30
- get module() { return this.#module; }
31
-
32
- get name() { return this.#name; }
33
-
34
- get fqn() { return this.#fqn; }
35
-
36
- get access() { return this.#access; }
37
-
38
- get version() { return this.#version; }
39
-
40
- get executable() { return this.#executable; }
41
- }
@@ -1,26 +0,0 @@
1
-
2
- import Implementation from './Implementation.js';
3
-
4
- export default class Procedure
5
- {
6
- #module: string;
7
- #name: string;
8
- #implementations: Implementation[] = [];
9
-
10
- constructor(module: string, name: string)
11
- {
12
- this.#module = module;
13
- this.#name = name;
14
- }
15
-
16
- get module() { return this.#module; }
17
-
18
- get name() { return this.#name; }
19
-
20
- get implementations() { return this.#implementations; }
21
-
22
- addImplementation(implementation: Implementation): void
23
- {
24
- this.#implementations.push(implementation);
25
- }
26
- }
@@ -1,28 +0,0 @@
1
-
2
- import Procedure from './Procedure.js';
3
- import SegmentModule from './SegmentModule.js';
4
-
5
- export default class Segment
6
- {
7
- #filename: string;
8
- #modules: SegmentModule[];
9
- #procedures: Map<string, Procedure>;
10
-
11
- constructor(filename: string, modules: SegmentModule[], procedures: Map<string, Procedure>)
12
- {
13
- this.#filename = filename;
14
- this.#modules = modules;
15
- this.#procedures = procedures;
16
- }
17
-
18
- get filename() { return this.#filename; }
19
-
20
- get modules() { return this.#modules; }
21
-
22
- get procedures() { return this.#procedures; }
23
-
24
- getFilenames()
25
- {
26
- return this.#modules.map((module: SegmentModule) => module.filename);
27
- }
28
- }
@@ -1,26 +0,0 @@
1
-
2
- import Module from '../../../core/types/Module.js';
3
-
4
- import Implementation from './Implementation.js';
5
-
6
- export default class SegmentModule
7
- {
8
- #filename: string;
9
- #exports: Module;
10
- #implementations: Map<string, Implementation>;
11
-
12
- constructor(filename: string, exports: Module, implementations: Map<string, Implementation>)
13
- {
14
- this.#filename = filename;
15
- this.#exports = exports;
16
- this.#implementations = implementations;
17
- }
18
-
19
- get filename() { return this.#filename; }
20
-
21
- get exports() { return this.#exports; }
22
-
23
- get implementations() { return this.#implementations; }
24
-
25
- getImportKeys() { return [...this.#implementations.keys()]; }
26
- }
@@ -1,6 +0,0 @@
1
-
2
- import SegmentImports from './SegmentImports.js';
3
-
4
- type SegmentFile = {[key: string]: SegmentImports };
5
-
6
- export default SegmentFile;
@@ -1,9 +0,0 @@
1
-
2
- type SegmentImportProperties =
3
- {
4
- as?: string;
5
- access?: string;
6
- version?: string;
7
- }
8
-
9
- export default SegmentImportProperties;
@@ -1,6 +0,0 @@
1
-
2
- import SegmentImportProperties from './SegmentImportProperties.js';
3
-
4
- type SegmentImports = {[key: string]: SegmentImportProperties };
5
-
6
- export default SegmentImports;
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class ClientNotFound extends Error
5
- {
6
- constructor(clientId: string)
7
- {
8
- super(`Client found for id '${clientId}'`);
9
- }
10
- }
11
-
12
- (ClientNotFound as Component).source = '/jitar/runtime/errors/ClientNotFound.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class FileNotFound extends Error
5
- {
6
- constructor(filename: string)
7
- {
8
- super(`The file '${filename} could not be found'`);
9
- }
10
- }
11
-
12
- (FileNotFound as Component).source = '/jitar/runtime/errors/FileNotFound.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class InvalidClientId extends Error
5
- {
6
- constructor(clientId: string)
7
- {
8
- super(`Invalid client id '${clientId}'`);
9
- }
10
- }
11
-
12
- (InvalidClientId as Component).source = '/jitar/runtime/errors/InvalidClientId.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class InvalidJitarHooks extends Error
5
- {
6
- constructor()
7
- {
8
- super(`Invalid Jitar hooks`);
9
- }
10
- }
11
-
12
- (InvalidJitarHooks as Component).source = '/jitar/runtime/errors/InvalidJitarHooks.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class InvalidSegmentFile extends Error
5
- {
6
- constructor(filename: string)
7
- {
8
- super(`Missing files array in segment file '${filename}'`);
9
- }
10
- }
11
-
12
- (InvalidSegmentFile as Component).source = '/jitar/runtime/errors/InvalidSegmentFile.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class ModuleNotLoaded extends Error
5
- {
6
- constructor(url: string, message?: string)
7
- {
8
- super(`Module '${url}' could not be loaded${message !== undefined ? ` | ${message}` : ''}`);
9
- }
10
- }
11
-
12
- (ModuleNotLoaded as Component).source = '/jitar/runtime/errors/ModuleNotLoaded.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class NoNodeAvailable extends Error
5
- {
6
- constructor(name: string)
7
- {
8
- super(`No node available for procedure '${name}'`);
9
- }
10
- }
11
-
12
- (NoNodeAvailable as Component).source = '/jitar/runtime/errors/NoNodeAvailable.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class RepositoryNotAvailable extends Error
5
- {
6
- constructor()
7
- {
8
- super(`Repository not available`);
9
- }
10
- }
11
-
12
- (RepositoryNotAvailable as Component).source = '/jitar/runtime/errors/RepositoryNotAvailable.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class RuntimeNotAvailable extends Error
5
- {
6
- constructor()
7
- {
8
- super(`Runtime not available`);
9
- }
10
- }
11
-
12
- (RuntimeNotAvailable as Component).source = '/jitar/runtime/errors/RuntimeNotAvailable.js';
@@ -1,12 +0,0 @@
1
-
2
- import Component from '../../core/types/Component.js';
3
-
4
- export default class SegmentNotFound extends Error
5
- {
6
- constructor(source: string)
7
- {
8
- super(`Segment found for '${source}'`);
9
- }
10
- }
11
-
12
- (SegmentNotFound as Component).source = '/jitar/runtime/errors/SegmentNotFound.js';
@@ -1,19 +0,0 @@
1
-
2
- // The default loader is used by the local repository
3
- // and gets overridden by the remote repository
4
-
5
- import ModuleLoader from '../utils/ModuleLoader.js';
6
-
7
- let _loader: Function = ModuleLoader.import;
8
-
9
- export function setDependencyLoader(loader: Function): void
10
- {
11
- _loader = loader;
12
- }
13
-
14
- export async function getDependency(name: string): Promise<unknown>
15
- {
16
- const module = await _loader(name);
17
-
18
- return module.default !== undefined ? module.default : module;
19
- }
@@ -1,25 +0,0 @@
1
-
2
- import Version from '../../core/Version.js';
3
-
4
- import RuntimeNotAvailable from '../errors/RuntimeNotAvailable.js';
5
- import LocalNode from '../LocalNode.js';
6
-
7
- let _runtime: LocalNode;
8
-
9
- export function setRuntime(runtime: LocalNode): void
10
- {
11
- _runtime = runtime;
12
- }
13
-
14
- export async function runProcedure(fqn: string, versionNumber: string, args: object): Promise<unknown>
15
- {
16
- if (_runtime === undefined)
17
- {
18
- throw new RuntimeNotAvailable();
19
- }
20
-
21
- const version = Version.parse(versionNumber);
22
- const argsMap = new Map<string, unknown>(Object.entries(args));
23
-
24
- return _runtime.run(fqn, version, argsMap);
25
- }
@@ -1,19 +0,0 @@
1
-
2
- import File from '../models/File.js';
3
-
4
- export default interface FileManager
5
- {
6
- getRootLocation(): string;
7
-
8
- getAbsoluteLocation(filename: string): string;
9
-
10
- getRelativeLocation(filename: string): string;
11
-
12
- getType(filename: string): Promise<string>;
13
-
14
- getContent(filename: string): Promise<Buffer | string>;
15
-
16
- load(filename: string): Promise<File>;
17
-
18
- store(filename: string, content: string): Promise<void>;
19
- }
@@ -1,5 +0,0 @@
1
-
2
- export default interface HealthCheck
3
- {
4
- isHealthy(): Promise<boolean>;
5
- }
@@ -1,9 +0,0 @@
1
-
2
- import Runner from '../../core/interfaces/Runner.js';
3
-
4
- export default interface ProcedureContainer extends Runner
5
- {
6
- getProcedureNames(): string[];
7
-
8
- hasProcedure(name: string): boolean;
9
- }
@@ -1,22 +0,0 @@
1
-
2
- export default class File
3
- {
4
- #location: string;
5
- #type: string;
6
- #content: Buffer | string;
7
-
8
- constructor(location: string, type: string, content: Buffer | string)
9
- {
10
- this.#location = location;
11
- this.#type = type;
12
- this.#content = content;
13
- }
14
-
15
- get location() { return this.#location; }
16
-
17
- get type() { return this.#type; }
18
-
19
- get content() { return this.#content; }
20
-
21
- get size() { return this.#content.length; }
22
- }
@@ -1,27 +0,0 @@
1
-
2
- import Serializer from './interfaces/Serializer.js';
3
- import ValueSerializer from './ValueSerializer.js';
4
-
5
- class ArraySerializer implements Serializer
6
- {
7
- serialize(array: unknown[]): unknown[]
8
- {
9
- const values: unknown[] = [];
10
-
11
- for (const value of array)
12
- {
13
- values.push(ValueSerializer.serialize(value));
14
- }
15
-
16
- return values;
17
- }
18
-
19
- async deserialize(values: unknown[]): Promise<unknown[]>
20
- {
21
- return await Promise.all(values.map(async (value) => await ValueSerializer.deserialize(value)));
22
- }
23
- }
24
-
25
- const instance = new ArraySerializer();
26
-
27
- export default instance;