@asyncapi/generator 3.2.1 → 3.2.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 (42) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/docs/api_components.md +39 -0
  3. package/lib/generator.js +0 -1
  4. package/lib/logMessages.js +6 -1
  5. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientClass.js +2 -0
  6. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/components/ClientClass.js.map +1 -1
  7. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/client.dart.js +2 -0
  8. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/template/client.dart.js.map +1 -1
  9. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/components/ClientClass.js +2 -1
  10. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/EchoWebSocket.js +4 -2
  11. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/EchoWebSocket.js.map +1 -1
  12. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js +4 -12
  13. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/template/src/main/java/com/asyncapi/client.java.js.map +1 -1
  14. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/EchoWebSocket.js +2 -3
  15. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js +2 -1
  16. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js.map +1 -1
  17. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js +1 -0
  18. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js.map +1 -1
  19. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/RegisterOutgoingProcessor.js +24 -0
  20. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/RegisterOutgoingProcessor.js.map +1 -0
  21. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/example.js +12 -0
  22. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/example.js.map +1 -1
  23. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js +16 -1
  24. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js.map +1 -1
  25. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/ClientClass.js +2 -0
  26. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/Constructor.js +1 -0
  27. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/RegisterOutgoingProcessor.js +17 -0
  28. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/example.js +9 -0
  29. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/ClientClass.js +3 -2
  30. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/ClientClass.js.map +1 -1
  31. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/client.py.js +3 -16
  32. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/client.py.js.map +1 -1
  33. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/ClientClass.js +2 -3
  34. package/lib/templates/config/validator.js +1 -1
  35. package/lib/utils.js +10 -8
  36. package/package.json +1 -1
  37. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/HandleError.js +0 -19
  38. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/components/HandleError.js.map +0 -1
  39. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/components/HandleError.js +0 -14
  40. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleError.js +0 -25
  41. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/components/HandleError.js.map +0 -1
  42. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/components/HandleError.js +0 -18
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @asyncapi/generator
2
2
 
3
+ ## 3.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - b43cd7c: Fix `fetchSpec` silently resolving on non-2xx HTTP responses. Previously, fetching an AsyncAPI document from a URL that returned a 4xx or 5xx status would resolve with the error response body (e.g. an HTML page) instead of rejecting. `fetchSpec` now throws a descriptive error including the URL and HTTP status code, so failures are surfaced immediately rather than propagating as invalid spec content.
8
+
3
9
  ## 3.2.1
4
10
 
5
11
  ### Patch Changes
@@ -21,6 +21,11 @@ weight: 77
21
21
 
22
22
  Renders a file header with metadata information such as title, version, protocol, host, and path.
23
23
 
