javonet-nodejs-sdk 2.5.16 → 2.5.18

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 (204) hide show
  1. package/dist/core/delegatesCache/DelegatesCache.cjs +1 -5
  2. package/dist/core/handler/AbstractHandler.cjs +24 -9
  3. package/dist/core/handler/ArrayGetItemHandler.cjs +5 -4
  4. package/dist/core/handler/ArrayGetRankHandler.cjs +4 -3
  5. package/dist/core/handler/ArrayGetSizeHandler.cjs +4 -3
  6. package/dist/core/handler/ArrayHandler.cjs +3 -0
  7. package/dist/core/handler/ArraySetItemHandler.cjs +5 -4
  8. package/dist/core/handler/CastingHandler.cjs +3 -1
  9. package/dist/core/handler/ConvertTypeHandler.cjs +4 -4
  10. package/dist/core/handler/CreateClassInstanceHandler.cjs +6 -5
  11. package/dist/core/handler/DestructReferenceHandler.cjs +3 -0
  12. package/dist/core/handler/EnableNamespaceHandler.cjs +3 -0
  13. package/dist/core/handler/EnableTypeHandler.cjs +4 -3
  14. package/dist/core/handler/GetGlobalStaticFieldHandler.cjs +4 -3
  15. package/dist/core/handler/GetInstanceFieldHandler.cjs +4 -3
  16. package/dist/core/handler/GetInstanceMethodAsDelegateHandler.cjs +15 -4
  17. package/dist/core/handler/GetStaticFieldHandler.cjs +5 -3
  18. package/dist/core/handler/GetStaticMethodAsDelegateHandler.cjs +10 -10
  19. package/dist/core/handler/GetTypeHandler.cjs +10 -2
  20. package/dist/core/handler/Handler.cjs +8 -11
  21. package/dist/core/handler/InvokeGlobalFunctionHandler.cjs +4 -3
  22. package/dist/core/handler/InvokeInstanceMethodHandler.cjs +4 -3
  23. package/dist/core/handler/InvokeStaticMethodHandler.cjs +4 -3
  24. package/dist/core/handler/LoadLibraryHandler.cjs +11 -10
  25. package/dist/core/handler/PassDelegateHandler.cjs +2 -4
  26. package/dist/core/handler/SetGlobalStaticFieldHandler.cjs +4 -3
  27. package/dist/core/handler/SetInstanceFieldHandler.cjs +4 -3
  28. package/dist/core/handler/SetStaticFieldHandler.cjs +4 -3
  29. package/dist/core/handler/ValueHandler.cjs +4 -0
  30. package/dist/core/interpreter/Interpreter.cjs +29 -17
  31. package/dist/core/namespaceCache/NamespaceCache.cjs +19 -10
  32. package/dist/core/protocol/CommandDeserializer.cjs +10 -2
  33. package/dist/core/protocol/CommandSerializer.cjs +24 -4
  34. package/dist/core/protocol/TypeDeserializer.cjs +35 -0
  35. package/dist/core/protocol/TypeSerializer.cjs +51 -7
  36. package/dist/core/receiver/Receiver.cjs +3 -5
  37. package/dist/core/receiver/ReceiverNative.cjs +6 -0
  38. package/dist/core/transmitter/Transmitter.cjs +19 -5
  39. package/dist/core/transmitter/TransmitterWebsocket.cjs +8 -5
  40. package/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -1
  41. package/dist/core/transmitter/TransmitterWrapper.cjs +25 -8
  42. package/dist/core/typeCache/TypeCache.cjs +15 -10
  43. package/dist/core/webSocketClient/WebSocketClient.cjs +22 -12
  44. package/dist/core/webSocketClient/WebSocketClientBrowser.cjs +2 -2
  45. package/dist/sdk/ConfigRuntimeFactory.cjs +92 -98
  46. package/dist/sdk/InvocationContext.cjs +229 -203
  47. package/dist/sdk/Javonet.cjs +14 -33
  48. package/dist/sdk/RuntimeContext.cjs +138 -99
  49. package/dist/sdk/RuntimeFactory.cjs +3 -0
  50. package/dist/sdk/tools/ActivationHelper.cjs +66 -0
  51. package/dist/sdk/tools/JsonResolver.cjs +214 -0
  52. package/dist/types/core/handler/AbstractHandler.d.ts +23 -4
  53. package/dist/types/core/handler/ArrayGetItemHandler.d.ts +8 -1
  54. package/dist/types/core/handler/ArrayGetRankHandler.d.ts +8 -1
  55. package/dist/types/core/handler/ArrayGetSizeHandler.d.ts +8 -1
  56. package/dist/types/core/handler/ArrayHandler.d.ts +8 -1
  57. package/dist/types/core/handler/ArraySetItemHandler.d.ts +8 -1
  58. package/dist/types/core/handler/CastingHandler.d.ts +4 -0
  59. package/dist/types/core/handler/ConvertTypeHandler.d.ts +8 -4
  60. package/dist/types/core/handler/CreateClassInstanceHandler.d.ts +8 -1
  61. package/dist/types/core/handler/DestructReferenceHandler.d.ts +8 -1
  62. package/dist/types/core/handler/EnableNamespaceHandler.d.ts +8 -1
  63. package/dist/types/core/handler/EnableTypeHandler.d.ts +8 -1
  64. package/dist/types/core/handler/GetGlobalStaticFieldHandler.d.ts +8 -1
  65. package/dist/types/core/handler/GetInstanceFieldHandler.d.ts +8 -1
  66. package/dist/types/core/handler/GetStaticFieldHandler.d.ts +9 -1
  67. package/dist/types/core/handler/GetStaticMethodAsDelegateHandler.d.ts +4 -3
  68. package/dist/types/core/handler/GetTypeHandler.d.ts +17 -8
  69. package/dist/types/core/handler/Handler.d.ts +8 -8
  70. package/dist/types/core/handler/InvokeDelegateHandler.d.ts +4 -0
  71. package/dist/types/core/handler/InvokeGlobalFunctionHandler.d.ts +8 -1
  72. package/dist/types/core/handler/InvokeInstanceMethodHandler.d.ts +8 -1
  73. package/dist/types/core/handler/InvokeStaticMethodHandler.d.ts +8 -1
  74. package/dist/types/core/handler/LoadLibraryHandler.d.ts +8 -3
  75. package/dist/types/core/handler/SetGlobalStaticFieldHandler.d.ts +4 -0
  76. package/dist/types/core/handler/SetInstanceFieldHandler.d.ts +8 -1
  77. package/dist/types/core/handler/SetStaticFieldHandler.d.ts +8 -1
  78. package/dist/types/core/handler/ValueHandler.d.ts +9 -1
  79. package/dist/types/core/interpreter/Interpreter.d.ts +11 -10
  80. package/dist/types/core/namespaceCache/NamespaceCache.d.ts +17 -5
  81. package/dist/types/core/protocol/CommandDeserializer.d.ts +10 -3
  82. package/dist/types/core/protocol/CommandSerializer.d.ts +19 -2
  83. package/dist/types/core/protocol/TypeDeserializer.d.ts +46 -11
  84. package/dist/types/core/protocol/TypeSerializer.d.ts +53 -13
  85. package/dist/types/core/receiver/Receiver.d.ts +2 -2
  86. package/dist/types/core/receiver/ReceiverNative.d.ts +8 -2
  87. package/dist/types/core/transmitter/Transmitter.d.ts +20 -4
  88. package/dist/types/core/transmitter/TransmitterWebsocket.d.ts +8 -4
  89. package/dist/types/core/transmitter/TransmitterWebsocketBrowser.d.ts +4 -7
  90. package/dist/types/core/transmitter/TransmitterWrapper.d.ts +12 -3
  91. package/dist/types/core/typeCache/TypeCache.d.ts +15 -5
  92. package/dist/types/core/webSocketClient/WebSocketClient.d.ts +17 -21
  93. package/dist/types/sdk/ConfigRuntimeFactory.d.ts +9 -6
  94. package/dist/types/sdk/InvocationContext.d.ts +38 -6
  95. package/dist/types/sdk/Javonet.d.ts +12 -7
  96. package/dist/types/sdk/RuntimeContext.d.ts +23 -7
  97. package/dist/types/sdk/RuntimeFactory.d.ts +9 -2
  98. package/dist/types/sdk/tools/ActivationHelper.d.ts +20 -0
  99. package/dist/types/sdk/tools/JsonResolver.d.ts +87 -0
  100. package/dist/types/utils/Command.d.ts +18 -14
  101. package/dist/types/utils/CreateRequire.browser.d.ts +1 -0
  102. package/dist/types/utils/CreateRequire.node.d.ts +2 -0
  103. package/dist/types/utils/CustomError.d.ts +5 -1
  104. package/dist/types/utils/Runtime.d.ts +2 -3
  105. package/dist/types/utils/RuntimeNameHandler.d.ts +6 -2
  106. package/dist/types/utils/Type.d.ts +1 -0
  107. package/dist/types/utils/TypesHandler.d.ts +16 -0
  108. package/dist/types/utils/UtilsConst.d.ts +32 -0
  109. package/dist/types/utils/connectionData/IConnectionData.d.ts +16 -3
  110. package/dist/types/utils/connectionData/InMemoryConnectionData.d.ts +4 -3
  111. package/dist/types/utils/connectionData/WsConnectionData.d.ts +7 -10
  112. package/dist/types/utils/nodejs/connectionData/TcpConnectionData.d.ts +17 -10
  113. package/dist/utils/Command.cjs +9 -9
  114. package/dist/utils/CreateRequire.browser.cjs +30 -0
  115. package/dist/utils/CreateRequire.node.cjs +28 -0
  116. package/dist/utils/CustomError.cjs +4 -0
  117. package/dist/utils/Runtime.cjs +24 -18
  118. package/dist/utils/RuntimeLogger.cjs +2 -4
  119. package/dist/utils/RuntimeLoggerBrowser.cjs +1 -3
  120. package/dist/utils/RuntimeNameHandler.cjs +1 -1
  121. package/dist/utils/Type.cjs +2 -1
  122. package/dist/utils/TypesHandler.cjs +55 -0
  123. package/dist/utils/UtilsConst.cjs +101 -0
  124. package/dist/utils/connectionData/IConnectionData.cjs +9 -0
  125. package/dist/utils/connectionData/InMemoryConnectionData.cjs +10 -0
  126. package/dist/utils/connectionData/WsConnectionData.cjs +4 -0
  127. package/dist/utils/nodejs/connectionData/TcpConnectionData.cjs +45 -25
  128. package/lib/core/delegatesCache/DelegatesCache.js +1 -0
  129. package/lib/core/handler/AbstractHandler.js +27 -9
  130. package/lib/core/handler/ArrayGetItemHandler.js +9 -1
  131. package/lib/core/handler/ArrayGetRankHandler.js +9 -0
  132. package/lib/core/handler/ArrayGetSizeHandler.js +8 -0
  133. package/lib/core/handler/ArrayHandler.js +8 -0
  134. package/lib/core/handler/ArraySetItemHandler.js +11 -1
  135. package/lib/core/handler/CastingHandler.js +8 -1
  136. package/lib/core/handler/ConvertTypeHandler.js +9 -4
  137. package/lib/core/handler/CreateClassInstanceHandler.js +10 -4
  138. package/lib/core/handler/DestructReferenceHandler.js +8 -0
  139. package/lib/core/handler/EnableNamespaceHandler.js +8 -0
  140. package/lib/core/handler/EnableTypeHandler.js +8 -0
  141. package/lib/core/handler/GetGlobalStaticFieldHandler.js +9 -0
  142. package/lib/core/handler/GetInstanceFieldHandler.js +8 -0
  143. package/lib/core/handler/GetInstanceMethodAsDelegateHandler.js +9 -4
  144. package/lib/core/handler/GetStaticFieldHandler.js +9 -0
  145. package/lib/core/handler/GetStaticMethodAsDelegateHandler.js +8 -7
  146. package/lib/core/handler/GetTypeHandler.js +15 -5
  147. package/lib/core/handler/Handler.js +13 -18
  148. package/lib/core/handler/InvokeDelegateHandler.js +5 -0
  149. package/lib/core/handler/InvokeGlobalFunctionHandler.js +11 -1
  150. package/lib/core/handler/InvokeInstanceMethodHandler.js +8 -0
  151. package/lib/core/handler/InvokeStaticMethodHandler.js +8 -0
  152. package/lib/core/handler/LoadLibraryHandler.js +11 -0
  153. package/lib/core/handler/SetGlobalStaticFieldHandler.js +10 -0
  154. package/lib/core/handler/SetInstanceFieldHandler.js +7 -0
  155. package/lib/core/handler/SetStaticFieldHandler.js +8 -0
  156. package/lib/core/handler/ValueHandler.js +9 -0
  157. package/lib/core/interpreter/Interpreter.js +42 -24
  158. package/lib/core/namespaceCache/NamespaceCache.js +14 -0
  159. package/lib/core/protocol/CommandDeserializer.js +11 -2
  160. package/lib/core/protocol/CommandSerializer.js +40 -9
  161. package/lib/core/protocol/TypeDeserializer.js +36 -0
  162. package/lib/core/protocol/TypeSerializer.js +62 -7
  163. package/lib/core/receiver/Receiver.js +3 -2
  164. package/lib/core/receiver/ReceiverNative.js +8 -0
  165. package/lib/core/transmitter/Transmitter.js +18 -1
  166. package/lib/core/transmitter/TransmitterWebsocket.js +12 -5
  167. package/lib/core/transmitter/TransmitterWebsocketBrowser.js +2 -4
  168. package/lib/core/transmitter/TransmitterWrapper.js +27 -6
  169. package/lib/core/typeCache/TypeCache.js +9 -0
  170. package/lib/core/webSocketClient/WebSocketClient.js +33 -30
  171. package/lib/core/webSocketClient/WebSocketClientBrowser.js +5 -6
  172. package/lib/sdk/ConfigRuntimeFactory.js +70 -68
  173. package/lib/sdk/InvocationContext.js +94 -26
  174. package/lib/sdk/Javonet.js +18 -36
  175. package/lib/sdk/RuntimeContext.js +109 -29
  176. package/lib/sdk/RuntimeFactory.js +7 -0
  177. package/lib/sdk/tools/ActivationHelper.js +51 -0
  178. package/lib/sdk/tools/JsonResolver.js +226 -0
  179. package/lib/types.d.ts +57 -0
  180. package/lib/utils/Command.js +14 -9
  181. package/lib/utils/CreateRequire.browser.js +5 -0
  182. package/lib/utils/CreateRequire.node.js +3 -0
  183. package/lib/utils/CustomError.js +5 -0
  184. package/lib/utils/Runtime.js +25 -6
  185. package/lib/utils/RuntimeLogger.js +3 -0
  186. package/lib/utils/RuntimeNameHandler.js +6 -1
  187. package/lib/utils/Type.js +2 -1
  188. package/lib/utils/TypesHandler.js +35 -0
  189. package/lib/utils/UtilsConst.js +88 -0
  190. package/lib/utils/connectionData/IConnectionData.js +14 -0
  191. package/lib/utils/connectionData/InMemoryConnectionData.js +15 -0
  192. package/lib/utils/connectionData/WsConnectionData.js +9 -0
  193. package/lib/utils/nodejs/connectionData/TcpConnectionData.js +35 -5
  194. package/package.json +13 -3
  195. package/dist/sdk/tools/browser/ConfigSourceResolver.cjs +0 -153
  196. package/dist/sdk/tools/nodejs/JsonFileResolver.cjs +0 -120
  197. package/dist/types/sdk/tools/browser/ConfigSourceResolver.d.ts +0 -46
  198. package/dist/types/sdk/tools/nodejs/JsonFileResolver.d.ts +0 -13
  199. package/dist/types/utils/nodejs/TypesConverter.d.ts +0 -48
  200. package/dist/utils/nodejs/TypesConverter.cjs +0 -102
  201. package/lib/declarations.d.ts +0 -35
  202. package/lib/sdk/tools/browser/ConfigSourceResolver.js +0 -146
  203. package/lib/sdk/tools/nodejs/JsonFileResolver.js +0 -106
  204. package/lib/utils/nodejs/TypesConverter.js +0 -91