24
+ * [HandleError](#HandleError) ⇒ `JSX.Element`<br/>
25
+
26
+ Renders the `handleError` (or framework-equivalent) method body that dispatches
27
+ an error to registered handlers (or logs it when none are registered).
28
+
24
29
  * [HandleMessage](#HandleMessage) ⇒ `JSX.Element`<br/>
25
30
 
26
31
  Renders a WebSocket message handler method with optional pre- and post-execution logic.
@@ -300,6 +305,40 @@ renderFileHeader().catch(console.error);
300
305
 
301
306
 
302
307
 
308
+ <a name="HandleError"></a>
309
+ ### HandleError()
310
+ Renders the &#x60;handleError&#x60; (or framework-equivalent) method body that dispatches
311
+ an error to registered handlers (or logs it when none are registered).
312
+
313
+
314
+ **Parameters**
315
+
316
+ | Name | Type | Description |
317
+ |------|------|-------------|
318
+ | props | `Object` | |
319
+ | props.language | `Language` | Target programming language. |
320
+ | props.framework | `string` | Framework discriminator (required for languages with multiple frameworks, e.g. &#x60;java&#x60; → &#x60;quarkus&#x60;). |
321
+
322
+
323
+
324
+ **Returns**
325
+
326
+ - `JSX.Element` - A &#x60;&lt;Text&gt;&#x60; block containing the rendered method.
327
+
328
+
329
+
330
+ **Example**
331
+
332
+ ```js
333
+ import { HandleError } from '@asyncapi/generator-components';
334
+
335
+ function renderHandleError() {
336
+ return <HandleError language='python' />;
337
+ }
338
+ ```
339
+
340
+
341
+
303
342
  <a name="HandleMessage"></a>
304
343
  ### HandleMessage()
305
344
  Renders a WebSocket message handler method with optional pre- and post-execution logic.
package/lib/generator.js CHANGED
@@ -347,7 +347,6 @@ class Generator {
347
347
  }
348
348
  if (this.output === 'fs') {
349
349
  await this.generateFile(this.asyncapi, path.basename(entrypointPath), path.dirname(entrypointPath));
350
- await this.launchHook('generate:after');
351
350
  } else if (this.output === 'string') {
352
351
  return await this.renderFile(this.asyncapi, entrypointPath);
353
352
  }
@@ -54,6 +54,10 @@ function compileEnabled(dir, output_dir) {
54
54
  return `Transpilation of files ${dir} into ${output_dir} started.`;
55
55
  }
56
56
 
57
+ function fetchSpecError(link, status, statusText) {
58
+ return `Failed to fetch AsyncAPI document from ${link}: HTTP ${status}${statusText}`;
59
+ }
60
+
57
61
  module.exports = {
58
62
  TEMPLATE_INSTALL_FLAG_MSG,
59
63
  TEMPLATE_INSTALL_DISK_MSG,
@@ -69,5 +73,6 @@ module.exports = {
69
73
  conditionalGenerationMatched,
70
74
  conditionalFilesMatched,
71
75
  compileEnabled,
72
- skipOverwrite
76
+ skipOverwrite,
77
+ fetchSpecError
73
78
  };
@@ -35,6 +35,8 @@ function ClientClass({
35
35
  language: "dart",
36
36
  methodName: "_handleMessage",
37
37
  methodParams: ['dynamic message', 'void Function(String) cb']
38
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleError, {
39
+ language: "dart"
38
40
  }), /*#__PURE__*/jsxRuntime.jsx(SendEchoMessage.SendEchoMessage, {}), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.CloseConnection, {
39
41
  language: "dart"
40
42
  }), /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
@@ -1 +1 @@
1
- {"version":3,"file":"ClientClass.js","sources":["../../../../../../../../packages/templates/clients/websocket/dart/components/ClientClass.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { SendEchoMessage } from './SendEchoMessage';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { ClientFields } from './ClientFields';\n\nexport function ClientClass({ clientName, serverUrl, title }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <ClientFields />\n <Constructor clientName={clientName} serverUrl={serverUrl} />\n <Connect language=\"dart\" title={title} />\n <RegisterMessageHandler \n language=\"dart\" \n methodParams={['void Function(String) handler']}\n />\n <RegisterErrorHandler\n language=\"dart\"\n methodParams={['void Function(Object) handler']}\n />\n <HandleMessage\n language=\"dart\" \n methodName=\"_handleMessage\"\n methodParams={['dynamic message', 'void Function(String) cb']}\n />\n <SendEchoMessage />\n <CloseConnection language=\"dart\" />\n <Text>\n {'}'}\n </Text>\n </Text>\n );\n}\n"],"names":["ClientClass","clientName","serverUrl","title","_jsxs","Text","children","_jsx","newLines","ClientFields","Constructor","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","methodName","SendEchoMessage","CloseConnection"],"mappings":";;;;;;;;;;;;AAMO,SAASA,WAAWA,CAAC;EAAEC,UAAU;EAAEC,SAAS;AAAEC,EAAAA,KAAAA;AAAM,CAAC,EAAE;EAC5D,oBACEC,eAAA,CAACC,sBAAI,EAAA;IAAAC,QAAA,EAAA,cACHC,cAAA,CAACF,sBAAI,EAAA;AAACG,MAAAA,QAAQ,EAAE,CAAE;MAAAF,QAAA,EACf,SAASL,UAAU,CAAA,EAAA,CAAA;KAChB,CAAC,eACPM,cAAA,CAACE,yBAAY,IAAE,CAAC,eAChBF,cAAA,CAACG,uBAAW,EAAA;AAACT,MAAAA,UAAU,EAAEA,UAAW;AAACC,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAE,CAAC,eAC7DK,cAAA,CAACI,2BAAO,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACT,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAE,CAAC,eACzCI,cAAA,CAACM,0CAAsB,EAAA;AACrBD,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFP,cAAA,CAACQ,wCAAoB,EAAA;AACnBH,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFP,cAAA,CAACS,iCAAa,EAAA;AACZJ,MAAAA,QAAQ,EAAC,MAAM;AACfK,MAAAA,UAAU,EAAC,gBAAgB;AAC3BH,MAAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,0BAA0B,CAAA;KAC7D,CAAC,eACFP,cAAA,CAACW,+BAAe,IAAE,CAAC,eACnBX,cAAA,CAACY,mCAAe,EAAA;AAACP,MAAAA,QAAQ,EAAC,MAAA;AAAM,KAAE,CAAC,eACnCL,cAAA,CAACF,sBAAI,EAAA;AAAAC,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"ClientClass.js","sources":["../../../../../../../../packages/templates/clients/websocket/dart/components/ClientClass.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { SendEchoMessage } from './SendEchoMessage';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, Connect, HandleMessage, HandleError } from '@asyncapi/generator-components';\nimport { ClientFields } from './ClientFields';\n\nexport function ClientClass({ clientName, serverUrl, title }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <ClientFields />\n <Constructor clientName={clientName} serverUrl={serverUrl} />\n <Connect language=\"dart\" title={title} />\n <RegisterMessageHandler \n language=\"dart\" \n methodParams={['void Function(String) handler']}\n />\n <RegisterErrorHandler\n language=\"dart\"\n methodParams={['void Function(Object) handler']}\n />\n <HandleMessage\n language=\"dart\" \n methodName=\"_handleMessage\"\n methodParams={['dynamic message', 'void Function(String) cb']}\n />\n <HandleError language=\"dart\" />\n <SendEchoMessage />\n <CloseConnection language=\"dart\" />\n <Text>\n {'}'}\n </Text>\n </Text>\n );\n}\n"],"names":["ClientClass","clientName","serverUrl","title","_jsxs","Text","children","_jsx","newLines","ClientFields","Constructor","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","methodName","HandleError","SendEchoMessage","CloseConnection"],"mappings":";;;;;;;;;;;;AAMO,SAASA,WAAWA,CAAC;EAAEC,UAAU;EAAEC,SAAS;AAAEC,EAAAA,KAAAA;AAAM,CAAC,EAAE;EAC5D,oBACEC,eAAA,CAACC,sBAAI,EAAA;IAAAC,QAAA,EAAA,cACHC,cAAA,CAACF,sBAAI,EAAA;AAACG,MAAAA,QAAQ,EAAE,CAAE;MAAAF,QAAA,EACf,SAASL,UAAU,CAAA,EAAA,CAAA;KAChB,CAAC,eACPM,cAAA,CAACE,yBAAY,IAAE,CAAC,eAChBF,cAAA,CAACG,uBAAW,EAAA;AAACT,MAAAA,UAAU,EAAEA,UAAW;AAACC,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAE,CAAC,eAC7DK,cAAA,CAACI,2BAAO,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACT,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAE,CAAC,eACzCI,cAAA,CAACM,0CAAsB,EAAA;AACrBD,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFP,cAAA,CAACQ,wCAAoB,EAAA;AACnBH,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFP,cAAA,CAACS,iCAAa,EAAA;AACZJ,MAAAA,QAAQ,EAAC,MAAM;AACfK,MAAAA,UAAU,EAAC,gBAAgB;AAC3BH,MAAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,0BAA0B,CAAA;AAAE,KAC/D,CAAC,eACFP,cAAA,CAACW,+BAAW,EAAA;AAACN,MAAAA,QAAQ,EAAC,MAAA;KAAQ,CAAC,eAC/BL,cAAA,CAACY,+BAAe,IAAE,CAAC,eACnBZ,cAAA,CAACa,mCAAe,EAAA;AAACR,MAAAA,QAAQ,EAAC,MAAA;AAAM,KAAE,CAAC,eACnCL,cAAA,CAACF,sBAAI,EAAA;AAAAC,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEX;;;;"}
@@ -76,6 +76,8 @@ function ClientClass({
76
76
  language: "dart",
77
77
  methodName: "_handleMessage",
78
78
  methodParams: ['dynamic message', 'void Function(String) cb']
79
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleError, {
80
+ language: "dart"
79
81
  }), /*#__PURE__*/jsxRuntime.jsx(SendEchoMessage, {}), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.CloseConnection, {
80
82
  language: "dart"
81
83
  }), /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
@@ -1 +1 @@
1
- {"version":3,"file":"client.dart.js","sources":["../../../../../../../../packages/templates/clients/websocket/dart/components/Constructor.js","../../../../../../../../packages/templates/clients/websocket/dart/components/SendEchoMessage.js","../../../../../../../../packages/templates/clients/websocket/dart/components/ClientFields.js","../../../../../../../../packages/templates/clients/websocket/dart/components/ClientClass.js","../../../../../../../../packages/templates/clients/websocket/dart/template/client.dart.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Constructor({ clientName, serverUrl }) {\n return (\n <Text newLines={2} indent={2}>\n {\n `\n/// Constructor to initialize the WebSocket client\n/// \n/// [url] - The WebSocket server URL. Use it if the server URL is different from the default one taken from the AsyncAPI document.\n${clientName}({String? url})\n : _url = url ?? '${serverUrl}';\n`}\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function SendEchoMessage() {\n return (\n <Text newLines={2} indent={2}>\n {\n `/// Method to send an echo message to the server\nvoid sendEchoMessage(dynamic message) {\n if (_channel == null) {\n print('Error: WebSocket is not connected.');\n return;\n }\n final payload = message is String ? message : jsonEncode(message);\n _channel!.sink.add(payload);\n print('Sent message to echo server: $payload');\n}`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ClientFields() {\n return (\n <Text indent={2} newLines={2}>\n {`final String _url;\nWebSocketChannel? _channel;\nfinal List<void Function(String)> _messageHandlers = [];\nfinal List<void Function(Object)> _errorHandlers = [];`}\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { SendEchoMessage } from './SendEchoMessage';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { ClientFields } from './ClientFields';\n\nexport function ClientClass({ clientName, serverUrl, title }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <ClientFields />\n <Constructor clientName={clientName} serverUrl={serverUrl} />\n <Connect language=\"dart\" title={title} />\n <RegisterMessageHandler \n language=\"dart\" \n methodParams={['void Function(String) handler']}\n />\n <RegisterErrorHandler\n language=\"dart\"\n methodParams={['void Function(Object) handler']}\n />\n <HandleMessage\n language=\"dart\" \n methodName=\"_handleMessage\"\n methodParams={['dynamic message', 'void Function(String) cb']}\n />\n <SendEchoMessage />\n <CloseConnection language=\"dart\" />\n <Text>\n {'}'}\n </Text>\n </Text>\n );\n}\n","import { File } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getInfo, getTitle } from '@asyncapi/generator-helpers';\nimport { FileHeaderInfo, DependencyProvider } from '@asyncapi/generator-components';\nimport { ClientClass } from '../components/ClientClass';\n\nexport default function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const title = getTitle(asyncapi);\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n return ( \n // The clientFileName default values can be found and modified under the package.json\n <File name={params.clientFileName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"dart\"\n />\n <DependencyProvider language=\"dart\" />\n <ClientClass clientName={clientName} serverUrl={serverUrl} title={title} />\n </File>\n );\n}\n"],"names":["Constructor","clientName","serverUrl","_jsx","Text","newLines","indent","children","SendEchoMessage","ClientFields","ClientClass","title","_jsxs","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","methodName","CloseConnection","asyncapi","params","server","getServer","servers","info","getInfo","getTitle","getClientName","appendClientSuffix","customClientName","getServerUrl","File","name","clientFileName","FileHeaderInfo","DependencyProvider"],"mappings":";;;;;;;;AAEO,SAASA,WAAWA,CAAC;EAAEC,UAAU;AAAEC,EAAAA,SAAAA;AAAU,CAAC,EAAE;EACrD,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEzB,CAAA;AACR;AACA;AACA;AACA,EAAEN,UAAU,CAAA;AACZ,mBAAA,EAAqBC,SAAS,CAAA;AAC9B,CAAA;AAAC,GACS,CAAC,CAAA;AAEX;;ACbO,SAASM,eAAeA,GAAG;EAChC,oBACEL,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEzB,CAAA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,CAAA;AAAE,GAEQ,CAAC,CAAA;AAEX;;ACjBO,SAASE,YAAYA,GAAG;EAC7B,oBACEN,cAAA,CAACC,sBAAI,EAAA;AAACE,IAAAA,MAAM,EAAE,CAAE;AAACD,IAAAA,QAAQ,EAAE,CAAE;AAAAE,IAAAA,QAAA,EAC1B,CAAA;AACP;AACA;AACA,sDAAA,CAAA;AAAuD,GAC7C,CAAC,CAAA;AAEX;;ACLO,SAASG,WAAWA,CAAC;EAAET,UAAU;EAAEC,SAAS;AAAES,EAAAA,KAAAA;AAAM,CAAC,EAAE;EAC5D,oBACEC,eAAA,CAACR,sBAAI,EAAA;IAAAG,QAAA,EAAA,cACHJ,cAAA,CAACC,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;MAAAE,QAAA,EACf,SAASN,UAAU,CAAA,EAAA,CAAA;KAChB,CAAC,eACPE,cAAA,CAACM,YAAY,IAAE,CAAC,eAChBN,cAAA,CAACH,WAAW,EAAA;AAACC,MAAAA,UAAU,EAAEA,UAAW;AAACC,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAE,CAAC,eAC7DC,cAAA,CAACU,2BAAO,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACH,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAE,CAAC,eACzCR,cAAA,CAACY,0CAAsB,EAAA;AACrBD,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFb,cAAA,CAACc,wCAAoB,EAAA;AACnBH,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFb,cAAA,CAACe,iCAAa,EAAA;AACZJ,MAAAA,QAAQ,EAAC,MAAM;AACfK,MAAAA,UAAU,EAAC,gBAAgB;AAC3BH,MAAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,0BAA0B,CAAA;KAC7D,CAAC,eACFb,cAAA,CAACK,eAAe,IAAE,CAAC,eACnBL,cAAA,CAACiB,mCAAe,EAAA;AAACN,MAAAA,QAAQ,EAAC,MAAA;AAAM,KAAE,CAAC,eACnCX,cAAA,CAACC,sBAAI,EAAA;AAAAG,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEX;;AC9Be,oBAAU,EAAA;EAAEc,QAAQ;AAAEC,EAAAA,MAAAA;AAAO,CAAC,EAAE;AAC7C,EAAA,MAAMC,MAAM,GAAGC,0BAAS,CAACH,QAAQ,CAACI,OAAO,EAAE,EAAEH,MAAM,CAACC,MAAM,CAAC,CAAA;AAC3D,EAAA,MAAMG,IAAI,GAAGC,wBAAO,CAACN,QAAQ,CAAC,CAAA;AAC9B,EAAA,MAAMV,KAAK,GAAGiB,yBAAQ,CAACP,QAAQ,CAAC,CAAA;AAChC,EAAA,MAAMpB,UAAU,GAAG4B,8BAAa,CAACR,QAAQ,EAAEC,MAAM,CAACQ,kBAAkB,EAAER,MAAM,CAACS,gBAAgB,CAAC,CAAA;AAC9F,EAAA,MAAM7B,SAAS,GAAG8B,6BAAY,CAACT,MAAM,CAAC,CAAA;AACtC,EAAA;AAAA;AACE;AACAX,IAAAA,eAAA,CAACqB,sBAAI,EAAA;MAACC,IAAI,EAAEZ,MAAM,CAACa,cAAe;MAAA5B,QAAA,EAAA,cAChCJ,cAAA,CAACiC,kCAAc,EAAA;AACbV,QAAAA,IAAI,EAAEA,IAAK;AACXH,QAAAA,MAAM,EAAEA,MAAO;AACfT,QAAAA,QAAQ,EAAC,MAAA;AAAM,OAChB,CAAC,eACFX,cAAA,CAACkC,sCAAkB,EAAA;AAACvB,QAAAA,QAAQ,EAAC,MAAA;AAAM,OAAE,CAAC,eACtCX,cAAA,CAACO,WAAW,EAAA;AAACT,QAAAA,UAAU,EAAEA,UAAW;AAACC,QAAAA,SAAS,EAAEA,SAAU;AAACS,QAAAA,KAAK,EAAEA,KAAAA;AAAM,OAAE,CAAC,CAAA;KACvE,CAAA;AAAC,IAAA;AAEX;;;;"}
1
+ {"version":3,"file":"client.dart.js","sources":["../../../../../../../../packages/templates/clients/websocket/dart/components/Constructor.js","../../../../../../../../packages/templates/clients/websocket/dart/components/SendEchoMessage.js","../../../../../../../../packages/templates/clients/websocket/dart/components/ClientFields.js","../../../../../../../../packages/templates/clients/websocket/dart/components/ClientClass.js","../../../../../../../../packages/templates/clients/websocket/dart/template/client.dart.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Constructor({ clientName, serverUrl }) {\n return (\n <Text newLines={2} indent={2}>\n {\n `\n/// Constructor to initialize the WebSocket client\n/// \n/// [url] - The WebSocket server URL. Use it if the server URL is different from the default one taken from the AsyncAPI document.\n${clientName}({String? url})\n : _url = url ?? '${serverUrl}';\n`}\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function SendEchoMessage() {\n return (\n <Text newLines={2} indent={2}>\n {\n `/// Method to send an echo message to the server\nvoid sendEchoMessage(dynamic message) {\n if (_channel == null) {\n print('Error: WebSocket is not connected.');\n return;\n }\n final payload = message is String ? message : jsonEncode(message);\n _channel!.sink.add(payload);\n print('Sent message to echo server: $payload');\n}`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ClientFields() {\n return (\n <Text indent={2} newLines={2}>\n {`final String _url;\nWebSocketChannel? _channel;\nfinal List<void Function(String)> _messageHandlers = [];\nfinal List<void Function(Object)> _errorHandlers = [];`}\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { SendEchoMessage } from './SendEchoMessage';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, Connect, HandleMessage, HandleError } from '@asyncapi/generator-components';\nimport { ClientFields } from './ClientFields';\n\nexport function ClientClass({ clientName, serverUrl, title }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <ClientFields />\n <Constructor clientName={clientName} serverUrl={serverUrl} />\n <Connect language=\"dart\" title={title} />\n <RegisterMessageHandler \n language=\"dart\" \n methodParams={['void Function(String) handler']}\n />\n <RegisterErrorHandler\n language=\"dart\"\n methodParams={['void Function(Object) handler']}\n />\n <HandleMessage\n language=\"dart\" \n methodName=\"_handleMessage\"\n methodParams={['dynamic message', 'void Function(String) cb']}\n />\n <HandleError language=\"dart\" />\n <SendEchoMessage />\n <CloseConnection language=\"dart\" />\n <Text>\n {'}'}\n </Text>\n </Text>\n );\n}\n","import { File } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getInfo, getTitle } from '@asyncapi/generator-helpers';\nimport { FileHeaderInfo, DependencyProvider } from '@asyncapi/generator-components';\nimport { ClientClass } from '../components/ClientClass';\n\nexport default function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const title = getTitle(asyncapi);\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n return ( \n // The clientFileName default values can be found and modified under the package.json\n <File name={params.clientFileName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"dart\"\n />\n <DependencyProvider language=\"dart\" />\n <ClientClass clientName={clientName} serverUrl={serverUrl} title={title} />\n </File>\n );\n}\n"],"names":["Constructor","clientName","serverUrl","_jsx","Text","newLines","indent","children","SendEchoMessage","ClientFields","ClientClass","title","_jsxs","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","methodName","HandleError","CloseConnection","asyncapi","params","server","getServer","servers","info","getInfo","getTitle","getClientName","appendClientSuffix","customClientName","getServerUrl","File","name","clientFileName","FileHeaderInfo","DependencyProvider"],"mappings":";;;;;;;;AAEO,SAASA,WAAWA,CAAC;EAAEC,UAAU;AAAEC,EAAAA,SAAAA;AAAU,CAAC,EAAE;EACrD,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEzB,CAAA;AACR;AACA;AACA;AACA,EAAEN,UAAU,CAAA;AACZ,mBAAA,EAAqBC,SAAS,CAAA;AAC9B,CAAA;AAAC,GACS,CAAC,CAAA;AAEX;;ACbO,SAASM,eAAeA,GAAG;EAChC,oBACEL,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEzB,CAAA;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,CAAA;AAAE,GAEQ,CAAC,CAAA;AAEX;;ACjBO,SAASE,YAAYA,GAAG;EAC7B,oBACEN,cAAA,CAACC,sBAAI,EAAA;AAACE,IAAAA,MAAM,EAAE,CAAE;AAACD,IAAAA,QAAQ,EAAE,CAAE;AAAAE,IAAAA,QAAA,EAC1B,CAAA;AACP;AACA;AACA,sDAAA,CAAA;AAAuD,GAC7C,CAAC,CAAA;AAEX;;ACLO,SAASG,WAAWA,CAAC;EAAET,UAAU;EAAEC,SAAS;AAAES,EAAAA,KAAAA;AAAM,CAAC,EAAE;EAC5D,oBACEC,eAAA,CAACR,sBAAI,EAAA;IAAAG,QAAA,EAAA,cACHJ,cAAA,CAACC,sBAAI,EAAA;AAACC,MAAAA,QAAQ,EAAE,CAAE;MAAAE,QAAA,EACf,SAASN,UAAU,CAAA,EAAA,CAAA;KAChB,CAAC,eACPE,cAAA,CAACM,YAAY,IAAE,CAAC,eAChBN,cAAA,CAACH,WAAW,EAAA;AAACC,MAAAA,UAAU,EAAEA,UAAW;AAACC,MAAAA,SAAS,EAAEA,SAAAA;AAAU,KAAE,CAAC,eAC7DC,cAAA,CAACU,2BAAO,EAAA;AAACC,MAAAA,QAAQ,EAAC,MAAM;AAACH,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAE,CAAC,eACzCR,cAAA,CAACY,0CAAsB,EAAA;AACrBD,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFb,cAAA,CAACc,wCAAoB,EAAA;AACnBH,MAAAA,QAAQ,EAAC,MAAM;MACfE,YAAY,EAAE,CAAC,+BAA+B,CAAA;AAAE,KACjD,CAAC,eACFb,cAAA,CAACe,iCAAa,EAAA;AACZJ,MAAAA,QAAQ,EAAC,MAAM;AACfK,MAAAA,UAAU,EAAC,gBAAgB;AAC3BH,MAAAA,YAAY,EAAE,CAAC,iBAAiB,EAAE,0BAA0B,CAAA;AAAE,KAC/D,CAAC,eACFb,cAAA,CAACiB,+BAAW,EAAA;AAACN,MAAAA,QAAQ,EAAC,MAAA;KAAQ,CAAC,eAC/BX,cAAA,CAACK,eAAe,IAAE,CAAC,eACnBL,cAAA,CAACkB,mCAAe,EAAA;AAACP,MAAAA,QAAQ,EAAC,MAAA;AAAM,KAAE,CAAC,eACnCX,cAAA,CAACC,sBAAI,EAAA;AAAAG,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,CAAA;AAAA,GACH,CAAC,CAAA;AAEX;;AC/Be,oBAAU,EAAA;EAAEe,QAAQ;AAAEC,EAAAA,MAAAA;AAAO,CAAC,EAAE;AAC7C,EAAA,MAAMC,MAAM,GAAGC,0BAAS,CAACH,QAAQ,CAACI,OAAO,EAAE,EAAEH,MAAM,CAACC,MAAM,CAAC,CAAA;AAC3D,EAAA,MAAMG,IAAI,GAAGC,wBAAO,CAACN,QAAQ,CAAC,CAAA;AAC9B,EAAA,MAAMX,KAAK,GAAGkB,yBAAQ,CAACP,QAAQ,CAAC,CAAA;AAChC,EAAA,MAAMrB,UAAU,GAAG6B,8BAAa,CAACR,QAAQ,EAAEC,MAAM,CAACQ,kBAAkB,EAAER,MAAM,CAACS,gBAAgB,CAAC,CAAA;AAC9F,EAAA,MAAM9B,SAAS,GAAG+B,6BAAY,CAACT,MAAM,CAAC,CAAA;AACtC,EAAA;AAAA;AACE;AACAZ,IAAAA,eAAA,CAACsB,sBAAI,EAAA;MAACC,IAAI,EAAEZ,MAAM,CAACa,cAAe;MAAA7B,QAAA,EAAA,cAChCJ,cAAA,CAACkC,kCAAc,EAAA;AACbV,QAAAA,IAAI,EAAEA,IAAK;AACXH,QAAAA,MAAM,EAAEA,MAAO;AACfV,QAAAA,QAAQ,EAAC,MAAA;AAAM,OAChB,CAAC,eACFX,cAAA,CAACmC,sCAAkB,EAAA;AAACxB,QAAAA,QAAQ,EAAC,MAAA;AAAM,OAAE,CAAC,eACtCX,cAAA,CAACO,WAAW,EAAA;AAACT,QAAAA,UAAU,EAAEA,UAAW;AAACC,QAAAA,SAAS,EAAEA,SAAU;AAACS,QAAAA,KAAK,EAAEA,KAAAA;AAAM,OAAE,CAAC,CAAA;KACvE,CAAA;AAAC,IAAA;AAEX;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { Text } from '@asyncapi/generator-react-sdk';
2
2
  import { Constructor } from './Constructor';
3
3
  import { SendEchoMessage } from './SendEchoMessage';
4
- import { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, Connect, HandleMessage } from '@asyncapi/generator-components';
4
+ import { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, Connect, HandleMessage, HandleError } from '@asyncapi/generator-components';
5
5
  import { ClientFields } from './ClientFields';
6
6
 
7
7
  export function ClientClass({ clientName, serverUrl, title }) {
@@ -26,6 +26,7 @@ export function ClientClass({ clientName, serverUrl, title }) {
26
26
  methodName="_handleMessage"
27
27
  methodParams={['dynamic message', 'void Function(String) cb']}
28
28
  />
29
+ <HandleError language="dart" />
29
30
  <SendEchoMessage />
30
31
  <CloseConnection language="dart" />
31
32
  <Text>
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  require('source-map-support/register');
6
6
  var ClientFields = require('./ClientFields.js');
7
7
  var Constructor = require('./Constructor.js');
8
- var HandleError = require('./HandleError.js');
9
8
  var generatorComponents = require('@asyncapi/generator-components');
10
9
  var OnTextMessageHandler = require('./OnTextMessageHandler.js');
11
10
  var generatorReactSdk = require('@asyncapi/generator-react-sdk');
@@ -43,7 +42,10 @@ public class ${clientName}{`
43
42
  title: title
44
43
  }), /*#__PURE__*/jsxRuntime.jsx(OnTextMessageHandler, {
45
44
  sendOperations: sendOperations
46
- }), /*#__PURE__*/jsxRuntime.jsx(HandleError, {}), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.OnClose, {
45
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleError, {
46
+ language: "java",
47
+ framework: "quarkus"
48
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.OnClose, {
47
49
  language: "java",
48
50
  framework: "quarkus",
49
51
  title: title
@@ -1 +1 @@
1
- {"version":3,"file":"EchoWebSocket.js","sources":["../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/EchoWebSocket.js"],"sourcesContent":["import { ClientFields } from './ClientFields.js';\nimport { Constructor } from './Constructor.js';\nimport HandleError from './HandleError.js';\nimport { OnClose, OnOpen } from '@asyncapi/generator-components';\nimport OnTextMessageHandler from './OnTextMessageHandler.js';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function EchoWebSocket({ clientName, pathName, title, queryParams, operations }) {\n const sendOperations = operations.filterBySend();\n if (!pathName) {\n pathName = '/';\n }\n\n return (\n <Text>\n <Text newLines={2}>\n {`\n@WebSocketClient(path = \"${pathName}\") \npublic class ${clientName}{`}\n </Text>\n <ClientFields queryParams={queryParams} clientName={clientName}/>\n <Constructor clientName={clientName} query={queryParams} />\n <OnOpen \n language='java'\n framework='quarkus' \n title={title}\n />\n <OnTextMessageHandler sendOperations={sendOperations}/>\n <HandleError/>\n <OnClose\n language='java'\n framework='quarkus'\n title={title} \n />\n </Text>\n );\n}"],"names":["EchoWebSocket","clientName","pathName","title","queryParams","operations","sendOperations","filterBySend","_jsxs","Text","children","_jsx","newLines","ClientFields","Constructor","query","OnOpen","language","framework","OnTextMessageHandler","HandleError","OnClose"],"mappings":";;;;;;;;;;;;;;;;AAOO,SAASA,aAAaA,CAAC;EAAEC,UAAU;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,WAAW;AAAEC,EAAAA,UAAAA;AAAW,CAAC,EAAE;AACtF,EAAA,MAAMC,cAAc,GAAGD,UAAU,CAACE,YAAY,EAAE,CAAA;EAChD,IAAI,CAACL,QAAQ,EAAE;AACbA,IAAAA,QAAQ,GAAG,GAAG,CAAA;AAChB,GAAA;EAEA,oBACEM,eAAA,CAACC,sBAAI,EAAA;IAAAC,QAAA,EAAA,cACHC,cAAA,CAACF,sBAAI,EAAA;AAACG,MAAAA,QAAQ,EAAE,CAAE;AAAAF,MAAAA,QAAA,EACf,CAAA;AACT,yBAAA,EAA2BR,QAAQ,CAAA;AACnC,aAAA,EAAeD,UAAU,CAAA,CAAA,CAAA;AAAG,KAChB,CAAC,eACPU,cAAA,CAACE,yBAAY,EAAA;AAACT,MAAAA,WAAW,EAAEA,WAAY;AAACH,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAC,CAAC,eACjEU,cAAA,CAACG,uBAAW,EAAA;AAACb,MAAAA,UAAU,EAAEA,UAAW;AAACc,MAAAA,KAAK,EAAEX,WAAAA;AAAY,KAAE,CAAC,eAC3DO,cAAA,CAACK,0BAAM,EAAA;AACLC,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnBf,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KACd,CAAC,eACFQ,cAAA,CAACQ,oBAAoB,EAAA;AAACb,MAAAA,cAAc,EAAEA,cAAAA;KAAgB,CAAC,eACvDK,cAAA,CAACS,WAAW,IAAC,CAAC,eACdT,cAAA,CAACU,2BAAO,EAAA;AACNJ,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnBf,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KACd,CAAC,CAAA;AAAA,GACE,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"EchoWebSocket.js","sources":["../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/EchoWebSocket.js"],"sourcesContent":["import { ClientFields } from './ClientFields.js';\nimport { Constructor } from './Constructor.js';\nimport { OnClose, OnOpen, HandleError } from '@asyncapi/generator-components';\nimport OnTextMessageHandler from './OnTextMessageHandler.js';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function EchoWebSocket({ clientName, pathName, title, queryParams, operations }) {\n const sendOperations = operations.filterBySend();\n if (!pathName) {\n pathName = '/';\n }\n\n return (\n <Text>\n <Text newLines={2}>\n {`\n@WebSocketClient(path = \"${pathName}\") \npublic class ${clientName}{`}\n </Text>\n <ClientFields queryParams={queryParams} clientName={clientName}/>\n <Constructor clientName={clientName} query={queryParams} />\n <OnOpen \n language='java'\n framework='quarkus' \n title={title}\n />\n <OnTextMessageHandler sendOperations={sendOperations}/>\n <HandleError language='java' framework='quarkus' />\n <OnClose\n language='java'\n framework='quarkus'\n title={title} \n />\n </Text>\n );\n}"],"names":["EchoWebSocket","clientName","pathName","title","queryParams","operations","sendOperations","filterBySend","_jsxs","Text","children","_jsx","newLines","ClientFields","Constructor","query","OnOpen","language","framework","OnTextMessageHandler","HandleError","OnClose"],"mappings":";;;;;;;;;;;;;;;AAMO,SAASA,aAAaA,CAAC;EAAEC,UAAU;EAAEC,QAAQ;EAAEC,KAAK;EAAEC,WAAW;AAAEC,EAAAA,UAAAA;AAAW,CAAC,EAAE;AACtF,EAAA,MAAMC,cAAc,GAAGD,UAAU,CAACE,YAAY,EAAE,CAAA;EAChD,IAAI,CAACL,QAAQ,EAAE;AACbA,IAAAA,QAAQ,GAAG,GAAG,CAAA;AAChB,GAAA;EAEA,oBACEM,eAAA,CAACC,sBAAI,EAAA;IAAAC,QAAA,EAAA,cACHC,cAAA,CAACF,sBAAI,EAAA;AAACG,MAAAA,QAAQ,EAAE,CAAE;AAAAF,MAAAA,QAAA,EACf,CAAA;AACT,yBAAA,EAA2BR,QAAQ,CAAA;AACnC,aAAA,EAAeD,UAAU,CAAA,CAAA,CAAA;AAAG,KAChB,CAAC,eACPU,cAAA,CAACE,yBAAY,EAAA;AAACT,MAAAA,WAAW,EAAEA,WAAY;AAACH,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAC,CAAC,eACjEU,cAAA,CAACG,uBAAW,EAAA;AAACb,MAAAA,UAAU,EAAEA,UAAW;AAACc,MAAAA,KAAK,EAAEX,WAAAA;AAAY,KAAE,CAAC,eAC3DO,cAAA,CAACK,0BAAM,EAAA;AACLC,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnBf,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KACd,CAAC,eACFQ,cAAA,CAACQ,oBAAoB,EAAA;AAACb,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAC,CAAC,eACvDK,cAAA,CAACS,+BAAW,EAAA;AAACH,MAAAA,QAAQ,EAAC,MAAM;AAACC,MAAAA,SAAS,EAAC,SAAA;AAAS,KAAE,CAAC,eACnDP,cAAA,CAACU,2BAAO,EAAA;AACNJ,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnBf,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KACd,CAAC,CAAA;AAAA,GACE,CAAC,CAAA;AAEX;;;;"}
@@ -115,17 +115,6 @@ function Constructor({
115
115
  });
116
116
  }
117
117
 
118
- function HandleError() {
119
- return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
120
- indent: 2,
121
- children: `@OnError
122
- public void onError(Throwable throwable) {
123
- LOG.error("Websocket connection error: " + throwable.getMessage());
124
- }
125
- `
126
- });
127
- }
128
-
129
118
  function OnTextMessage({
130
119
  sendOperations
131
120
  }) {
@@ -208,7 +197,10 @@ public class ${clientName}{`
208
197
  title: title
209
198
  }), /*#__PURE__*/jsxRuntime.jsx(OnTextMessage, {
210
199
  sendOperations: sendOperations
211
- }), /*#__PURE__*/jsxRuntime.jsx(HandleError, {}), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.OnClose, {
200
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleError, {
201
+ language: "java",
202
+ framework: "quarkus"
203
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.OnClose, {
212
204
  language: "java",
213
205
  framework: "quarkus",
214
206
  title: title
@@ -1 +1 @@
1
- {"version":3,"file":"client.java.js","sources":["../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/dependencies/ClientDependencies.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/ClientFields.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/ConstructorSignature.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/DefaultConstructorSignature.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/Constructor.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/HandleError.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/OnTextMessageHandler.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/EchoWebSocket.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/template/src/main/java/com/asyncapi/client.java.js"],"sourcesContent":["import { DependencyProvider } from '@asyncapi/generator-components';\n\nexport function ClientDependencies({ queryParams }) {\n const additionalDependencies = [];\n if (queryParams) {\n additionalDependencies.push('import java.util.HashMap;');\n }\n return (\n <DependencyProvider\n language=\"java\"\n framework=\"quarkus\"\n role=\"client\"\n additionalDependencies={additionalDependencies}\n />\n );\n}\n\n","import { toCamelCase } from '@asyncapi/generator-helpers';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ClientFields({ queryParams, clientName }) {\n let queryParamsVariables = '';\n const queryParamsArray = queryParams && Array.from(queryParams.entries());\n \n if (queryParamsArray && queryParamsArray.length > 0) {\n queryParamsVariables = '\\nprivate HashMap<String, String> params;\\n';\n queryParamsVariables += queryParamsArray.map((param) => {\n const paramName = toCamelCase(param[0]);\n return `private String ${paramName};`; \n }).join('\\n');\n }\n\n return (\n <Text indent={2} newLines={2}>\n {`@Inject\npublic WebSocketClientConnection connection;\n\nprivate static final Logger LOG = Logger.getLogger(${clientName}.class);\n\n${queryParamsVariables}`}\n </Text>\n );\n}\n","import { toCamelCase } from '@asyncapi/generator-helpers';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ConstructorSignature({ clientName, queryParams }) {\n if (!queryParams) {\n return;\n }\n \n const queryParamsArguments = queryParams?.map((param) => {\n const paramName = toCamelCase(param[0]);\n return `String ${paramName}`; // assuming the default values of the parameters are strings\n }).join(', ');\n \n return (\n <Text indent={2}>\n {`public ${clientName}(${queryParamsArguments}){`}\n </Text>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function DefaultConstructorSignature({ clientName, queryParams }) {\n if (!queryParams || !Array.isArray(queryParams)) {\n return null;\n }\n\n const argDefaultValues = [];\n \n queryParams.forEach((param) => {\n const paramDefaultValue = param[1];\n const defaultValue = paramDefaultValue ? `\"${paramDefaultValue}\"` : 'null';\n argDefaultValues.push(defaultValue); \n });\n \n return (\n <Text indent={2} newLines={2}>\n {`public ${clientName}(){\n this(${argDefaultValues.join(', ')});\n}`}\n </Text>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\nimport { ConstructorSignature } from './ConstructorSignature';\nimport { DefaultConstructorSignature } from './DefaultConstructorSignature';\nimport { QueryParamsVariables } from '@asyncapi/generator-components';\n\nexport function Constructor({ clientName, query }) {\n const queryParamsArray = query && Array.from(query.entries());\n if (!queryParamsArray || queryParamsArray.length === 0) {\n return;\n }\n \n return (\n <>\n <DefaultConstructorSignature clientName={clientName} queryParams={queryParamsArray} />\n <ConstructorSignature clientName={clientName} queryParams={queryParamsArray} />\n <Text indent={6} >\n {`${ queryParamsArray && queryParamsArray.length > 0 ? 'params = new HashMap<>(); ' : ''}`\n }\n </Text>\n <QueryParamsVariables \n language=\"java\"\n framework=\"quarkus\"\n queryParams={queryParamsArray} \n />\n <Text indent={2} newLines={2}>\n {'}'}\n </Text>\n </>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport default function HandleError() {\n return (\n <Text indent={2}>\n {`@OnError\npublic void onError(Throwable throwable) {\n LOG.error(\"Websocket connection error: \" + throwable.getMessage());\n}\n`}\n </Text>\n );\n}\n\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { toCamelCase } from '@asyncapi/generator-helpers';\n\nexport default function OnTextMessage({ sendOperations }) {\n return (\n <>\n {\n // If there are operations, emit a single @OnTextMessage\n (sendOperations && sendOperations.length !== 0) && (\n <Text newLines={2} indent={2}>\n {`@OnTextMessage\npublic void handleTextMessage(String message, WebSocketClientConnection connection) {\n LOG.info(\"Handler received text message: \" + message);\n${sendOperations.map((operation, idx) => {\n const methodName = operation.id();\n const javaMethodName = toCamelCase(methodName);\n const condition = idx === 0 ? ` if (message != null && message.contains(\"${methodName}\")) {` : ` else if (message != null && message.contains(\"${methodName}\")) {`;\n return `${condition}\n ${javaMethodName}(message, connection);\n }`;\n }).join('\\n')}\n else {\n LOG.warn(\"Handler received unrecognized message type. Falling back to default handler.\");\n // Note: By default, we route unrecognized messages to the first operation handler.\n // Depending on your business logic, you may want to change this behavior.\n ${toCamelCase(sendOperations[0].id())}(message, connection);\n }\n}`}\n </Text>\n )\n }\n\n {\n // Generate handlers for each operation\n (sendOperations && sendOperations.length !== 0) && (\n sendOperations.map((operation) => {\n const methodName = operation.id();\n const javaMethodName = toCamelCase(methodName);\n return (\n <Text newLines={2} indent={2}>\n {`public void ${javaMethodName}(String message, WebSocketClientConnection connection) {\n LOG.info(\"Processing ${methodName} type message: \" + message);\n // TODO: implement processing logic for ${methodName}\n}`}\n </Text>\n );\n })\n )\n }\n\n {\n // No operations provided need a default handler\n (!sendOperations || sendOperations.length === 0) && (\n <Text newLines={2} indent={2}>\n {`@OnTextMessage\npublic void processTextMessage(String message, WebSocketClientConnection connection) {\n LOG.info(\"Received text message: \" + message);\n}`}\n </Text>\n\n )\n }\n </>\n );\n}","import { ClientFields } from './ClientFields.js';\nimport { Constructor } from './Constructor.js';\nimport HandleError from './HandleError.js';\nimport { OnClose, OnOpen } from '@asyncapi/generator-components';\nimport OnTextMessageHandler from './OnTextMessageHandler.js';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function EchoWebSocket({ clientName, pathName, title, queryParams, operations }) {\n const sendOperations = operations.filterBySend();\n if (!pathName) {\n pathName = '/';\n }\n\n return (\n <Text>\n <Text newLines={2}>\n {`\n@WebSocketClient(path = \"${pathName}\") \npublic class ${clientName}{`}\n </Text>\n <ClientFields queryParams={queryParams} clientName={clientName}/>\n <Constructor clientName={clientName} query={queryParams} />\n <OnOpen \n language='java'\n framework='quarkus' \n title={title}\n />\n <OnTextMessageHandler sendOperations={sendOperations}/>\n <HandleError/>\n <OnClose\n language='java'\n framework='quarkus'\n title={title} \n />\n </Text>\n );\n}","import { getClientName, getInfo, getQueryParams, getServer, getTitle } from '@asyncapi/generator-helpers';\nimport { File } from '@asyncapi/generator-react-sdk';\nimport { FileHeaderInfo } from '@asyncapi/generator-components';\nimport { ClientDependencies } from '../../../../../../components/dependencies/ClientDependencies.js';\nimport { EchoWebSocket } from '../../../../../../components/EchoWebSocket.js';\n\nexport default async function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const title = getTitle(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const operations = asyncapi.operations();\n const clientJavaName = `${clientName}.java`;\n const pathName = server.pathname();\n\n return (\n <File name={clientJavaName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"java\"\n />\n <ClientDependencies queryParams={queryParams}/>\n <EchoWebSocket clientName={clientName} pathName={pathName} title={title} queryParams={queryParams} operations={operations} />\n </File>\n );\n}"],"names":["ClientDependencies","queryParams","additionalDependencies","push","_jsx","DependencyProvider","language","framework","role","ClientFields","clientName","queryParamsVariables","queryParamsArray","Array","from","entries","length","map","param","paramName","toCamelCase","join","Text","indent","newLines","children","ConstructorSignature","queryParamsArguments","DefaultConstructorSignature","isArray","argDefaultValues","forEach","paramDefaultValue","defaultValue","Constructor","query","_jsxs","_Fragment","QueryParamsVariables","HandleError","OnTextMessage","sendOperations","operation","idx","methodName","id","javaMethodName","condition","EchoWebSocket","pathName","title","operations","filterBySend","OnOpen","OnTextMessageHandler","OnClose","asyncapi","params","server","getServer","servers","info","getInfo","getTitle","getQueryParams","channels","getClientName","appendClientSuffix","customClientName","clientJavaName","pathname","File","name","FileHeaderInfo"],"mappings":";;;;;;;;AAEO,SAASA,kBAAkBA,CAAC;AAAEC,EAAAA,WAAAA;AAAY,CAAC,EAAE;EAClD,MAAMC,sBAAsB,GAAG,EAAE,CAAA;AACjC,EAAA,IAAID,WAAW,EAAE;AACfC,IAAAA,sBAAsB,CAACC,IAAI,CAAC,2BAA2B,CAAC,CAAA;AAC1D,GAAA;EACA,oBACEC,cAAA,CAACC,sCAAkB,EAAA;AACjBC,IAAAA,QAAQ,EAAC,MAAM;AACfC,IAAAA,SAAS,EAAC,SAAS;AACnBC,IAAAA,IAAI,EAAC,QAAQ;AACbN,IAAAA,sBAAsB,EAAEA,sBAAAA;AAAuB,GAChD,CAAC,CAAA;AAEN;;ACZO,SAASO,YAAYA,CAAC;EAAER,WAAW;AAAES,EAAAA,UAAAA;AAAW,CAAC,EAAE;EACxD,IAAIC,oBAAoB,GAAG,EAAE,CAAA;AAC7B,EAAA,MAAMC,gBAAgB,GAAGX,WAAW,IAAIY,KAAK,CAACC,IAAI,CAACb,WAAW,CAACc,OAAO,EAAE,CAAC,CAAA;AAEzE,EAAA,IAAIH,gBAAgB,IAAIA,gBAAgB,CAACI,MAAM,GAAG,CAAC,EAAE;AACnDL,IAAAA,oBAAoB,GAAG,6CAA6C,CAAA;AACpEA,IAAAA,oBAAoB,IAAIC,gBAAgB,CAACK,GAAG,CAAEC,KAAK,IAAK;MACtD,MAAMC,SAAS,GAAGC,4BAAW,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;MACvC,OAAO,CAAA,eAAA,EAAkBC,SAAS,CAAG,CAAA,CAAA,CAAA;AACvC,KAAC,CAAC,CAACE,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,GAAA;EAEA,oBACEjB,cAAA,CAACkB,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAC1B,CAAA;AACP;AACA;AACA,mDAAA,EAAqDf,UAAU,CAAA;AAC/D;AACA,EAAEC,oBAAoB,CAAA,CAAA;AAAE,GACd,CAAC,CAAA;AAEX;;ACtBO,SAASe,oBAAoBA,CAAC;EAAEhB,UAAU;AAAET,EAAAA,WAAAA;AAAY,CAAC,EAAE;EAChE,IAAI,CAACA,WAAW,EAAE;AAChB,IAAA,OAAA;AACF,GAAA;EAEA,MAAM0B,oBAAoB,GAAG1B,WAAW,KAAXA,IAAAA,IAAAA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEgB,GAAG,CAAEC,KAAK,IAAK;IACvD,MAAMC,SAAS,GAAGC,4BAAW,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACvC,IAAA,OAAO,CAAUC,OAAAA,EAAAA,SAAS,CAAE,CAAA,CAAC;AAC/B,GAAC,CAAC,CAACE,IAAI,CAAC,IAAI,CAAC,CAAA;EAEb,oBACEjB,cAAA,CAACkB,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAE,IAAAA,QAAA,EACb,CAAA,OAAA,EAAUf,UAAU,CAAA,CAAA,EAAIiB,oBAAoB,CAAA,EAAA,CAAA;AAAI,GAC7C,CAAC,CAAA;AAEX;;AChBO,SAASC,2BAA2BA,CAAC;EAAElB,UAAU;AAAET,EAAAA,WAAAA;AAAY,CAAC,EAAE;EACvE,IAAI,CAACA,WAAW,IAAI,CAACY,KAAK,CAACgB,OAAO,CAAC5B,WAAW,CAAC,EAAE;AAC/C,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,MAAM6B,gBAAgB,GAAG,EAAE,CAAA;AAE3B7B,EAAAA,WAAW,CAAC8B,OAAO,CAAEb,KAAK,IAAK;AAC7B,IAAA,MAAMc,iBAAiB,GAAGd,KAAK,CAAC,CAAC,CAAC,CAAA;IAClC,MAAMe,YAAY,GAAGD,iBAAiB,GAAG,IAAIA,iBAAiB,CAAA,CAAA,CAAG,GAAG,MAAM,CAAA;AAC1EF,IAAAA,gBAAgB,CAAC3B,IAAI,CAAC8B,YAAY,CAAC,CAAA;AACrC,GAAC,CAAC,CAAA;EAEF,oBACE7B,cAAA,CAACkB,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAACC,IAAAA,QAAQ,EAAE,CAAE;IAAAC,QAAA,EAC1B,UAAUf,UAAU,CAAA;AAC3B,SAAA,EAAWoB,gBAAgB,CAACT,IAAI,CAAC,IAAI,CAAC,CAAA;AACtC,CAAA,CAAA;AAAE,GACQ,CAAC,CAAA;AAEX;;ACjBO,SAASa,WAAWA,CAAC;EAAExB,UAAU;AAAEyB,EAAAA,KAAAA;AAAM,CAAC,EAAE;AACjD,EAAA,MAAMvB,gBAAgB,GAAGuB,KAAK,IAAItB,KAAK,CAACC,IAAI,CAACqB,KAAK,CAACpB,OAAO,EAAE,CAAC,CAAA;EAC7D,IAAI,CAACH,gBAAgB,IAAIA,gBAAgB,CAACI,MAAM,KAAK,CAAC,EAAE;AACtD,IAAA,OAAA;AACF,GAAA;EAEA,oBACEoB,eAAA,CAAAC,mBAAA,EAAA;IAAAZ,QAAA,EAAA,cACErB,cAAA,CAACwB,2BAA2B,EAAA;AAAClB,MAAAA,UAAU,EAAEA,UAAW;AAACT,MAAAA,WAAW,EAAEW,gBAAAA;AAAiB,KAAE,CAAC,eACtFR,cAAA,CAACsB,oBAAoB,EAAA;AAAChB,MAAAA,UAAU,EAAEA,UAAW;AAACT,MAAAA,WAAW,EAAEW,gBAAAA;AAAiB,KAAE,CAAC,eAC/ER,cAAA,CAACkB,sBAAI,EAAA;AAACC,MAAAA,MAAM,EAAE,CAAE;AAAAE,MAAAA,QAAA,EACb,CAAA,EAAIb,gBAAgB,IAAIA,gBAAgB,CAACI,MAAM,GAAG,CAAC,GAAG,4BAA4B,GAAG,EAAE,CAAA,CAAA;AAAE,KAEtF,CAAC,eACPZ,cAAA,CAACkC,wCAAoB,EAAA;AACnBhC,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnBN,MAAAA,WAAW,EAAEW,gBAAAA;AAAiB,KAC/B,CAAC,eACFR,cAAA,CAACkB,sBAAI,EAAA;AAACC,MAAAA,MAAM,EAAE,CAAE;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAC,MAAAA,QAAA,EAC1B,GAAA;AAAG,KACA,CAAC,CAAA;AAAA,GACP,CAAC,CAAA;AAEP;;AC3Be,SAASc,WAAWA,GAAG;EACpC,oBACEnC,cAAA,CAACkB,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAE,IAAAA,QAAA,EACb,CAAA;AACP;AACA;AACA;AACA,CAAA;AAAC,GACS,CAAC,CAAA;AAEX;;ACTe,SAASe,aAAaA,CAAC;AAAEC,EAAAA,cAAAA;AAAe,CAAC,EAAE;EACxD,oBACEL,eAAA,CAAAC,mBAAA,EAAA;IAAAZ,QAAA,EAAA;AAEI;IACCgB,cAAc,IAAIA,cAAc,CAACzB,MAAM,KAAK,CAAC,iBAC5CZ,cAAA,CAACkB,sBAAI,EAAA;AAACE,MAAAA,QAAQ,EAAE,CAAE;AAACD,MAAAA,MAAM,EAAE,CAAE;AAAAE,MAAAA,QAAA,EAC1B,CAAA;AACb;AACA;AACA,EAAEgB,cAAc,CAACxB,GAAG,CAAC,CAACyB,SAAS,EAAEC,GAAG,KAAK;AAC7B,QAAA,MAAMC,UAAU,GAAGF,SAAS,CAACG,EAAE,EAAE,CAAA;AACjC,QAAA,MAAMC,cAAc,GAAG1B,4BAAW,CAACwB,UAAU,CAAC,CAAA;AAC9C,QAAA,MAAMG,SAAS,GAAGJ,GAAG,KAAK,CAAC,GAAG,CAAgDC,6CAAAA,EAAAA,UAAU,CAAO,KAAA,CAAA,GAAG,CAAqDA,kDAAAA,EAAAA,UAAU,CAAO,KAAA,CAAA,CAAA;AACxK,QAAA,OAAO,GAAGG,SAAS,CAAA;AAC/B,QAAA,EAAUD,cAAc,CAAA;AACxB,KAAM,CAAA,CAAA;AACI,OAAC,CAAC,CAACzB,IAAI,CAAC,IAAI,CAAC,CAAA;AACvB;AACA;AACA;AACA;AACA,QAAUD,EAAAA,4BAAW,CAACqB,cAAc,CAAC,CAAC,CAAC,CAACI,EAAE,EAAE,CAAC,CAAA;AAC7C;AACA,CAAA,CAAA;AAAE,KACc,CACP;AAID;AACCJ,IAAAA,cAAc,IAAIA,cAAc,CAACzB,MAAM,KAAK,CAAC,IAC5CyB,cAAc,CAACxB,GAAG,CAAEyB,SAAS,IAAK;AAChC,MAAA,MAAME,UAAU,GAAGF,SAAS,CAACG,EAAE,EAAE,CAAA;AACjC,MAAA,MAAMC,cAAc,GAAG1B,4BAAW,CAACwB,UAAU,CAAC,CAAA;MAC9C,oBACExC,cAAA,CAACkB,sBAAI,EAAA;AAACE,QAAAA,QAAQ,EAAE,CAAE;AAACD,QAAAA,MAAM,EAAE,CAAE;QAAAE,QAAA,EAC1B,eAAeqB,cAAc,CAAA;AAC9C,yBAAA,EAA2BF,UAAU,CAAA;AACrC,4CAAA,EAA8CA,UAAU,CAAA;AACxD,CAAA,CAAA;AAAE,OACkB,CAAC,CAAA;AAEX,KAAC,CACF;AAID;IACA,CAAC,CAACH,cAAc,IAAIA,cAAc,CAACzB,MAAM,KAAK,CAAC,kBAC7CZ,cAAA,CAACkB,sBAAI,EAAA;AAACE,MAAAA,QAAQ,EAAE,CAAE;AAACD,MAAAA,MAAM,EAAE,CAAE;AAAAE,MAAAA,QAAA,EAC1B,CAAA;AACb;AACA;AACA,CAAA,CAAA;AAAE,KACc,CAEP,CAAA;AAAA,GAEH,CAAC,CAAA;AAEP;;ACzDO,SAASuB,aAAaA,CAAC;EAAEtC,UAAU;EAAEuC,QAAQ;EAAEC,KAAK;EAAEjD,WAAW;AAAEkD,EAAAA,UAAAA;AAAW,CAAC,EAAE;AACtF,EAAA,MAAMV,cAAc,GAAGU,UAAU,CAACC,YAAY,EAAE,CAAA;EAChD,IAAI,CAACH,QAAQ,EAAE;AACbA,IAAAA,QAAQ,GAAG,GAAG,CAAA;AAChB,GAAA;EAEA,oBACEb,eAAA,CAACd,sBAAI,EAAA;IAAAG,QAAA,EAAA,cACHrB,cAAA,CAACkB,sBAAI,EAAA;AAACE,MAAAA,QAAQ,EAAE,CAAE;AAAAC,MAAAA,QAAA,EACf,CAAA;AACT,yBAAA,EAA2BwB,QAAQ,CAAA;AACnC,aAAA,EAAevC,UAAU,CAAA,CAAA,CAAA;AAAG,KAChB,CAAC,eACPN,cAAA,CAACK,YAAY,EAAA;AAACR,MAAAA,WAAW,EAAEA,WAAY;AAACS,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAC,CAAC,eACjEN,cAAA,CAAC8B,WAAW,EAAA;AAACxB,MAAAA,UAAU,EAAEA,UAAW;AAACyB,MAAAA,KAAK,EAAElC,WAAAA;AAAY,KAAE,CAAC,eAC3DG,cAAA,CAACiD,0BAAM,EAAA;AACL/C,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnB2C,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KACd,CAAC,eACF9C,cAAA,CAACkD,aAAoB,EAAA;AAACb,MAAAA,cAAc,EAAEA,cAAAA;KAAgB,CAAC,eACvDrC,cAAA,CAACmC,WAAW,IAAC,CAAC,eACdnC,cAAA,CAACmD,2BAAO,EAAA;AACNjD,MAAAA,QAAQ,EAAC,MAAM;AACfC,MAAAA,SAAS,EAAC,SAAS;AACnB2C,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KACd,CAAC,CAAA;AAAA,GACE,CAAC,CAAA;AAEX;;AC9Be,0BAAgB,EAAA;EAAEM,QAAQ;AAAEC,EAAAA,MAAAA;AAAO,CAAC,EAAE;AACnD,EAAA,MAAMC,MAAM,GAAGC,0BAAS,CAACH,QAAQ,CAACI,OAAO,EAAE,EAAEH,MAAM,CAACC,MAAM,CAAC,CAAA;AAC3D,EAAA,MAAMG,IAAI,GAAGC,wBAAO,CAACN,QAAQ,CAAC,CAAA;AAC9B,EAAA,MAAMN,KAAK,GAAGa,yBAAQ,CAACP,QAAQ,CAAC,CAAA;EAChC,MAAMvD,WAAW,GAAG+D,+BAAc,CAACR,QAAQ,CAACS,QAAQ,EAAE,CAAC,CAAA;AACvD,EAAA,MAAMvD,UAAU,GAAGwD,8BAAa,CAACV,QAAQ,EAAEC,MAAM,CAACU,kBAAkB,EAAEV,MAAM,CAACW,gBAAgB,CAAC,CAAA;AAC9F,EAAA,MAAMjB,UAAU,GAAGK,QAAQ,CAACL,UAAU,EAAE,CAAA;AACxC,EAAA,MAAMkB,cAAc,GAAG,CAAG3D,EAAAA,UAAU,CAAO,KAAA,CAAA,CAAA;AAC3C,EAAA,MAAMuC,QAAQ,GAAGS,MAAM,CAACY,QAAQ,EAAE,CAAA;EAElC,oBACElC,eAAA,CAACmC,sBAAI,EAAA;AAACC,IAAAA,IAAI,EAAEH,cAAe;IAAA5C,QAAA,EAAA,cACzBrB,cAAA,CAACqE,kCAAc,EAAA;AACbZ,MAAAA,IAAI,EAAEA,IAAK;AACXH,MAAAA,MAAM,EAAEA,MAAO;AACfpD,MAAAA,QAAQ,EAAC,MAAA;AAAM,KAChB,CAAC,eACFF,cAAA,CAACJ,kBAAkB,EAAA;AAACC,MAAAA,WAAW,EAAEA,WAAAA;AAAY,KAAC,CAAC,eAC/CG,cAAA,CAAC4C,aAAa,EAAA;AAACtC,MAAAA,UAAU,EAAEA,UAAW;AAACuC,MAAAA,QAAQ,EAAEA,QAAS;AAACC,MAAAA,KAAK,EAAEA,KAAM;AAACjD,MAAAA,WAAW,EAAEA,WAAY;AAACkD,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAE,CAAC,CAAA;AAAA,GACzH,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"client.java.js","sources":["../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/dependencies/ClientDependencies.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/ClientFields.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/ConstructorSignature.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/DefaultConstructorSignature.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/Constructor.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/OnTextMessageHandler.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/EchoWebSocket.js","../../../../../../../../../../../../../packages/templates/clients/websocket/java/quarkus/template/src/main/java/com/asyncapi/client.java.js"],"sourcesContent":["import { DependencyProvider } from '@asyncapi/generator-components';\n\nexport function ClientDependencies({ queryParams }) {\n const additionalDependencies = [];\n if (queryParams) {\n additionalDependencies.push('import java.util.HashMap;');\n }\n return (\n <DependencyProvider\n language=\"java\"\n framework=\"quarkus\"\n role=\"client\"\n additionalDependencies={additionalDependencies}\n />\n );\n}\n\n","import { toCamelCase } from '@asyncapi/generator-helpers';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ClientFields({ queryParams, clientName }) {\n let queryParamsVariables = '';\n const queryParamsArray = queryParams && Array.from(queryParams.entries());\n \n if (queryParamsArray && queryParamsArray.length > 0) {\n queryParamsVariables = '\\nprivate HashMap<String, String> params;\\n';\n queryParamsVariables += queryParamsArray.map((param) => {\n const paramName = toCamelCase(param[0]);\n return `private String ${paramName};`; \n }).join('\\n');\n }\n\n return (\n <Text indent={2} newLines={2}>\n {`@Inject\npublic WebSocketClientConnection connection;\n\nprivate static final Logger LOG = Logger.getLogger(${clientName}.class);\n\n${queryParamsVariables}`}\n </Text>\n );\n}\n","import { toCamelCase } from '@asyncapi/generator-helpers';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ConstructorSignature({ clientName, queryParams }) {\n if (!queryParams) {\n return;\n }\n \n const queryParamsArguments = queryParams?.map((param) => {\n const paramName = toCamelCase(param[0]);\n return `String ${paramName}`; // assuming the default values of the parameters are strings\n }).join(', ');\n \n return (\n <Text indent={2}>\n {`public ${clientName}(${queryParamsArguments}){`}\n </Text>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function DefaultConstructorSignature({ clientName, queryParams }) {\n if (!queryParams || !Array.isArray(queryParams)) {\n return null;\n }\n\n const argDefaultValues = [];\n \n queryParams.forEach((param) => {\n const paramDefaultValue = param[1];\n const defaultValue = paramDefaultValue ? `\"${paramDefaultValue}\"` : 'null';\n argDefaultValues.push(defaultValue); \n });\n \n return (\n <Text indent={2} newLines={2}>\n {`public ${clientName}(){\n this(${argDefaultValues.join(', ')});\n}`}\n </Text>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\nimport { ConstructorSignature } from './ConstructorSignature';\nimport { DefaultConstructorSignature } from './DefaultConstructorSignature';\nimport { QueryParamsVariables } from '@asyncapi/generator-components';\n\nexport function Constructor({ clientName, query }) {\n const queryParamsArray = query && Array.from(query.entries());\n if (!queryParamsArray || queryParamsArray.length === 0) {\n return;\n }\n \n return (\n <>\n <DefaultConstructorSignature clientName={clientName} queryParams={queryParamsArray} />\n <ConstructorSignature clientName={clientName} queryParams={queryParamsArray} />\n <Text indent={6} >\n {`${ queryParamsArray && queryParamsArray.length > 0 ? 'params = new HashMap<>(); ' : ''}`\n }\n </Text>\n <QueryParamsVariables \n language=\"java\"\n framework=\"quarkus\"\n queryParams={queryParamsArray} \n />\n <Text indent={2} newLines={2}>\n {'}'}\n </Text>\n </>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\nimport { toCamelCase } from '@asyncapi/generator-helpers';\n\nexport default function OnTextMessage({ sendOperations }) {\n return (\n <>\n {\n // If there are operations, emit a single @OnTextMessage\n (sendOperations && sendOperations.length !== 0) && (\n <Text newLines={2} indent={2}>\n {`@OnTextMessage\npublic void handleTextMessage(String message, WebSocketClientConnection connection) {\n LOG.info(\"Handler received text message: \" + message);\n${sendOperations.map((operation, idx) => {\n const methodName = operation.id();\n const javaMethodName = toCamelCase(methodName);\n const condition = idx === 0 ? ` if (message != null && message.contains(\"${methodName}\")) {` : ` else if (message != null && message.contains(\"${methodName}\")) {`;\n return `${condition}\n ${javaMethodName}(message, connection);\n }`;\n }).join('\\n')}\n else {\n LOG.warn(\"Handler received unrecognized message type. Falling back to default handler.\");\n // Note: By default, we route unrecognized messages to the first operation handler.\n // Depending on your business logic, you may want to change this behavior.\n ${toCamelCase(sendOperations[0].id())}(message, connection);\n }\n}`}\n </Text>\n )\n }\n\n {\n // Generate handlers for each operation\n (sendOperations && sendOperations.length !== 0) && (\n sendOperations.map((operation) => {\n const methodName = operation.id();\n const javaMethodName = toCamelCase(methodName);\n return (\n <Text newLines={2} indent={2}>\n {`public void ${javaMethodName}(String message, WebSocketClientConnection connection) {\n LOG.info(\"Processing ${methodName} type message: \" + message);\n // TODO: implement processing logic for ${methodName}\n}`}\n </Text>\n );\n })\n )\n }\n\n {\n // No operations provided need a default handler\n (!sendOperations || sendOperations.length === 0) && (\n <Text newLines={2} indent={2}>\n {`@OnTextMessage\npublic void processTextMessage(String message, WebSocketClientConnection connection) {\n LOG.info(\"Received text message: \" + message);\n}`}\n </Text>\n\n )\n }\n </>\n );\n}","import { ClientFields } from './ClientFields.js';\nimport { Constructor } from './Constructor.js';\nimport { OnClose, OnOpen, HandleError } from '@asyncapi/generator-components';\nimport OnTextMessageHandler from './OnTextMessageHandler.js';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport function EchoWebSocket({ clientName, pathName, title, queryParams, operations }) {\n const sendOperations = operations.filterBySend();\n if (!pathName) {\n pathName = '/';\n }\n\n return (\n <Text>\n <Text newLines={2}>\n {`\n@WebSocketClient(path = \"${pathName}\") \npublic class ${clientName}{`}\n </Text>\n <ClientFields queryParams={queryParams} clientName={clientName}/>\n <Constructor clientName={clientName} query={queryParams} />\n <OnOpen \n language='java'\n framework='quarkus' \n title={title}\n />\n <OnTextMessageHandler sendOperations={sendOperations}/>\n <HandleError language='java' framework='quarkus' />\n <OnClose\n language='java'\n framework='quarkus'\n title={title} \n />\n </Text>\n );\n}","import { getClientName, getInfo, getQueryParams, getServer, getTitle } from '@asyncapi/generator-helpers';\nimport { File } from '@asyncapi/generator-react-sdk';\nimport { FileHeaderInfo } from '@asyncapi/generator-components';\nimport { ClientDependencies } from '../../../../../../components/dependencies/ClientDependencies.js';\nimport { EchoWebSocket } from '../../../../../../components/EchoWebSocket.js';\n\nexport default async function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const title = getTitle(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const operations = asyncapi.operations();\n const clientJavaName = `${clientName}.java`;\n const pathName = server.pathname();\n\n return (\n <File name={clientJavaName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"java\"\n />\n <ClientDependencies queryParams={queryParams}/>\n <EchoWebSocket clientName={clientName} pathName={pathName} title={title} queryParams={queryParams} operations={operations} />\n </File>\n );\n}"],"names":["ClientDependencies","queryParams","additionalDependencies","push","_jsx","DependencyProvider","language","framework","role","ClientFields","clientName","queryParamsVariables","queryParamsArray","Array","from","entries","length","map","param","paramName","toCamelCase","join","Text","indent","newLines","children","ConstructorSignature","queryParamsArguments","DefaultConstructorSignature","isArray","argDefaultValues","forEach","paramDefaultValue","defaultValue","Constructor","query","_jsxs","_Fragment","QueryParamsVariables","OnTextMessage","sendOperations","operation","idx","methodName","id","javaMethodName","condition","EchoWebSocket","pathName","title","operations","filterBySend","OnOpen","OnTextMessageHandler","HandleError","OnClose","asyncapi","params","server","getServer","servers","info","getInfo","getTitle","getQueryParams","channels","getClientName","appendClientSuffix","customClientName","clientJavaName","pathname","File","name","FileHeaderInfo"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { ClientFields } from './ClientFields.js';
2
2
  import { Constructor } from './Constructor.js';
3
- import HandleError from './HandleError.js';
4
- import { OnClose, OnOpen } from '@asyncapi/generator-components';
3
+ import { OnClose, OnOpen, HandleError } from '@asyncapi/generator-components';
5
4
  import OnTextMessageHandler from './OnTextMessageHandler.js';
6
5
  import { Text } from '@asyncapi/generator-react-sdk';
7
6
 
@@ -26,7 +25,7 @@ public class ${clientName}{`}
26
25
  title={title}
27
26
  />
28
27
  <OnTextMessageHandler sendOperations={sendOperations}/>
29
- <HandleError/>
28
+ <HandleError language='java' framework='quarkus' />
30
29
  <OnClose
31
30
  language='java'
32
31
  framework='quarkus'
@@ -8,6 +8,7 @@ var Constructor = require('./Constructor.js');
8
8
  var generatorComponents = require('@asyncapi/generator-components');
9
9
  var ModuleExport = require('./ModuleExport.js');
10
10
  var CompileOperationSchemas = require('./CompileOperationSchemas.js');
11
+ var RegisterOutgoingProcessor = require('./RegisterOutgoingProcessor.js');
11
12
  var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
12
13
 
13
14
  function ClientClass({
@@ -32,7 +33,7 @@ function ClientClass({
32
33
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.RegisterErrorHandler, {
33
34
  language: "javascript",
34
35
  methodParams: ['handler']
35
- }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleMessage, {
36
+ }), /*#__PURE__*/jsxRuntime.jsx(RegisterOutgoingProcessor.RegisterOutgoingProcessor, {}), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleMessage, {
36
37
  language: "javascript",
37
38
  methodParams: ['message', 'cb']
38
39
  }), /*#__PURE__*/jsxRuntime.jsx(CompileOperationSchemas.CompileOperationSchemas, {
@@ -1 +1 @@
1
- {"version":3,"file":"ClientClass.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/ClientClass.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { ModuleExport } from './ModuleExport';\nimport { CompileOperationSchemas } from './CompileOperationSchemas';\n\nexport function ClientClass({ clientName, serverUrl, title, sendOperations }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <Constructor serverUrl={serverUrl} sendOperations={sendOperations} />\n <Connect language=\"javascript\" title={title} />\n <RegisterMessageHandler \n language=\"javascript\" \n methodParams={['handler']}\n />\n <RegisterErrorHandler\n language=\"javascript\" \n methodParams={['handler']}\n />\n <HandleMessage \n language=\"javascript\" \n methodParams={['message', 'cb']}\n />\n <CompileOperationSchemas sendOperations={sendOperations} />\n <SendOperations \n language=\"javascript\" \n sendOperations={sendOperations} \n clientName={clientName} \n />\n <CloseConnection language=\"javascript\" />\n <Text>\n {'}'}\n </Text>\n <ModuleExport clientName={clientName} />\n </Text>\n );\n}\n"],"names":["ClientClass","clientName","serverUrl","title","sendOperations","_jsxs","Text","children","_jsx","newLines","Constructor","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","CompileOperationSchemas","SendOperations","CloseConnection","ModuleExport"],"mappings":";;;;;;;;;;;;AAMO,SAASA,WAAWA,CAAC;EAAEC,UAAU;EAAEC,SAAS;EAAEC,KAAK;AAAEC,EAAAA,cAAAA;AAAe,CAAC,EAAE;EAC5E,oBACEC,eAAA,CAACC,sBAAI,EAAA;IAAAC,QAAA,EAAA,cACHC,cAAA,CAACF,sBAAI,EAAA;AAACG,MAAAA,QAAQ,EAAE,CAAE;MAAAF,QAAA,EACf,SAASN,UAAU,CAAA,EAAA,CAAA;AAAI,KACpB,CAAC,eACPO,cAAA,CAACE,uBAAW,EAAA;AAACR,MAAAA,SAAS,EAAEA,SAAU;AAACE,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAE,CAAC,eACrEI,cAAA,CAACG,2BAAO,EAAA;AAACC,MAAAA,QAAQ,EAAC,YAAY;AAACT,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAE,CAAC,eAC/CK,cAAA,CAACK,0CAAsB,EAAA;AACrBD,MAAAA,QAAQ,EAAC,YAAY;MACrBE,YAAY,EAAE,CAAC,SAAS,CAAA;AAAE,KAC3B,CAAC,eACFN,cAAA,CAACO,wCAAoB,EAAA;AACnBH,MAAAA,QAAQ,EAAC,YAAY;MACrBE,YAAY,EAAE,CAAC,SAAS,CAAA;AAAE,KAC3B,CAAC,eACFN,cAAA,CAACQ,iCAAa,EAAA;AACZJ,MAAAA,QAAQ,EAAC,YAAY;AACrBE,MAAAA,YAAY,EAAE,CAAC,SAAS,EAAE,IAAI,CAAA;AAAE,KACjC,CAAC,eACFN,cAAA,CAACS,+CAAuB,EAAA;AAACb,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAE,CAAC,eAC3DI,cAAA,CAACU,kCAAc,EAAA;AACbN,MAAAA,QAAQ,EAAC,YAAY;AACrBR,MAAAA,cAAc,EAAEA,cAAe;AAC/BH,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KACxB,CAAC,eACFO,cAAA,CAACW,mCAAe,EAAA;AAACP,MAAAA,QAAQ,EAAC,YAAA;AAAY,KAAE,CAAC,eACzCJ,cAAA,CAACF,sBAAI,EAAA;AAAAC,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,eACPC,cAAA,CAACY,yBAAY,EAAA;AAACnB,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAE,CAAC,CAAA;AAAA,GACpC,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"ClientClass.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/ClientClass.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { ModuleExport } from './ModuleExport';\nimport { CompileOperationSchemas } from './CompileOperationSchemas';\nimport { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';\n\nexport function ClientClass({ clientName, serverUrl, title, sendOperations }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <Constructor serverUrl={serverUrl} sendOperations={sendOperations} />\n <Connect language=\"javascript\" title={title} />\n <RegisterMessageHandler \n language=\"javascript\" \n methodParams={['handler']}\n />\n <RegisterErrorHandler\n language=\"javascript\" \n methodParams={['handler']}\n />\n <RegisterOutgoingProcessor />\n <HandleMessage \n language=\"javascript\" \n methodParams={['message', 'cb']}\n />\n <CompileOperationSchemas sendOperations={sendOperations} />\n <SendOperations \n language=\"javascript\" \n sendOperations={sendOperations} \n clientName={clientName} \n />\n <CloseConnection language=\"javascript\" />\n <Text>\n {'}'}\n </Text>\n <ModuleExport clientName={clientName} />\n </Text>\n );\n}\n"],"names":["ClientClass","clientName","serverUrl","title","sendOperations","_jsxs","Text","children","_jsx","newLines","Constructor","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","RegisterOutgoingProcessor","HandleMessage","CompileOperationSchemas","SendOperations","CloseConnection","ModuleExport"],"mappings":";;;;;;;;;;;;;AAOO,SAASA,WAAWA,CAAC;EAAEC,UAAU;EAAEC,SAAS;EAAEC,KAAK;AAAEC,EAAAA,cAAAA;AAAe,CAAC,EAAE;EAC5E,oBACEC,eAAA,CAACC,sBAAI,EAAA;IAAAC,QAAA,EAAA,cACHC,cAAA,CAACF,sBAAI,EAAA;AAACG,MAAAA,QAAQ,EAAE,CAAE;MAAAF,QAAA,EACf,SAASN,UAAU,CAAA,EAAA,CAAA;AAAI,KACpB,CAAC,eACPO,cAAA,CAACE,uBAAW,EAAA;AAACR,MAAAA,SAAS,EAAEA,SAAU;AAACE,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAE,CAAC,eACrEI,cAAA,CAACG,2BAAO,EAAA;AAACC,MAAAA,QAAQ,EAAC,YAAY;AAACT,MAAAA,KAAK,EAAEA,KAAAA;AAAM,KAAE,CAAC,eAC/CK,cAAA,CAACK,0CAAsB,EAAA;AACrBD,MAAAA,QAAQ,EAAC,YAAY;MACrBE,YAAY,EAAE,CAAC,SAAS,CAAA;AAAE,KAC3B,CAAC,eACFN,cAAA,CAACO,wCAAoB,EAAA;AACnBH,MAAAA,QAAQ,EAAC,YAAY;MACrBE,YAAY,EAAE,CAAC,SAAS,CAAA;KACzB,CAAC,eACFN,cAAA,CAACQ,mDAAyB,IAAE,CAAC,eAC7BR,cAAA,CAACS,iCAAa,EAAA;AACZL,MAAAA,QAAQ,EAAC,YAAY;AACrBE,MAAAA,YAAY,EAAE,CAAC,SAAS,EAAE,IAAI,CAAA;AAAE,KACjC,CAAC,eACFN,cAAA,CAACU,+CAAuB,EAAA;AAACd,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAE,CAAC,eAC3DI,cAAA,CAACW,kCAAc,EAAA;AACbP,MAAAA,QAAQ,EAAC,YAAY;AACrBR,MAAAA,cAAc,EAAEA,cAAe;AAC/BH,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KACxB,CAAC,eACFO,cAAA,CAACY,mCAAe,EAAA;AAACR,MAAAA,QAAQ,EAAC,YAAA;AAAY,KAAE,CAAC,eACzCJ,cAAA,CAACF,sBAAI,EAAA;AAAAC,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,eACPC,cAAA,CAACa,yBAAY,EAAA;AAACpB,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KAAE,CAAC,CAAA;AAAA,GACpC,CAAC,CAAA;AAEX;;;;"}
@@ -23,6 +23,7 @@ constructor(url) {
23
23
  this.websocket = null;
24
24
  this.messageHandlers = [];
25
25
  this.errorHandlers = [];
26
+ this.outgoingProcessors = [];
26
27
  this.compiledSchemas = {};
27
28
  this.schemasCompiled = false;
28
29
  this.sendOperationsId = ${sendOperationsArray};
@@ -1 +1 @@
1
- {"version":3,"file":"Constructor.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/Constructor.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Constructor({ serverUrl, sendOperations }) {\n const sendOperationsId = sendOperations.map((operation) => operation.id());\n const sendOperationsArray = JSON.stringify(sendOperationsId);\n\n return (\n <Text indent={2}>\n {\n `/*\n * Constructor to initialize the WebSocket client\n * @param {string} url - The WebSocket server URL. Use it if the server URL is different from the default one taken from the AsyncAPI document.\n*/\nconstructor(url) {\n this.url = url || '${serverUrl}';\n this.websocket = null;\n this.messageHandlers = [];\n this.errorHandlers = [];\n this.compiledSchemas = {};\n this.schemasCompiled = false;\n this.sendOperationsId = ${sendOperationsArray};\n}\n`\n }\n </Text>\n );\n}\n"],"names":["Constructor","serverUrl","sendOperations","sendOperationsId","map","operation","id","sendOperationsArray","JSON","stringify","_jsx","Text","indent","children"],"mappings":";;;;;;;;AAEO,SAASA,WAAWA,CAAC;EAAEC,SAAS;AAAEC,EAAAA,cAAAA;AAAe,CAAC,EAAE;AACzD,EAAA,MAAMC,gBAAgB,GAAGD,cAAc,CAACE,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACC,EAAE,EAAE,CAAC,CAAA;AAC1E,EAAA,MAAMC,mBAAmB,GAAGC,IAAI,CAACC,SAAS,CAACN,gBAAgB,CAAC,CAAA;EAE5D,oBACEO,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEZ,CAAA;AACR;AACA;AACA;AACA;AACA,qBAAA,EAAuBZ,SAAS,CAAA;AAChC;AACA;AACA;AACA;AACA;AACA,0BAAA,EAA4BM,mBAAmB,CAAA;AAC/C;AACA,CAAA;AAAC,GAES,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"Constructor.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/Constructor.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Constructor({ serverUrl, sendOperations }) {\n const sendOperationsId = sendOperations.map((operation) => operation.id());\n const sendOperationsArray = JSON.stringify(sendOperationsId);\n\n return (\n <Text indent={2}>\n {\n `/*\n * Constructor to initialize the WebSocket client\n * @param {string} url - The WebSocket server URL. Use it if the server URL is different from the default one taken from the AsyncAPI document.\n*/\nconstructor(url) {\n this.url = url || '${serverUrl}';\n this.websocket = null;\n this.messageHandlers = [];\n this.errorHandlers = [];\n this.outgoingProcessors = [];\n this.compiledSchemas = {};\n this.schemasCompiled = false;\n this.sendOperationsId = ${sendOperationsArray};\n}\n`\n }\n </Text>\n );\n}\n"],"names":["Constructor","serverUrl","sendOperations","sendOperationsId","map","operation","id","sendOperationsArray","JSON","stringify","_jsx","Text","indent","children"],"mappings":";;;;;;;;AAEO,SAASA,WAAWA,CAAC;EAAEC,SAAS;AAAEC,EAAAA,cAAAA;AAAe,CAAC,EAAE;AACzD,EAAA,MAAMC,gBAAgB,GAAGD,cAAc,CAACE,GAAG,CAAEC,SAAS,IAAKA,SAAS,CAACC,EAAE,EAAE,CAAC,CAAA;AAC1E,EAAA,MAAMC,mBAAmB,GAAGC,IAAI,CAACC,SAAS,CAACN,gBAAgB,CAAC,CAAA;EAE5D,oBACEO,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEZ,CAAA;AACR;AACA;AACA;AACA;AACA,qBAAA,EAAuBZ,SAAS,CAAA;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,0BAAA,EAA4BM,mBAAmB,CAAA;AAC/C;AACA,CAAA;AAAC,GAES,CAAC,CAAA;AAEX;;;;"}
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ require('source-map-support/register');
6
+ var generatorReactSdk = require('@asyncapi/generator-react-sdk');
7
+ var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
8
+
9
+ function RegisterOutgoingProcessor() {
10
+ return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
11
+ newLines: 2,
12
+ indent: 2,
13
+ children: `registerOutgoingProcessor(processor) {
14
+ if (typeof processor === 'function') {
15
+ this.outgoingProcessors.push(processor);
16
+ } else {
17
+ console.warn('Outgoing processor must be a function');
18
+ }
19
+ }`
20
+ });
21
+ }
22
+
23
+ exports.RegisterOutgoingProcessor = RegisterOutgoingProcessor;
24
+ //# sourceMappingURL=RegisterOutgoingProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RegisterOutgoingProcessor.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/RegisterOutgoingProcessor.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function RegisterOutgoingProcessor() {\n return (\n <Text newLines={2} indent={2}>\n {\n `registerOutgoingProcessor(processor) {\n if (typeof processor === 'function') {\n this.outgoingProcessors.push(processor);\n } else {\n console.warn('Outgoing processor must be a function');\n }\n}`\n }\n </Text>\n );\n}\n"],"names":["RegisterOutgoingProcessor","_jsx","Text","newLines","indent","children"],"mappings":";;;;;;;;AAEO,SAASA,yBAAyBA,GAAG;EAC1C,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEzB,CAAA;AACR;AACA;AACA;AACA;AACA;AACA,CAAA,CAAA;AAAE,GAEQ,CAAC,CAAA;AAEX;;;;"}
@@ -17,9 +17,21 @@ function myHandler(message) {
17
17
  function myErrorHandler(error) {
18
18
  console.error('Errors from Websocket:', error.message);
19
19
  }
20
+
21
+ // Example of an outgoing processor — runs before every message is sent.
22
+ // Use it for logging, adding metadata, transforming payloads, etc.
23
+ function outgoingProcessor(message) {
24
+ const processed = {
25
+ payload: message,
26
+ timestamp: new Date().toISOString()
27
+ };
28
+ console.log('Outgoing processor fired:', JSON.stringify(processed));
29
+ return processed;
30
+ }
20
31
  async function main() {
21
32
  wsClient.registerMessageHandler(myHandler);
22
33
  wsClient.registerErrorHandler(myErrorHandler);
34
+ wsClient.registerOutgoingProcessor(outgoingProcessor);
23
35
  try {
24
36
  await wsClient.connect();
25
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"example.js","sources":["../../../../../../../packages/templates/clients/websocket/javascript/example.js"],"sourcesContent":["const WSClient = require('./test/temp/snapshotTestResult/custom_client_hoppscotch/client.js');\n// Example usage\nconst wsClient = new WSClient();\n\n// Example of how custom message handler that operates on incoming messages can look like\nfunction myHandler(message) {\n console.log('====================');\n console.log('Just proving I got the message in myHandler:', message);\n console.log('====================');\n}\n\n// Example of custom error handler\nfunction myErrorHandler(error) {\n console.error('Errors from Websocket:', error.message);\n}\n\nasync function main() {\n wsClient.registerMessageHandler(myHandler);\n wsClient.registerErrorHandler(myErrorHandler);\n\n try {\n await wsClient.connect();\n\n // Loop to send messages every 5 seconds\n const interval = 5000; // 5 seconds\n const message = 'Hello, Echo!';\n\n while (true) {\n try {\n await wsClient.sendEchoMessage(message);\n } catch (error) {\n console.error('Error while sending message:', error);\n }\n // Wait for the interval before sending the next message\n await new Promise(resolve => setTimeout(resolve, interval));\n }\n } catch (error) {\n console.error('Failed to connect to WebSocket:', error.message);\n }\n}\n\nmain();\n"],"names":["WSClient","require","wsClient","myHandler","message","console","log","myErrorHandler","error","main","registerMessageHandler","registerErrorHandler","connect","interval","sendEchoMessage","Promise","resolve","setTimeout"],"mappings":";;;;AAAA,MAAMA,QAAQ,GAAGC,OAAO,CAAC,mEAAmE,CAAC,CAAA;AAC7F;AACA,MAAMC,QAAQ,GAAG,IAAIF,QAAQ,EAAE,CAAA;;AAE/B;AACA,SAASG,SAASA,CAACC,OAAO,EAAE;AAC1BC,EAAAA,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACnCD,EAAAA,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAEF,OAAO,CAAC,CAAA;AACpEC,EAAAA,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACrC,CAAA;;AAEA;AACA,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7BH,OAAO,CAACG,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAACJ,OAAO,CAAC,CAAA;AACxD,CAAA;AAEA,eAAeK,IAAIA,GAAG;AACpBP,EAAAA,QAAQ,CAACQ,sBAAsB,CAACP,SAAS,CAAC,CAAA;AAC1CD,EAAAA,QAAQ,CAACS,oBAAoB,CAACJ,cAAc,CAAC,CAAA;EAE7C,IAAI;AACF,IAAA,MAAML,QAAQ,CAACU,OAAO,EAAE,CAAA;;AAExB;AACA,IAAA,MAAMC,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAMT,OAAO,GAAG,cAAc,CAAA;AAE9B,IAAA,OAAO,IAAI,EAAE;MACX,IAAI;AACF,QAAA,MAAMF,QAAQ,CAACY,eAAe,CAACV,OAAO,CAAC,CAAA;OACxC,CAAC,OAAOI,KAAK,EAAE;AACdH,QAAAA,OAAO,CAACG,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC,CAAA;AACtD,OAAA;AACA;MACA,MAAM,IAAIO,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEH,QAAQ,CAAC,CAAC,CAAA;AAC7D,KAAA;GACD,CAAC,OAAOL,KAAK,EAAE;IACdH,OAAO,CAACG,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAACJ,OAAO,CAAC,CAAA;AACjE,GAAA;AACF,CAAA;AAEAK,IAAI,EAAE;;"}
1
+ {"version":3,"file":"example.js","sources":["../../../../../../../packages/templates/clients/websocket/javascript/example.js"],"sourcesContent":["const WSClient = require('./test/temp/snapshotTestResult/custom_client_hoppscotch/client.js');\n// Example usage\nconst wsClient = new WSClient();\n\n// Example of how custom message handler that operates on incoming messages can look like\nfunction myHandler(message) {\n console.log('====================');\n console.log('Just proving I got the message in myHandler:', message);\n console.log('====================');\n}\n\n// Example of custom error handler\nfunction myErrorHandler(error) {\n console.error('Errors from Websocket:', error.message);\n}\n\n// Example of an outgoing processor — runs before every message is sent.\n// Use it for logging, adding metadata, transforming payloads, etc.\nfunction outgoingProcessor(message) {\n const processed = { payload: message, timestamp: new Date().toISOString() };\n console.log('Outgoing processor fired:', JSON.stringify(processed));\n return processed;\n}\n\nasync function main() {\n wsClient.registerMessageHandler(myHandler);\n wsClient.registerErrorHandler(myErrorHandler);\n wsClient.registerOutgoingProcessor(outgoingProcessor);\n\n try {\n await wsClient.connect();\n\n // Loop to send messages every 5 seconds\n const interval = 5000; // 5 seconds\n const message = 'Hello, Echo!';\n\n while (true) {\n try {\n await wsClient.sendEchoMessage(message);\n } catch (error) {\n console.error('Error while sending message:', error);\n }\n // Wait for the interval before sending the next message\n await new Promise(resolve => setTimeout(resolve, interval));\n }\n } catch (error) {\n console.error('Failed to connect to WebSocket:', error.message);\n }\n}\n\nmain();\n"],"names":["WSClient","require","wsClient","myHandler","message","console","log","myErrorHandler","error","outgoingProcessor","processed","payload","timestamp","Date","toISOString","JSON","stringify","main","registerMessageHandler","registerErrorHandler","registerOutgoingProcessor","connect","interval","sendEchoMessage","Promise","resolve","setTimeout"],"mappings":";;;;AAAA,MAAMA,QAAQ,GAAGC,OAAO,CAAC,mEAAmE,CAAC,CAAA;AAC7F;AACA,MAAMC,QAAQ,GAAG,IAAIF,QAAQ,EAAE,CAAA;;AAE/B;AACA,SAASG,SAASA,CAACC,OAAO,EAAE;AAC1BC,EAAAA,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACnCD,EAAAA,OAAO,CAACC,GAAG,CAAC,8CAA8C,EAAEF,OAAO,CAAC,CAAA;AACpEC,EAAAA,OAAO,CAACC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AACrC,CAAA;;AAEA;AACA,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7BH,OAAO,CAACG,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAACJ,OAAO,CAAC,CAAA;AACxD,CAAA;;AAEA;AACA;AACA,SAASK,iBAAiBA,CAACL,OAAO,EAAE;AAClC,EAAA,MAAMM,SAAS,GAAG;AAAEC,IAAAA,OAAO,EAAEP,OAAO;AAAEQ,IAAAA,SAAS,EAAE,IAAIC,IAAI,EAAE,CAACC,WAAW,EAAC;GAAG,CAAA;EAC3ET,OAAO,CAACC,GAAG,CAAC,2BAA2B,EAAES,IAAI,CAACC,SAAS,CAACN,SAAS,CAAC,CAAC,CAAA;AACnE,EAAA,OAAOA,SAAS,CAAA;AAClB,CAAA;AAEA,eAAeO,IAAIA,GAAG;AACpBf,EAAAA,QAAQ,CAACgB,sBAAsB,CAACf,SAAS,CAAC,CAAA;AAC1CD,EAAAA,QAAQ,CAACiB,oBAAoB,CAACZ,cAAc,CAAC,CAAA;AAC7CL,EAAAA,QAAQ,CAACkB,yBAAyB,CAACX,iBAAiB,CAAC,CAAA;EAErD,IAAI;AACF,IAAA,MAAMP,QAAQ,CAACmB,OAAO,EAAE,CAAA;;AAExB;AACA,IAAA,MAAMC,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAMlB,OAAO,GAAG,cAAc,CAAA;AAE9B,IAAA,OAAO,IAAI,EAAE;MACX,IAAI;AACF,QAAA,MAAMF,QAAQ,CAACqB,eAAe,CAACnB,OAAO,CAAC,CAAA;OACxC,CAAC,OAAOI,KAAK,EAAE;AACdH,QAAAA,OAAO,CAACG,KAAK,CAAC,8BAA8B,EAAEA,KAAK,CAAC,CAAA;AACtD,OAAA;AACA;MACA,MAAM,IAAIgB,OAAO,CAACC,OAAO,IAAIC,UAAU,CAACD,OAAO,EAAEH,QAAQ,CAAC,CAAC,CAAA;AAC7D,KAAA;GACD,CAAC,OAAOd,KAAK,EAAE;IACdH,OAAO,CAACG,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAACJ,OAAO,CAAC,CAAA;AACjE,GAAA;AACF,CAAA;AAEAa,IAAI,EAAE;;"}
@@ -23,6 +23,7 @@ constructor(url) {
23
23
  this.websocket = null;
24
24
  this.messageHandlers = [];
25
25
  this.errorHandlers = [];
26
+ this.outgoingProcessors = [];
26
27
  this.compiledSchemas = {};
27
28
  this.schemasCompiled = false;
28
29
  this.sendOperationsId = ${sendOperationsArray};
@@ -84,6 +85,20 @@ async compileOperationSchemas() {
84
85
  });
85
86
  }
86
87
 
88
+ function RegisterOutgoingProcessor() {
89
+ return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
90
+ newLines: 2,
91
+ indent: 2,
92
+ children: `registerOutgoingProcessor(processor) {
93
+ if (typeof processor === 'function') {
94
+ this.outgoingProcessors.push(processor);
95
+ } else {
96
+ console.warn('Outgoing processor must be a function');
97
+ }
98
+ }`
99
+ });
100
+ }
101
+
87
102
  function ClientClass({
88
103
  clientName,
89
104
  serverUrl,
@@ -106,7 +121,7 @@ function ClientClass({
106
121
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.RegisterErrorHandler, {
107
122
  language: "javascript",
108
123
  methodParams: ['handler']
109
- }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleMessage, {
124
+ }), /*#__PURE__*/jsxRuntime.jsx(RegisterOutgoingProcessor, {}), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleMessage, {
110
125
  language: "javascript",
111
126
  methodParams: ['message', 'cb']
112
127
  }), /*#__PURE__*/jsxRuntime.jsx(CompileOperationSchemas, {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/Constructor.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/ModuleExport.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/CompileOperationSchemas.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/ClientClass.js","../../../../../../../../packages/templates/clients/websocket/javascript/template/client.js.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Constructor({ serverUrl, sendOperations }) {\n const sendOperationsId = sendOperations.map((operation) => operation.id());\n const sendOperationsArray = JSON.stringify(sendOperationsId);\n\n return (\n <Text indent={2}>\n {\n `/*\n * Constructor to initialize the WebSocket client\n * @param {string} url - The WebSocket server URL. Use it if the server URL is different from the default one taken from the AsyncAPI document.\n*/\nconstructor(url) {\n this.url = url || '${serverUrl}';\n this.websocket = null;\n this.messageHandlers = [];\n this.errorHandlers = [];\n this.compiledSchemas = {};\n this.schemasCompiled = false;\n this.sendOperationsId = ${sendOperationsArray};\n}\n`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ModuleExport({ clientName }) {\n return (\n <Text>\n {\n `module.exports = ${clientName};`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function CompileOperationSchemas({ sendOperations }) {\n if (!sendOperations || sendOperations.length === 0) {\n return null;\n } \n\n return (\n <>\n <Text indent={2} newLines={2}>\n {\n `/**\n * Initialize and compile all schemas for operations defined.\n * This should be called once after creating the client instance.\n * Subsequent calls will be ignored if schemas are already compiled.\n * \n * @returns {Promise<void>}\n * @throws {Error} If schema compilation fails for any operation\n */\nasync compileOperationSchemas() {\n if (this.schemasCompiled) {\n return;\n }\n\n try {\n // Compile schemas for all send operations\n for (const operationId of this.sendOperationsId) {\n this.compiledSchemas[operationId] = await compileSchemasByOperationId(asyncapiFilepath, operationId);\n }\n this.schemasCompiled = true;\n console.log('Schemas initialized successfully for operations:', this.sendOperationsId.join(', '));\n } catch (error) {\n console.error('Error initializing schemas:', error);\n this.schemasCompiled = false;\n if (error instanceof Error) {\n error.message = \\`Schema compilation failed: \\${error.message}\\`;\n throw error;\n } else {\n throw new Error(\\`Schema compilation failed: \\${String(error)}\\`);\n }\n }\n}`\n }\n </Text>\n </>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { ModuleExport } from './ModuleExport';\nimport { CompileOperationSchemas } from './CompileOperationSchemas';\n\nexport function ClientClass({ clientName, serverUrl, title, sendOperations }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <Constructor serverUrl={serverUrl} sendOperations={sendOperations} />\n <Connect language=\"javascript\" title={title} />\n <RegisterMessageHandler \n language=\"javascript\" \n methodParams={['handler']}\n />\n <RegisterErrorHandler\n language=\"javascript\" \n methodParams={['handler']}\n />\n <HandleMessage \n language=\"javascript\" \n methodParams={['message', 'cb']}\n />\n <CompileOperationSchemas sendOperations={sendOperations} />\n <SendOperations \n language=\"javascript\" \n sendOperations={sendOperations} \n clientName={clientName} \n />\n <CloseConnection language=\"javascript\" />\n <Text>\n {'}'}\n </Text>\n <ModuleExport clientName={clientName} />\n </Text>\n );\n}\n","import { File } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getInfo, getTitle } from '@asyncapi/generator-helpers';\nimport { FileHeaderInfo, DependencyProvider } from '@asyncapi/generator-components';\nimport { ClientClass } from '../components/ClientClass';\n\nexport default function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const title = getTitle(asyncapi);\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n const sendOperations = asyncapi.operations().filterBySend();\n const asyncapiFilepath = `${params.asyncapiFileDir}/asyncapi.yaml`;\n return (\n <File name={params.clientFileName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"javascript\"\n />\n <DependencyProvider\n language=\"javascript\"\n additionalDependencies={['const path = require(\\'path\\');', `const asyncapiFilepath = path.resolve(__dirname, '${asyncapiFilepath}');`]}\n />\n <ClientClass clientName={clientName} serverUrl={serverUrl} title={title} sendOperations={sendOperations} />\n </File>\n );\n}\n"],"names":["Constructor","serverUrl","sendOperations","sendOperationsId","map","operation","id","sendOperationsArray","JSON","stringify","_jsx","Text","indent","children","ModuleExport","clientName","CompileOperationSchemas","length","_Fragment","newLines","ClientClass","title","_jsxs","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","SendOperations","CloseConnection","asyncapi","params","server","getServer","servers","info","getInfo","getTitle","getClientName","appendClientSuffix","customClientName","getServerUrl","operations","filterBySend","asyncapiFilepath","asyncapiFileDir","File","name","clientFileName","FileHeaderInfo","DependencyProvider","additionalDependencies"],"mappings":"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"}
1
+ {"version":3,"file":"client.js.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/Constructor.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/ModuleExport.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/CompileOperationSchemas.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/RegisterOutgoingProcessor.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/ClientClass.js","../../../../../../../../packages/templates/clients/websocket/javascript/template/client.js.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Constructor({ serverUrl, sendOperations }) {\n const sendOperationsId = sendOperations.map((operation) => operation.id());\n const sendOperationsArray = JSON.stringify(sendOperationsId);\n\n return (\n <Text indent={2}>\n {\n `/*\n * Constructor to initialize the WebSocket client\n * @param {string} url - The WebSocket server URL. Use it if the server URL is different from the default one taken from the AsyncAPI document.\n*/\nconstructor(url) {\n this.url = url || '${serverUrl}';\n this.websocket = null;\n this.messageHandlers = [];\n this.errorHandlers = [];\n this.outgoingProcessors = [];\n this.compiledSchemas = {};\n this.schemasCompiled = false;\n this.sendOperationsId = ${sendOperationsArray};\n}\n`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function ModuleExport({ clientName }) {\n return (\n <Text>\n {\n `module.exports = ${clientName};`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function CompileOperationSchemas({ sendOperations }) {\n if (!sendOperations || sendOperations.length === 0) {\n return null;\n } \n\n return (\n <>\n <Text indent={2} newLines={2}>\n {\n `/**\n * Initialize and compile all schemas for operations defined.\n * This should be called once after creating the client instance.\n * Subsequent calls will be ignored if schemas are already compiled.\n * \n * @returns {Promise<void>}\n * @throws {Error} If schema compilation fails for any operation\n */\nasync compileOperationSchemas() {\n if (this.schemasCompiled) {\n return;\n }\n\n try {\n // Compile schemas for all send operations\n for (const operationId of this.sendOperationsId) {\n this.compiledSchemas[operationId] = await compileSchemasByOperationId(asyncapiFilepath, operationId);\n }\n this.schemasCompiled = true;\n console.log('Schemas initialized successfully for operations:', this.sendOperationsId.join(', '));\n } catch (error) {\n console.error('Error initializing schemas:', error);\n this.schemasCompiled = false;\n if (error instanceof Error) {\n error.message = \\`Schema compilation failed: \\${error.message}\\`;\n throw error;\n } else {\n throw new Error(\\`Schema compilation failed: \\${String(error)}\\`);\n }\n }\n}`\n }\n </Text>\n </>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function RegisterOutgoingProcessor() {\n return (\n <Text newLines={2} indent={2}>\n {\n `registerOutgoingProcessor(processor) {\n if (typeof processor === 'function') {\n this.outgoingProcessors.push(processor);\n } else {\n console.warn('Outgoing processor must be a function');\n }\n}`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { ModuleExport } from './ModuleExport';\nimport { CompileOperationSchemas } from './CompileOperationSchemas';\nimport { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';\n\nexport function ClientClass({ clientName, serverUrl, title, sendOperations }) {\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName} {`}\n </Text>\n <Constructor serverUrl={serverUrl} sendOperations={sendOperations} />\n <Connect language=\"javascript\" title={title} />\n <RegisterMessageHandler \n language=\"javascript\" \n methodParams={['handler']}\n />\n <RegisterErrorHandler\n language=\"javascript\" \n methodParams={['handler']}\n />\n <RegisterOutgoingProcessor />\n <HandleMessage \n language=\"javascript\" \n methodParams={['message', 'cb']}\n />\n <CompileOperationSchemas sendOperations={sendOperations} />\n <SendOperations \n language=\"javascript\" \n sendOperations={sendOperations} \n clientName={clientName} \n />\n <CloseConnection language=\"javascript\" />\n <Text>\n {'}'}\n </Text>\n <ModuleExport clientName={clientName} />\n </Text>\n );\n}\n","import { File } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getInfo, getTitle } from '@asyncapi/generator-helpers';\nimport { FileHeaderInfo, DependencyProvider } from '@asyncapi/generator-components';\nimport { ClientClass } from '../components/ClientClass';\n\nexport default function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const title = getTitle(asyncapi);\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n const sendOperations = asyncapi.operations().filterBySend();\n const asyncapiFilepath = `${params.asyncapiFileDir}/asyncapi.yaml`;\n return (\n <File name={params.clientFileName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"javascript\"\n />\n <DependencyProvider\n language=\"javascript\"\n additionalDependencies={['const path = require(\\'path\\');', `const asyncapiFilepath = path.resolve(__dirname, '${asyncapiFilepath}');`]}\n />\n <ClientClass clientName={clientName} serverUrl={serverUrl} title={title} sendOperations={sendOperations} />\n </File>\n );\n}\n"],"names":["Constructor","serverUrl","sendOperations","sendOperationsId","map","operation","id","sendOperationsArray","JSON","stringify","_jsx","Text","indent","children","ModuleExport","clientName","CompileOperationSchemas","length","_Fragment","newLines","RegisterOutgoingProcessor","ClientClass","title","_jsxs","Connect","language","RegisterMessageHandler","methodParams","RegisterErrorHandler","HandleMessage","SendOperations","CloseConnection","asyncapi","params","server","getServer","servers","info","getInfo","getTitle","getClientName","appendClientSuffix","customClientName","getServerUrl","operations","filterBySend","asyncapiFilepath","asyncapiFileDir","File","name","clientFileName","FileHeaderInfo","DependencyProvider","additionalDependencies"],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Constructor } from './Constructor';
3
3
  import { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';
4
4
  import { ModuleExport } from './ModuleExport';
5
5
  import { CompileOperationSchemas } from './CompileOperationSchemas';
6
+ import { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';
6
7
 
7
8
  export function ClientClass({ clientName, serverUrl, title, sendOperations }) {
8
9
  return (
@@ -20,6 +21,7 @@ export function ClientClass({ clientName, serverUrl, title, sendOperations }) {
20
21
  language="javascript"
21
22
  methodParams={['handler']}
22
23
  />
24
+ <RegisterOutgoingProcessor />
23
25
  <HandleMessage
24
26
  language="javascript"
25
27
  methodParams={['message', 'cb']}
@@ -16,6 +16,7 @@ constructor(url) {
16
16
  this.websocket = null;
17
17
  this.messageHandlers = [];
18
18
  this.errorHandlers = [];
19
+ this.outgoingProcessors = [];
19
20
  this.compiledSchemas = {};
20
21
  this.schemasCompiled = false;
21
22
  this.sendOperationsId = ${sendOperationsArray};
@@ -0,0 +1,17 @@
1
+ import { Text } from '@asyncapi/generator-react-sdk';
2
+
3
+ export function RegisterOutgoingProcessor() {
4
+ return (
5
+ <Text newLines={2} indent={2}>
6
+ {
7
+ `registerOutgoingProcessor(processor) {
8
+ if (typeof processor === 'function') {
9
+ this.outgoingProcessors.push(processor);
10
+ } else {
11
+ console.warn('Outgoing processor must be a function');
12
+ }
13
+ }`
14
+ }
15
+ </Text>
16
+ );
17
+ }
@@ -14,9 +14,18 @@ function myErrorHandler(error) {
14
14
  console.error('Errors from Websocket:', error.message);
15
15
  }
16
16
 
17
+ // Example of an outgoing processor — runs before every message is sent.
18
+ // Use it for logging, adding metadata, transforming payloads, etc.
19
+ function outgoingProcessor(message) {
20
+ const processed = { payload: message, timestamp: new Date().toISOString() };
21
+ console.log('Outgoing processor fired:', JSON.stringify(processed));
22
+ return processed;
23
+ }
24
+
17
25
  async function main() {
18
26
  wsClient.registerMessageHandler(myHandler);
19
27
  wsClient.registerErrorHandler(myErrorHandler);
28
+ wsClient.registerOutgoingProcessor(outgoingProcessor);
20
29
 
21
30
  try {
22
31
  await wsClient.connect();
@@ -9,7 +9,6 @@ var Send = require('./Send.js');
9
9
  var Constructor = require('./Constructor.js');
10
10
  var generatorComponents = require('@asyncapi/generator-components');
11
11
  var RegisterOutgoingProcessor = require('./RegisterOutgoingProcessor.js');
12
- var HandleError = require('./HandleError.js');
13
12
  var RegisterReceiveOperations = require('./RegisterReceiveOperations.js');
14
13
  var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
15
14
  require('./QueryParamsArgumentsDocs.js');
@@ -54,7 +53,9 @@ function ClientClass({
54
53
  methodName: "handle_message",
55
54
  methodParams: ['self', 'message'],
56
55
  preExecutionCode: "\"\"\"Pass the incoming message to all registered message handlers. \"\"\""
57
- }), /*#__PURE__*/jsxRuntime.jsx(HandleError.HandleError, {}), /*#__PURE__*/jsxRuntime.jsx(RegisterReceiveOperations.RegisterReceiveOperations, {
56
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleError, {
57
+ language: "python"
58
+ }), /*#__PURE__*/jsxRuntime.jsx(RegisterReceiveOperations.RegisterReceiveOperations, {
58
59
  receiveOperations: receiveOperations
59
60
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.SendOperations, {
60
61
  language: "python",
@@ -1 +1 @@
1
- {"version":3,"file":"ClientClass.js","sources":["../../../../../../../../packages/templates/clients/websocket/python/components/ClientClass.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getQueryParams, getTitle } from '@asyncapi/generator-helpers';\nimport { Send } from './Send';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';\nimport { HandleError } from './HandleError';\nimport { RegisterReceiveOperations } from './RegisterReceiveOperations';\n\nexport function ClientClass({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const title = getTitle(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n const operations = asyncapi.operations();\n const sendOperations = operations.filterBySend();\n const receiveOperations = operations.filterByReceive();\n\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName}:`}\n </Text>\n <Constructor serverUrl={serverUrl} query={queryParams} receiveOperations={receiveOperations} />\n <Connect language=\"python\" title={title} />\n <RegisterMessageHandler\n language=\"python\"\n methodName='register_message_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process incoming messages.\"\"\"'\n />\n <RegisterErrorHandler\n language=\"python\"\n methodName='register_error_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process errors.\"\"\"'\n />\n <RegisterOutgoingProcessor />\n <HandleMessage\n language=\"python\"\n methodName='handle_message'\n methodParams={['self', 'message']}\n preExecutionCode='\"\"\"Pass the incoming message to all registered message handlers. \"\"\"'\n />\n <HandleError />\n <RegisterReceiveOperations receiveOperations={receiveOperations} />\n <SendOperations \n language=\"python\"\n sendOperations={sendOperations} \n clientName={clientName} \n />\n <Send sendOperations={sendOperations} />\n <CloseConnection \n language=\"python\" \n methodParams={['self']}\n preExecutionCode='\"\"\"Cleanly close the WebSocket connection.\"\"\"'\n />\n </Text>\n );\n}\n"],"names":["ClientClass","asyncapi","params","server","getServer","servers","title","getTitle","queryParams","getQueryParams","channels","clientName","getClientName","appendClientSuffix","customClientName","serverUrl","getServerUrl","operations","sendOperations","filterBySend","receiveOperations","filterByReceive","_jsxs","Text","children","_jsx","newLines","Constructor","query","Connect","language","RegisterMessageHandler","methodName","methodParams","preExecutionCode","RegisterErrorHandler","RegisterOutgoingProcessor","HandleMessage","HandleError","RegisterReceiveOperations","SendOperations","Send","CloseConnection"],"mappings":"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"}
1
+ {"version":3,"file":"ClientClass.js","sources":["../../../../../../../../packages/templates/clients/websocket/python/components/ClientClass.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getQueryParams, getTitle } from '@asyncapi/generator-helpers';\nimport { Send } from './Send';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage, HandleError } from '@asyncapi/generator-components';\nimport { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';\nimport { RegisterReceiveOperations } from './RegisterReceiveOperations';\n\nexport function ClientClass({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const title = getTitle(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n const operations = asyncapi.operations();\n const sendOperations = operations.filterBySend();\n const receiveOperations = operations.filterByReceive();\n\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName}:`}\n </Text>\n <Constructor serverUrl={serverUrl} query={queryParams} receiveOperations={receiveOperations} />\n <Connect language=\"python\" title={title} />\n <RegisterMessageHandler\n language=\"python\"\n methodName='register_message_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process incoming messages.\"\"\"'\n />\n <RegisterErrorHandler\n language=\"python\"\n methodName='register_error_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process errors.\"\"\"'\n />\n <RegisterOutgoingProcessor />\n <HandleMessage\n language=\"python\"\n methodName='handle_message'\n methodParams={['self', 'message']}\n preExecutionCode='\"\"\"Pass the incoming message to all registered message handlers. \"\"\"'\n />\n <HandleError language=\"python\" />\n <RegisterReceiveOperations receiveOperations={receiveOperations} />\n <SendOperations \n language=\"python\"\n sendOperations={sendOperations} \n clientName={clientName} \n />\n <Send sendOperations={sendOperations} />\n <CloseConnection \n language=\"python\" \n methodParams={['self']}\n preExecutionCode='\"\"\"Cleanly close the WebSocket connection.\"\"\"'\n />\n </Text>\n );\n}\n"],"names":["ClientClass","asyncapi","params","server","getServer","servers","title","getTitle","queryParams","getQueryParams","channels","clientName","getClientName","appendClientSuffix","customClientName","serverUrl","getServerUrl","operations","sendOperations","filterBySend","receiveOperations","filterByReceive","_jsxs","Text","children","_jsx","newLines","Constructor","query","Connect","language","RegisterMessageHandler","methodName","methodParams","preExecutionCode","RegisterErrorHandler","RegisterOutgoingProcessor","HandleMessage","HandleError","RegisterReceiveOperations","SendOperations","Send","CloseConnection"],"mappings":"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"}
@@ -167,21 +167,6 @@ function RegisterOutgoingProcessor() {
167
167
  });
168
168
  }
169
169
 
170
- function HandleError() {
171
- return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
172
- newLines: 2,
173
- indent: 2,
174
- children: `def handle_error(self, error):
175
- """Pass the error to all registered error handlers. Generic log message is printed if no handlers are registered."""
176
- if len(self.error_handlers) == 0:
177
- print("\\033[91mError occurred:\\033[0m", error)
178
- else:
179
- # Call custom error handlers
180
- for handler in self.error_handlers:
181
- handler(error)`
182
- });
183
- }
184
-
185
170
  function RegisterReceiveOperations({
186
171
  receiveOperations
187
172
  }) {
@@ -275,7 +260,9 @@ function ClientClass({
275
260
  methodName: "handle_message",
276
261
  methodParams: ['self', 'message'],
277
262
  preExecutionCode: "\"\"\"Pass the incoming message to all registered message handlers. \"\"\""
278
- }), /*#__PURE__*/jsxRuntime.jsx(HandleError, {}), /*#__PURE__*/jsxRuntime.jsx(RegisterReceiveOperations, {
263
+ }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleError, {
264
+ language: "python"
265
+ }), /*#__PURE__*/jsxRuntime.jsx(RegisterReceiveOperations, {
279
266
  receiveOperations: receiveOperations
280
267
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.SendOperations, {
281
268
  language: "python",
@@ -1 +1 @@
1
- {"version":3,"file":"client.py.js","sources":["../../../../../../../../packages/templates/clients/websocket/python/components/Requires.js","../../../../../../../../packages/templates/clients/websocket/python/components/Send.js","../../../../../../../../packages/templates/clients/websocket/python/components/QueryParamsArgumentsDocs.js","../../../../../../../../packages/templates/clients/websocket/python/components/InitSignature.js","../../../../../../../../packages/templates/clients/websocket/python/components/ReceiveOperationsDiscriminators.js","../../../../../../../../packages/templates/clients/websocket/python/components/Constructor.js","../../../../../../../../packages/templates/clients/websocket/python/components/RegisterOutgoingProcessor.js","../../../../../../../../packages/templates/clients/websocket/python/components/HandleError.js","../../../../../../../../packages/templates/clients/websocket/python/components/RegisterReceiveOperations.js","../../../../../../../../packages/templates/clients/websocket/python/components/ClientClass.js","../../../../../../../../packages/templates/clients/websocket/python/template/client.py.js"],"sourcesContent":["import { DependencyProvider } from '@asyncapi/generator-components';\n\nexport function Requires({ query }) {\n const additionalDependencies = [];\n if (query) {\n additionalDependencies.push('import os');\n additionalDependencies.push('from urllib.parse import urlencode');\n }\n return (\n <DependencyProvider\n language=\"python\"\n additionalDependencies={additionalDependencies}\n />\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Send({ sendOperations }) {\n if (!sendOperations || sendOperations.length === 0) {\n return null;\n }\n\n return (\n <Text newLines={2} indent={2}>\n {\n `\n@staticmethod\ndef _send(message, socket):\n \"\"\"\n Internal helper to handle the actual sending logic.\n\n Args:\n message (dict or str): The message to send.\n socket (websockets.WebSocketCommonProtocol): The WebSocket to send through.\n\n Notes:\n If message is a dictionary, it will be automatically converted to JSON.\n \"\"\"\n try:\n if isinstance(message, dict):\n message = json.dumps(message)\n socket.send(message)\n except Exception as e:\n print(\"Error sending:\", e)`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function QueryParamsArgumentsDocs({ queryParams }) {\n if (!queryParams) {\n return null;\n }\n\n return queryParams.map((param) => {\n const paramName = param[0];\n const firstLine = `${paramName} (str, optional):`;\n const secondLine = `If provided (or if ${paramName.toUpperCase()} environment variable is set), added as ?${paramName}=… to URL`;\n return (\n <Text indent={1}>\n {firstLine}\n {secondLine}\n </Text>\n );\n });\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function InitSignature({ queryParams, serverUrl }) {\n if (!queryParams) {\n return (\n <Text indent={2} newLines={2}>\n {`def __init__(self, url: str = \"${serverUrl}\"):`}\n </Text>\n );\n }\n \n const queryParamsArguments = queryParams?.map((param) => {\n const paramName = param[0];\n const paramDefaultValue = param[1];\n const defaultValue = paramDefaultValue ? `\"${paramDefaultValue}\"` : 'None';\n return `${paramName}: str = ${defaultValue}`;\n }).join(', ');\n \n return (\n <Text indent={2} newLines={2}>\n {`def __init__(self, url: str = \"${serverUrl}\", ${queryParamsArguments}):`}\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { getMessageDiscriminatorsFromOperations } from '@asyncapi/generator-helpers';\n\n/**\n * Component that generates initialization code for receive operation discriminators.\n * \n * @param {Object} props - Component properties\n * @param {Array<Object>} [props.receiveOperations] - Receive operations from AsyncAPI document\n * @returns {React.Element|null} Rendered initialization code or null.\n */\nexport function ReceiveOperationsDiscriminators({ receiveOperations }) {\n const operationDiscriminators = Array.isArray(receiveOperations) && receiveOperations.length > 0\n ? getMessageDiscriminatorsFromOperations(receiveOperations)\n : [];\n const serializedDiscriminators = JSON.stringify(operationDiscriminators);\n\n return (\n <Text indent={2} newLines={2}>\n {`\n self.receive_operation_handlers = {}\n self.receive_operation_discriminators = ${serializedDiscriminators}`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { QueryParamsVariables } from '@asyncapi/generator-components';\nimport { QueryParamsArgumentsDocs } from './QueryParamsArgumentsDocs';\nimport { InitSignature } from './InitSignature';\nimport { ReceiveOperationsDiscriminators } from './ReceiveOperationsDiscriminators';\n\nexport function Constructor({ serverUrl, query, receiveOperations }) {\n const queryParamsArray = query && Array.from(query.entries());\n\n return (\n <>\n <InitSignature queryParams={queryParamsArray} serverUrl={serverUrl} />\n <Text indent={2}>\n {`\n \"\"\"\n Constructor to initialize the WebSocket client.\n\n Args:\n url (str, optional): The WebSocket server URL. Use it if the server URL is \n different from the default one taken from the AsyncAPI document.`}\n </Text>\n <QueryParamsArgumentsDocs queryParams={queryParamsArray} />\n <Text indent={2}>\n {`\n \"\"\"\n self.ws_app = None # Instance of WebSocketApp\n self.message_handlers = [] # Callables for incoming messages\n self.error_handlers = [] # Callables for errors\n self.outgoing_processors = [] # Callables to process outgoing messages\n self._stop_event = threading.Event()\n ${ query ? 'params = {}' : ''}`\n }\n </Text>\n <ReceiveOperationsDiscriminators receiveOperations={receiveOperations} />\n <QueryParamsVariables\n language=\"python\"\n queryParams={queryParamsArray} \n />\n <Text newLines={2}>\n {`\n ${query ? 'qs = urlencode(params) if params else \"\"' : ''}\n ${query ? 'self.url = f\"{url}{f\\'?{qs}\\' if qs else \\'\\'}\"' : 'self.url = url'}`}\n </Text>\n </>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function RegisterOutgoingProcessor() {\n return (\n <Text newLines={2} indent={2}>\n {\n `def register_outgoing_processor(self, processor):\n \"\"\"\n Register a callable that processes outgoing messages automatically.\n These processors run in sequence before each message is sent.\n \"\"\"\n if callable(processor):\n self.outgoing_processors.append(processor)\n else:\n print(\"Outgoing processor must be callable\")`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function HandleError() {\n return (\n <Text newLines={2} indent={2}>\n {\n `def handle_error(self, error):\n \"\"\"Pass the error to all registered error handlers. Generic log message is printed if no handlers are registered.\"\"\"\n if len(self.error_handlers) == 0:\n print(\"\\\\033[91mError occurred:\\\\033[0m\", error)\n else:\n # Call custom error handlers\n for handler in self.error_handlers:\n handler(error)`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { toSnakeCase } from '@asyncapi/generator-helpers';\n\n/**\n * Component for rendering receive operation handler registration methods\n * Generates one specific method per operation for better DX\n * \n* @param {Object} props - Component props\n* @param {Array} props.receiveOperations - Array of receive operations from AsyncAPI document\n* @returns {Array<React.Element>|null} Array of Text components containing Python handler registration methods, or null if no operations\n */\nexport function RegisterReceiveOperations({ receiveOperations }) {\n if (!receiveOperations || receiveOperations.length === 0) {\n return null;\n }\n\n return receiveOperations.map((operation) => {\n const operationId = operation.id();\n const methodName = `register_${toSnakeCase(operationId)}_handler`;\n\n return (\n <Text indent={2} newLines={2} key={operationId}>\n {`def ${methodName}(self, handler, discriminator_key=None, discriminator_value=None):\n \"\"\"\n Register a handler for ${operationId} operation.\n\n Args:\n handler (callable): Handler function that receives raw_message as argument\n discriminator_key (str): Message field to use for routing (e.g., 'type', 'event_type')\n discriminator_value (str): Expected value for routing (e.g., 'hello', 'user_joined')\n \"\"\"\n if not callable(handler):\n print(\"Handler must be callable\")\n return\n\n # Validate that either both discriminator_key and discriminator_value are provided or neither\n if (discriminator_key is not None and discriminator_value is None) or (discriminator_key is None and discriminator_value is not None):\n print(\"Error: Both discriminator_key and discriminator_value must be provided together\")\n return\n\n # Register handler\n self.receive_operation_handlers[\"${operationId}\"] = handler\n\n # Add discriminator entry to the list if both key and value are provided\n if discriminator_key is not None and discriminator_value is not None:\n discriminator_entry = {\n \"key\": discriminator_key,\n \"value\": discriminator_value,\n \"operation_id\": \"${operationId}\"\n }\n \n # Check if this discriminator already exists\n exists = any(\n d.get(\"key\") == discriminator_key and \n d.get(\"value\") == discriminator_value and \n d.get(\"operation_id\") == \"${operationId}\" \n for d in self.receive_operation_discriminators\n )\n\n if not exists:\n self.receive_operation_discriminators.append(discriminator_entry)`}\n </Text>\n );\n });\n}","import { Text } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getQueryParams, getTitle } from '@asyncapi/generator-helpers';\nimport { Send } from './Send';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';\nimport { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';\nimport { HandleError } from './HandleError';\nimport { RegisterReceiveOperations } from './RegisterReceiveOperations';\n\nexport function ClientClass({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const title = getTitle(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n const operations = asyncapi.operations();\n const sendOperations = operations.filterBySend();\n const receiveOperations = operations.filterByReceive();\n\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName}:`}\n </Text>\n <Constructor serverUrl={serverUrl} query={queryParams} receiveOperations={receiveOperations} />\n <Connect language=\"python\" title={title} />\n <RegisterMessageHandler\n language=\"python\"\n methodName='register_message_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process incoming messages.\"\"\"'\n />\n <RegisterErrorHandler\n language=\"python\"\n methodName='register_error_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process errors.\"\"\"'\n />\n <RegisterOutgoingProcessor />\n <HandleMessage\n language=\"python\"\n methodName='handle_message'\n methodParams={['self', 'message']}\n preExecutionCode='\"\"\"Pass the incoming message to all registered message handlers. \"\"\"'\n />\n <HandleError />\n <RegisterReceiveOperations receiveOperations={receiveOperations} />\n <SendOperations \n language=\"python\"\n sendOperations={sendOperations} \n clientName={clientName} \n />\n <Send sendOperations={sendOperations} />\n <CloseConnection \n language=\"python\" \n methodParams={['self']}\n preExecutionCode='\"\"\"Cleanly close the WebSocket connection.\"\"\"'\n />\n </Text>\n );\n}\n","import { File } from '@asyncapi/generator-react-sdk';\nimport { getServer, getQueryParams, getInfo } from '@asyncapi/generator-helpers';\nimport { FileHeaderInfo } from '@asyncapi/generator-components';\nimport { Requires } from '../components/Requires';\nimport { ClientClass } from '../components/ClientClass';\n\nexport default function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n return (\n // The clientFileName default values can be found and modified under the .ageneratorrc\n <File name={params.clientFileName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"python\"\n />\n <Requires query={queryParams} />\n <ClientClass asyncapi={asyncapi} params={params} />\n </File>\n );\n}\n"],"names":["Requires","query","additionalDependencies","push","_jsx","DependencyProvider","language","Send","sendOperations","length","Text","newLines","indent","children","QueryParamsArgumentsDocs","queryParams","map","param","paramName","firstLine","secondLine","toUpperCase","_jsxs","InitSignature","serverUrl","queryParamsArguments","paramDefaultValue","defaultValue","join","ReceiveOperationsDiscriminators","receiveOperations","operationDiscriminators","Array","isArray","getMessageDiscriminatorsFromOperations","serializedDiscriminators","JSON","stringify","Constructor","queryParamsArray","from","entries","_Fragment","QueryParamsVariables","RegisterOutgoingProcessor","HandleError","RegisterReceiveOperations","operation","operationId","id","methodName","toSnakeCase","ClientClass","asyncapi","params","server","getServer","servers","title","getTitle","getQueryParams","channels","clientName","getClientName","appendClientSuffix","customClientName","getServerUrl","operations","filterBySend","filterByReceive","Connect","RegisterMessageHandler","methodParams","preExecutionCode","RegisterErrorHandler","HandleMessage","SendOperations","CloseConnection","info","getInfo","File","name","clientFileName","FileHeaderInfo"],"mappings":"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"}
1
+ {"version":3,"file":"client.py.js","sources":["../../../../../../../../packages/templates/clients/websocket/python/components/Requires.js","../../../../../../../../packages/templates/clients/websocket/python/components/Send.js","../../../../../../../../packages/templates/clients/websocket/python/components/QueryParamsArgumentsDocs.js","../../../../../../../../packages/templates/clients/websocket/python/components/InitSignature.js","../../../../../../../../packages/templates/clients/websocket/python/components/ReceiveOperationsDiscriminators.js","../../../../../../../../packages/templates/clients/websocket/python/components/Constructor.js","../../../../../../../../packages/templates/clients/websocket/python/components/RegisterOutgoingProcessor.js","../../../../../../../../packages/templates/clients/websocket/python/components/RegisterReceiveOperations.js","../../../../../../../../packages/templates/clients/websocket/python/components/ClientClass.js","../../../../../../../../packages/templates/clients/websocket/python/template/client.py.js"],"sourcesContent":["import { DependencyProvider } from '@asyncapi/generator-components';\n\nexport function Requires({ query }) {\n const additionalDependencies = [];\n if (query) {\n additionalDependencies.push('import os');\n additionalDependencies.push('from urllib.parse import urlencode');\n }\n return (\n <DependencyProvider\n language=\"python\"\n additionalDependencies={additionalDependencies}\n />\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function Send({ sendOperations }) {\n if (!sendOperations || sendOperations.length === 0) {\n return null;\n }\n\n return (\n <Text newLines={2} indent={2}>\n {\n `\n@staticmethod\ndef _send(message, socket):\n \"\"\"\n Internal helper to handle the actual sending logic.\n\n Args:\n message (dict or str): The message to send.\n socket (websockets.WebSocketCommonProtocol): The WebSocket to send through.\n\n Notes:\n If message is a dictionary, it will be automatically converted to JSON.\n \"\"\"\n try:\n if isinstance(message, dict):\n message = json.dumps(message)\n socket.send(message)\n except Exception as e:\n print(\"Error sending:\", e)`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function QueryParamsArgumentsDocs({ queryParams }) {\n if (!queryParams) {\n return null;\n }\n\n return queryParams.map((param) => {\n const paramName = param[0];\n const firstLine = `${paramName} (str, optional):`;\n const secondLine = `If provided (or if ${paramName.toUpperCase()} environment variable is set), added as ?${paramName}=… to URL`;\n return (\n <Text indent={1}>\n {firstLine}\n {secondLine}\n </Text>\n );\n });\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function InitSignature({ queryParams, serverUrl }) {\n if (!queryParams) {\n return (\n <Text indent={2} newLines={2}>\n {`def __init__(self, url: str = \"${serverUrl}\"):`}\n </Text>\n );\n }\n \n const queryParamsArguments = queryParams?.map((param) => {\n const paramName = param[0];\n const paramDefaultValue = param[1];\n const defaultValue = paramDefaultValue ? `\"${paramDefaultValue}\"` : 'None';\n return `${paramName}: str = ${defaultValue}`;\n }).join(', ');\n \n return (\n <Text indent={2} newLines={2}>\n {`def __init__(self, url: str = \"${serverUrl}\", ${queryParamsArguments}):`}\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { getMessageDiscriminatorsFromOperations } from '@asyncapi/generator-helpers';\n\n/**\n * Component that generates initialization code for receive operation discriminators.\n * \n * @param {Object} props - Component properties\n * @param {Array<Object>} [props.receiveOperations] - Receive operations from AsyncAPI document\n * @returns {React.Element|null} Rendered initialization code or null.\n */\nexport function ReceiveOperationsDiscriminators({ receiveOperations }) {\n const operationDiscriminators = Array.isArray(receiveOperations) && receiveOperations.length > 0\n ? getMessageDiscriminatorsFromOperations(receiveOperations)\n : [];\n const serializedDiscriminators = JSON.stringify(operationDiscriminators);\n\n return (\n <Text indent={2} newLines={2}>\n {`\n self.receive_operation_handlers = {}\n self.receive_operation_discriminators = ${serializedDiscriminators}`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { QueryParamsVariables } from '@asyncapi/generator-components';\nimport { QueryParamsArgumentsDocs } from './QueryParamsArgumentsDocs';\nimport { InitSignature } from './InitSignature';\nimport { ReceiveOperationsDiscriminators } from './ReceiveOperationsDiscriminators';\n\nexport function Constructor({ serverUrl, query, receiveOperations }) {\n const queryParamsArray = query && Array.from(query.entries());\n\n return (\n <>\n <InitSignature queryParams={queryParamsArray} serverUrl={serverUrl} />\n <Text indent={2}>\n {`\n \"\"\"\n Constructor to initialize the WebSocket client.\n\n Args:\n url (str, optional): The WebSocket server URL. Use it if the server URL is \n different from the default one taken from the AsyncAPI document.`}\n </Text>\n <QueryParamsArgumentsDocs queryParams={queryParamsArray} />\n <Text indent={2}>\n {`\n \"\"\"\n self.ws_app = None # Instance of WebSocketApp\n self.message_handlers = [] # Callables for incoming messages\n self.error_handlers = [] # Callables for errors\n self.outgoing_processors = [] # Callables to process outgoing messages\n self._stop_event = threading.Event()\n ${ query ? 'params = {}' : ''}`\n }\n </Text>\n <ReceiveOperationsDiscriminators receiveOperations={receiveOperations} />\n <QueryParamsVariables\n language=\"python\"\n queryParams={queryParamsArray} \n />\n <Text newLines={2}>\n {`\n ${query ? 'qs = urlencode(params) if params else \"\"' : ''}\n ${query ? 'self.url = f\"{url}{f\\'?{qs}\\' if qs else \\'\\'}\"' : 'self.url = url'}`}\n </Text>\n </>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function RegisterOutgoingProcessor() {\n return (\n <Text newLines={2} indent={2}>\n {\n `def register_outgoing_processor(self, processor):\n \"\"\"\n Register a callable that processes outgoing messages automatically.\n These processors run in sequence before each message is sent.\n \"\"\"\n if callable(processor):\n self.outgoing_processors.append(processor)\n else:\n print(\"Outgoing processor must be callable\")`\n }\n </Text>\n );\n}\n","import { Text } from '@asyncapi/generator-react-sdk';\nimport { toSnakeCase } from '@asyncapi/generator-helpers';\n\n/**\n * Component for rendering receive operation handler registration methods\n * Generates one specific method per operation for better DX\n * \n* @param {Object} props - Component props\n* @param {Array} props.receiveOperations - Array of receive operations from AsyncAPI document\n* @returns {Array<React.Element>|null} Array of Text components containing Python handler registration methods, or null if no operations\n */\nexport function RegisterReceiveOperations({ receiveOperations }) {\n if (!receiveOperations || receiveOperations.length === 0) {\n return null;\n }\n\n return receiveOperations.map((operation) => {\n const operationId = operation.id();\n const methodName = `register_${toSnakeCase(operationId)}_handler`;\n\n return (\n <Text indent={2} newLines={2} key={operationId}>\n {`def ${methodName}(self, handler, discriminator_key=None, discriminator_value=None):\n \"\"\"\n Register a handler for ${operationId} operation.\n\n Args:\n handler (callable): Handler function that receives raw_message as argument\n discriminator_key (str): Message field to use for routing (e.g., 'type', 'event_type')\n discriminator_value (str): Expected value for routing (e.g., 'hello', 'user_joined')\n \"\"\"\n if not callable(handler):\n print(\"Handler must be callable\")\n return\n\n # Validate that either both discriminator_key and discriminator_value are provided or neither\n if (discriminator_key is not None and discriminator_value is None) or (discriminator_key is None and discriminator_value is not None):\n print(\"Error: Both discriminator_key and discriminator_value must be provided together\")\n return\n\n # Register handler\n self.receive_operation_handlers[\"${operationId}\"] = handler\n\n # Add discriminator entry to the list if both key and value are provided\n if discriminator_key is not None and discriminator_value is not None:\n discriminator_entry = {\n \"key\": discriminator_key,\n \"value\": discriminator_value,\n \"operation_id\": \"${operationId}\"\n }\n \n # Check if this discriminator already exists\n exists = any(\n d.get(\"key\") == discriminator_key and \n d.get(\"value\") == discriminator_value and \n d.get(\"operation_id\") == \"${operationId}\" \n for d in self.receive_operation_discriminators\n )\n\n if not exists:\n self.receive_operation_discriminators.append(discriminator_entry)`}\n </Text>\n );\n });\n}","import { Text } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServerUrl, getServer, getQueryParams, getTitle } from '@asyncapi/generator-helpers';\nimport { Send } from './Send';\nimport { Constructor } from './Constructor';\nimport { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage, HandleError } from '@asyncapi/generator-components';\nimport { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';\nimport { RegisterReceiveOperations } from './RegisterReceiveOperations';\n\nexport function ClientClass({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const title = getTitle(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const serverUrl = getServerUrl(server);\n const operations = asyncapi.operations();\n const sendOperations = operations.filterBySend();\n const receiveOperations = operations.filterByReceive();\n\n return (\n <Text>\n <Text newLines={2}>\n {`class ${clientName}:`}\n </Text>\n <Constructor serverUrl={serverUrl} query={queryParams} receiveOperations={receiveOperations} />\n <Connect language=\"python\" title={title} />\n <RegisterMessageHandler\n language=\"python\"\n methodName='register_message_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process incoming messages.\"\"\"'\n />\n <RegisterErrorHandler\n language=\"python\"\n methodName='register_error_handler'\n methodParams={['self', 'handler']}\n preExecutionCode='\"\"\"Register a callable to process errors.\"\"\"'\n />\n <RegisterOutgoingProcessor />\n <HandleMessage\n language=\"python\"\n methodName='handle_message'\n methodParams={['self', 'message']}\n preExecutionCode='\"\"\"Pass the incoming message to all registered message handlers. \"\"\"'\n />\n <HandleError language=\"python\" />\n <RegisterReceiveOperations receiveOperations={receiveOperations} />\n <SendOperations \n language=\"python\"\n sendOperations={sendOperations} \n clientName={clientName} \n />\n <Send sendOperations={sendOperations} />\n <CloseConnection \n language=\"python\" \n methodParams={['self']}\n preExecutionCode='\"\"\"Cleanly close the WebSocket connection.\"\"\"'\n />\n </Text>\n );\n}\n","import { File } from '@asyncapi/generator-react-sdk';\nimport { getServer, getQueryParams, getInfo } from '@asyncapi/generator-helpers';\nimport { FileHeaderInfo } from '@asyncapi/generator-components';\nimport { Requires } from '../components/Requires';\nimport { ClientClass } from '../components/ClientClass';\n\nexport default function ({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const queryParams = getQueryParams(asyncapi.channels());\n return (\n // The clientFileName default values can be found and modified under the .ageneratorrc\n <File name={params.clientFileName}>\n <FileHeaderInfo\n info={info}\n server={server}\n language=\"python\"\n />\n <Requires query={queryParams} />\n <ClientClass asyncapi={asyncapi} params={params} />\n </File>\n );\n}\n"],"names":["Requires","query","additionalDependencies","push","_jsx","DependencyProvider","language","Send","sendOperations","length","Text","newLines","indent","children","QueryParamsArgumentsDocs","queryParams","map","param","paramName","firstLine","secondLine","toUpperCase","_jsxs","InitSignature","serverUrl","queryParamsArguments","paramDefaultValue","defaultValue","join","ReceiveOperationsDiscriminators","receiveOperations","operationDiscriminators","Array","isArray","getMessageDiscriminatorsFromOperations","serializedDiscriminators","JSON","stringify","Constructor","queryParamsArray","from","entries","_Fragment","QueryParamsVariables","RegisterOutgoingProcessor","RegisterReceiveOperations","operation","operationId","id","methodName","toSnakeCase","ClientClass","asyncapi","params","server","getServer","servers","title","getTitle","getQueryParams","channels","clientName","getClientName","appendClientSuffix","customClientName","getServerUrl","operations","filterBySend","filterByReceive","Connect","RegisterMessageHandler","methodParams","preExecutionCode","RegisterErrorHandler","HandleMessage","HandleError","SendOperations","CloseConnection","info","getInfo","File","name","clientFileName","FileHeaderInfo"],"mappings":"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"}
@@ -2,9 +2,8 @@ import { Text } from '@asyncapi/generator-react-sdk';
2
2
  import { getClientName, getServerUrl, getServer, getQueryParams, getTitle } from '@asyncapi/generator-helpers';
3
3
  import { Send } from './Send';
4
4
  import { Constructor } from './Constructor';
5
- import { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage } from '@asyncapi/generator-components';
5
+ import { CloseConnection, RegisterMessageHandler, RegisterErrorHandler, SendOperations, Connect, HandleMessage, HandleError } from '@asyncapi/generator-components';
6
6
  import { RegisterOutgoingProcessor } from './RegisterOutgoingProcessor';
7
- import { HandleError } from './HandleError';
8
7
  import { RegisterReceiveOperations } from './RegisterReceiveOperations';
9
8
 
10
9
  export function ClientClass({ asyncapi, params }) {
@@ -43,7 +42,7 @@ export function ClientClass({ asyncapi, params }) {
43
42
  methodParams={['self', 'message']}
44
43
  preExecutionCode='"""Pass the incoming message to all registered message handlers. """'
45
44
  />
46
- <HandleError />
45
+ <HandleError language="python" />
47
46
  <RegisterReceiveOperations receiveOperations={receiveOperations} />
48
47
  <SendOperations
49
48
  language="python"
@@ -75,7 +75,7 @@ function isTemplateCompatible(generator, apiVersion) {
75
75
  */
76
76
  function isRequiredParamProvided(configParams, templateParams) {
77
77
  const missingParams = Object.keys(configParams || {})
78
- .filter(key => configParams[key].required && !templateParams[key]);
78
+ .filter(key => configParams[key].required && templateParams[key] === undefined);
79
79
 
80
80
  if (missingParams.length) {
81
81
  throw new Error(`This template requires the following missing params: ${missingParams}.`);
package/lib/utils.js CHANGED
@@ -64,13 +64,15 @@ utils.convertMapToObject = (map) => {
64
64
  *
65
65
  * @param {String} link URL where the AsyncAPI document is located.
66
66
  * @returns {Promise<String>} Content of fetched file.
67
+ * @throws {Error} When the HTTP response is not successful (non-2xx status).
67
68
  */
68
- utils.fetchSpec = (link) => {
69
- return new Promise((resolve, reject) => {
70
- fetch(link)
71
- .then(res => resolve(res.text()))
72
- .catch(reject);
73
- });
69
+ utils.fetchSpec = async (link) => {
70
+ const res = await fetch(link);
71
+ if (!res.ok) {
72
+ const statusText = res.statusText ? ` ${res.statusText}` : '';
73
+ throw new Error(logMessage.fetchSpecError(link, res.status, statusText));
74
+ }
75
+ return res.text();
74
76
  };
75
77
 
76
78
  /**
@@ -120,11 +122,11 @@ utils.isAsyncFunction = (fn) => {
120
122
  */
121
123
  utils.registerTypeScript = (filePath) => {
122
124
  const isTypescriptFile = filePath.endsWith('.ts');
123
-
125
+
124
126
  if (!isTypescriptFile) {
125
127
  return;
126
128
  }
127
-
129
+
128
130
  const { REGISTER_INSTANCE, register } = require('ts-node');
129
131
  // if the ts-node has already been registered before, do not register it again.
130
132
  // Check the env. TS_NODE_ENV if ts-node started via ts-node-dev package
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asyncapi/generator",
3
- "version": "3.2.1",
3
+ "version": "3.2.2",
4
4
  "description": "The AsyncAPI generator. It can generate documentation, code, anything!",
5
5
  "main": "./lib/generator.js",
6
6
  "engines": {
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- require('source-map-support/register');
4
- var generatorReactSdk = require('@asyncapi/generator-react-sdk');
5
- var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
6
-
7
- function HandleError() {
8
- return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
9
- indent: 2,
10
- children: `@OnError
11
- public void onError(Throwable throwable) {
12
- LOG.error("Websocket connection error: " + throwable.getMessage());
13
- }
14
- `
15
- });
16
- }
17
-
18
- module.exports = HandleError;
19
- //# sourceMappingURL=HandleError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HandleError.js","sources":["../../../../../../../../packages/templates/clients/websocket/java/quarkus/components/HandleError.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport default function HandleError() {\n return (\n <Text indent={2}>\n {`@OnError\npublic void onError(Throwable throwable) {\n LOG.error(\"Websocket connection error: \" + throwable.getMessage());\n}\n`}\n </Text>\n );\n}\n\n"],"names":["HandleError","_jsx","Text","indent","children"],"mappings":";;;;;;AAEe,SAASA,WAAWA,GAAG;EACpC,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EACb,CAAA;AACP;AACA;AACA;AACA,CAAA;AAAC,GACS,CAAC,CAAA;AAEX;;;;"}
@@ -1,14 +0,0 @@
1
- import { Text } from '@asyncapi/generator-react-sdk';
2
-
3
- export default function HandleError() {
4
- return (
5
- <Text indent={2}>
6
- {`@OnError
7
- public void onError(Throwable throwable) {
8
- LOG.error("Websocket connection error: " + throwable.getMessage());
9
- }
10
- `}
11
- </Text>
12
- );
13
- }
14
-
@@ -1,25 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- require('source-map-support/register');
6
- var generatorReactSdk = require('@asyncapi/generator-react-sdk');
7
- var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
8
-
9
- function HandleError() {
10
- return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
11
- newLines: 2,
12
- indent: 2,
13
- children: `def handle_error(self, error):
14
- """Pass the error to all registered error handlers. Generic log message is printed if no handlers are registered."""
15
- if len(self.error_handlers) == 0:
16
- print("\\033[91mError occurred:\\033[0m", error)
17
- else:
18
- # Call custom error handlers
19
- for handler in self.error_handlers:
20
- handler(error)`
21
- });
22
- }
23
-
24
- exports.HandleError = HandleError;
25
- //# sourceMappingURL=HandleError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HandleError.js","sources":["../../../../../../../../packages/templates/clients/websocket/python/components/HandleError.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport function HandleError() {\n return (\n <Text newLines={2} indent={2}>\n {\n `def handle_error(self, error):\n \"\"\"Pass the error to all registered error handlers. Generic log message is printed if no handlers are registered.\"\"\"\n if len(self.error_handlers) == 0:\n print(\"\\\\033[91mError occurred:\\\\033[0m\", error)\n else:\n # Call custom error handlers\n for handler in self.error_handlers:\n handler(error)`\n }\n </Text>\n );\n}\n"],"names":["HandleError","_jsx","Text","newLines","indent","children"],"mappings":";;;;;;;;AAEO,SAASA,WAAWA,GAAG;EAC5B,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,QAAQ,EAAE,CAAE;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEzB,CAAA;AACR;AACA;AACA;AACA;AACA;AACA;AACA,sBAAA,CAAA;AAAuB,GAEb,CAAC,CAAA;AAEX;;;;"}
@@ -1,18 +0,0 @@
1
- import { Text } from '@asyncapi/generator-react-sdk';
2
-
3
- export function HandleError() {
4
- return (
5
- <Text newLines={2} indent={2}>
6
- {
7
- `def handle_error(self, error):
8
- """Pass the error to all registered error handlers. Generic log message is printed if no handlers are registered."""
9
- if len(self.error_handlers) == 0:
10
- print("\\033[91mError occurred:\\033[0m", error)
11
- else:
12
- # Call custom error handlers
13
- for handler in self.error_handlers:
14
- handler(error)`
15
- }
16
- </Text>
17
- );
18
- }