@@ -1,146 +0,0 @@
1
- /**
2
- *
3
- * @param {object} obj
4
- * @param {string} key
5
- * @returns
6
- */
7
- function hasOwnProperty(obj, key) {
8
- return Object.prototype.hasOwnProperty.call(obj, key)
9
- }
10
-
11
- class ConfigSourceResolver {
12
- /**
13
- *
14
- * @param {object | string} configSource
15
- */
16
- constructor(configSource) {
17
- if (typeof configSource === 'string') {
18
- try {
19
- // Parse string as JSON
20
- this.jsonObject = JSON.parse(configSource)
21
- } catch (err) {
22
- throw new Error(
23
- `Failed to parse configSource as JSON: ${err instanceof Error ? err.message : 'Unknown error'}`
24
- )
25
- }
26
- } else if (configSource && typeof configSource === 'object') {
27
- // It's already an object
28
- this.jsonObject = configSource
29
- } else {
30
- throw new Error('configSource must be a JSON object or JSON string')
31
- }
32
- }
33
-
34
- getLicenseKey() {
35
- if (!hasOwnProperty(this.jsonObject, 'licenseKey')) {
36
- throw new Error(
37
- 'License key not found in configuration file. Please check your configuration file.'
38
- )
39
- }
40
- return this.jsonObject.licenseKey
41
- }
42
-
43
- getRuntimes() {
44
- return this.jsonObject.runtimes
45
- }
46
-
47
- /**
48
- * @param {string} runtimeName
49
- * @param {string} configName
50
- * @returns {any}
51
- */
52
- getRuntime(runtimeName, configName) {
53
- const runtimes = this.getRuntimes()
54
- if (hasOwnProperty(runtimes, runtimeName)) {
55
- // @ts-ignore
56
- const runtime = runtimes[runtimeName]
57
- if (Array.isArray(runtime)) {
58
- for (let item of runtime) {
59
- if (item.name === configName) {
60
- return item
61
- }
62
- }
63
- } else if (runtime?.name === configName) {
64
- return runtime
65
- }
66
- }
67
- throw new Error(
68
- `Runtime config ${configName} not found in configuration file for runtime ${runtimeName}. Please check your configuration file.`
69
- )
70
- }
71
-
72
- /**
73
- * @param {string} runtimeName
74
- * @param {string} configName
75
- * @returns {any}
76
- */
77
- getChannel(runtimeName, configName) {
78
- const runtime = this.getRuntime(runtimeName, configName)
79
- if (!hasOwnProperty(runtime, 'channel')) {
80
- throw new Error(
81
- `Channel key not found in configuration file for config ${configName}. Please check your configuration file.`
82
- )
83
- }
84
- return runtime.channel
85
- }
86
-
87
- /**
88
- * @param {string} runtimeName
89
- * @param {string} configName
90
- * @returns {any}
91
- */
92
- getChannelType(runtimeName, configName) {
93
- const channel = this.getChannel(runtimeName, configName)
94
- if (!hasOwnProperty(channel, 'type')) {
95
- throw new Error(
96
- `Channel type not found in configuration file for config ${configName}. Please check your configuration file.`
97
- )
98
- }
99
- return channel.type
100
- }
101
-
102
- /**
103
- * @param {string} runtimeName
104
- * @param {string} configName
105
- * @returns {any}
106
- */
107
- getChannelHost(runtimeName, configName) {
108
- const channel = this.getChannel(runtimeName, configName)
109
- if (!hasOwnProperty(channel, 'host')) {
110
- throw new Error(
111
- `Channel host not found in configuration file for config ${configName}. Please check your configuration file.`
112
- )
113
- }
114
- return channel.host
115
- }
116
-
117
- /**
118
- * @param {string} runtimeName
119
- * @param {string} configName
120
- * @returns {any}
121
- */
122
- getChannelPort(runtimeName, configName) {
123
- const channel = this.getChannel(runtimeName, configName)
124
- if (!hasOwnProperty(channel, 'port')) {
125
- throw new Error(
126
- `Channel port not found in configuration file for config ${configName}. Please check your configuration file.`
127
- )
128
- }
129
- return channel.port
130
- }
131
-
132
- /**
133
- * @param {string} runtimeName
134
- * @param {string} configName
135
- * @returns {any}
136
- */
137
- getModules(runtimeName, configName) {
138
- const runtime = this.getRuntime(runtimeName, configName)
139
- if (hasOwnProperty(runtime, 'modules')) {
140
- return runtime.modules
141
- }
142
- return ''
143
- }
144
- }
145
-
146
- export { ConfigSourceResolver }
@@ -1,106 +0,0 @@
1
- import { isNodejsRuntime, getRequire } from '../../../utils/Runtime.js'
2
-
3
- const requireDynamic = getRequire(import.meta.url)
4
-
5
- let fsExtra = null
6
-
7
- function hasOwnProperty(obj, key) {
8
- return Object.prototype.hasOwnProperty.call(obj, key)
9
- }
10
-
11
- export class JsonFileResolver {
12
- constructor(path) {
13
- this.path = path
14
- try {
15
- if (!fsExtra) {
16
- fsExtra = requireDynamic('fs-extra')
17
- }
18
- const data = fsExtra.readFileSync(this.path, 'utf8')
19
- this.jsonObject = JSON.parse(data)
20
- // eslint-disable-next-line no-unused-vars
21
- } catch (err) {
22
- throw err
23
- }
24
- }
25
-
26
- getLicenseKey() {
27
- if (!hasOwnProperty(this.jsonObject, 'licenseKey')) {
28
- throw new Error(
29
- 'License key not found in configuration file. Please check your configuration file.'
30
- )
31
- }
32
- return this.jsonObject.licenseKey
33
- }
34
-
35
- getRuntimes() {
36
- return this.jsonObject.runtimes
37
- }
38
-
39
- getRuntime(runtimeName, configName) {
40
- const runtimes = this.getRuntimes()
41
- if (hasOwnProperty(runtimes, runtimeName)) {
42
- const runtime = runtimes[runtimeName]
43
- if (Array.isArray(runtime)) {
44
- for (let item of runtime) {
45
- if (item.name === configName) {
46
- return item
47
- }
48
- }
49
- } else if (runtime.name === configName) {
50
- return runtime
51
- }
52
- }
53
- throw new Error(
54
- `Runtime config ${configName} not found in configuration file for runtime ${runtimeName}. Please check your configuration file.`
55
- )
56
- }
57
-
58
- getChannel(runtimeName, configName) {
59
- const runtime = this.getRuntime(runtimeName, configName)
60
- if (!hasOwnProperty(runtime, 'channel')) {
61
- throw new Error(
62
- `Channel key not found in configuration file for config ${configName}. Please check your configuration file.`
63
- )
64
- }
65
- return runtime.channel
66
- }
67
-
68
- getChannelType(runtimeName, configName) {
69
- const channel = this.getChannel(runtimeName, configName)
70
- if (!hasOwnProperty(channel, 'type')) {
71
- throw new Error(
72
- `Channel type not found in configuration file for config ${configName}. Please check your configuration file.`
73
- )
74
- }
75
- return channel.type
76
- }
77
-
78
- getChannelHost(runtimeName, configName) {
79
- const channel = this.getChannel(runtimeName, configName)
80
- if (!hasOwnProperty(channel, 'host')) {
81
- throw new Error(
82
- `Channel host not found in configuration file for config ${configName}. Please check your configuration file.`
83
- )
84
- }
85
- return channel.host
86
- }
87
-
88
- getChannelPort(runtimeName, configName) {
89
- const channel = this.getChannel(runtimeName, configName)
90
- if (!hasOwnProperty(channel, 'port')) {
91
- throw new Error(
92
- `Channel port not found in configuration file for config ${configName}. Please check your configuration file.`
93
- )
94
- }
95
- return channel.port
96
- }
97
-
98
- getModules(runtimeName, configName) {
99
- const runtime = this.getRuntime(runtimeName, configName)
100
- if (hasOwnProperty(runtime, 'modules')) {
101
- return runtime.modules
102
- }
103
- return ''
104
- }
105
- }
106
-
@@ -1,91 +0,0 @@
1
- /**
2
- * ConvertTypeHandler class handles the conversion of JType to Type.
3
- */
4
- class ConvertTypeHandler {
5
- constructor() {
6
- /**
7
- * Minimum required parameters count for the command.
8
- * @type {number}
9
- */
10
- this.requiredParametersCount = 1
11
- }
12
-
13
- /**
14
- * Processes the given command to convert JType to Type.
15
- * @param {Object} command - The command to process.
16
- * @returns {any} The converted type.
17
- */
18
- process(command) {
19
- this.validateCommand(command)
20
- return TypesConverter.convertJTypeToType(command.payload[0])
21
- }
22
-
23
- /**
24
- * Validates the command to ensure it has enough parameters.
25
- * @param {Object} command - The command to validate.
26
- */
27
- validateCommand(command) {
28
- if (command.payload.length < this.requiredParametersCount) {
29
- throw new Error('ConvertTypeHandler parameters mismatch')
30
- }
31
- }
32
- }
33
-
34
- /**
35
- * TypesConverter class provides utilities for converting between types.
36
- */
37
- class TypesConverter {
38
- /**
39
- * Converts a JavaScript type to a JType equivalent.
40
- * @param {Function} type - The JavaScript type.
41
- * @returns {number} The corresponding JType.
42
- */
43
- static convertTypeToJType(type) {
44
- switch (type) {
45
- case Boolean:
46
- return JType.Boolean
47
- case Number:
48
- return JType.Float // Assuming Number maps to Float
49
- case String:
50
- return JType.String
51
- case Object:
52
- return JType.Null // Assuming Object maps to Null
53
- default:
54
- return JType.Null
55
- }
56
- }
57
-
58
- /**
59
- * Converts a JType to a JavaScript type equivalent.
60
- * @param {number} type - The JType to convert.
61
- * @returns {Function} The corresponding JavaScript type.
62
- */
63
- static convertJTypeToType(type) {
64
- switch (type) {
65
- case JType.Boolean:
66
- return Boolean
67
- case JType.Float:
68
- return Number
69
- case JType.String:
70
- return String
71
- case JType.Null:
72
- return null
73
- default:
74
- return null
75
- }
76
- }
77
- }
78
-
79
- /**
80
- * Enum for JType mappings.
81
- * @readonly
82
- * @enum {number}
83
- */
84
- const JType = {
85
- Boolean: 1,
86
- Float: 2,
87
- String: 3,
88
- Null: 4,
89
- }
90
-
91
- export { ConvertTypeHandler, TypesConverter, JType }