@asyncapi/generator 2.8.4 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/docs/api.md +2 -51
  3. package/docs/asyncapi-document.md +1 -1
  4. package/docs/configuration-file.md +0 -4
  5. package/docs/file-templates.md +1 -59
  6. package/docs/generator-template-java.md +0 -2
  7. package/docs/generator-template.md +1 -4
  8. package/docs/index.md +2 -2
  9. package/docs/jsdoc2md-handlebars/main-index/global-index/global-index-dl.hbs +13 -0
  10. package/docs/jsdoc2md-handlebars/member-index-grouped.hbs +6 -0
  11. package/docs/jsdoc2md-handlebars/member-index-list.hbs +6 -0
  12. package/docs/jsdoc2md-handlebars/members.hbs +1 -0
  13. package/docs/react-render-engine.md +5 -37
  14. package/docs/template-development.md +2 -7
  15. package/docs/template.md +2 -2
  16. package/docs/typescript-support.md +3 -5
  17. package/jest.config.js +3 -6
  18. package/lib/__mocks__/utils.js +0 -3
  19. package/lib/generator.js +4 -20
  20. package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/.ageneratorrc +2 -4
  21. package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/jest.config.js +13 -0
  22. package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/__transpiled/jest.config.js.map +1 -0
  23. package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/jest.config.js +14 -0
  24. package/lib/templates/bakedInTemplates/core-template-client-kafka-java-quarkus/package.json +3 -17
  25. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/.ageneratorrc +0 -1
  26. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/jest.config.js +13 -0
  27. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/__transpiled/jest.config.js.map +1 -0
  28. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/jest.config.js +14 -0
  29. package/lib/templates/bakedInTemplates/core-template-client-websocket-dart/package.json +3 -17
  30. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/.ageneratorrc +0 -2
  31. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/jest.config.js +13 -0
  32. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/__transpiled/jest.config.js.map +1 -0
  33. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/jest.config.js +14 -0
  34. package/lib/templates/bakedInTemplates/core-template-client-websocket-java-quarkus/package.json +4 -18
  35. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/.ageneratorrc +8 -1
  36. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js +5 -1
  37. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/ClientClass.js.map +1 -1
  38. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/CompileOperationSchemas.js +48 -0
  39. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/CompileOperationSchemas.js.map +1 -0
  40. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js +7 -1
  41. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/Constructor.js.map +1 -1
  42. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/jest.config.js +13 -0
  43. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/jest.config.js.map +1 -0
  44. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/README.md.js +5 -153
  45. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/README.md.js.map +1 -1
  46. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js +52 -3
  47. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/template/client.js.js.map +1 -1
  48. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/ClientClass.js +4 -2
  49. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/CompileOperationSchemas.js +40 -0
  50. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/Constructor.js +7 -1
  51. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/jest.config.js +14 -0
  52. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/package.json +7 -20
  53. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/template/README.md.js +2 -103
  54. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/template/client.js.js +5 -1
  55. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/.ageneratorrc +0 -1
  56. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/jest.config.js +13 -0
  57. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/jest.config.js.map +1 -0
  58. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/README.md.js +18 -0
  59. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/__transpiled/template/README.md.js.map +1 -0
  60. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/jest.config.js +14 -0
  61. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/package.json +3 -17
  62. package/lib/templates/bakedInTemplates/core-template-client-websocket-python/template/README.md.js +5 -0
  63. package/lib/templates/config/validator.js +3 -3
  64. package/lib/utils.js +0 -21
  65. package/package.json +7 -14
  66. package/Dockerfile +0 -20
  67. package/cli.js +0 -205
  68. package/docs/migration-cli.md +0 -70
  69. package/docs/migration-nunjucks-react.md +0 -144
  70. package/docs/nunjucks-render-engine.md +0 -83
  71. package/lib/filtersRegistry.js +0 -134
  72. package/lib/renderer/nunjucks.js +0 -42
  73. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/AvailableOperations.js +0 -34
  74. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/AvailableOperations.js.map +0 -1
  75. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/MessageExamples.js +0 -29
  76. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/MessageExamples.js.map +0 -1
  77. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/OperationHeader.js +0 -19
  78. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/__transpiled/components/OperationHeader.js.map +0 -1
  79. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/AvailableOperations.js +0 -20
  80. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/MessageExamples.js +0 -25
  81. package/lib/templates/bakedInTemplates/core-template-client-websocket-javascript/components/OperationHeader.js +0 -12
  82. package/lib/watcher.js +0 -147
@@ -18,13 +18,13 @@
18
18
  "lint:fix": "eslint --fix --max-warnings 0 --config ../../../../../../.eslintrc --ignore-path ../../../../../../.eslintignore ."
19
19
  },
20
20
  "dependencies": {
21
- "@asyncapi/generator-helpers": "0.2.0",
21
+ "@asyncapi/generator-helpers": "1.0.0",
22
22
  "@asyncapi/generator-react-sdk": "^1.1.2"
23
23
  },
24
24
  "devDependencies": {
25
25
  "@asyncapi/generator": "*",
26
- "@asyncapi/modelina": "^5.2.5",
27
- "@asyncapi/parser": "^3.0.14",
26
+ "@asyncapi/modelina": "^5.10.1",
27
+ "@asyncapi/parser": "^3.4.0",
28
28
  "@babel/cli": "^7.25.9",
29
29
  "@babel/core": "^7.26.0",
30
30
  "@babel/preset-env": "^7.26.0",
@@ -35,20 +35,6 @@
35
35
  "eslint-plugin-sonarjs": "^0.5.0",
36
36
  "jest-esm-transformer": "^1.0.0"
37
37
  },
38
- "jest": {
39
- "moduleFileExtensions": [
40
- "js",
41
- "json",
42
- "jsx"
43
- ],
44
- "transform": {
45
- "^.+\\.jsx?$": "babel-jest"
46
- },
47
- "moduleNameMapper": {
48
- "^nimma/legacy$": "<rootDir>/../../../../../node_modules/nimma/dist/legacy/cjs/index.js",
49
- "^nimma/(.*)": "<rootDir>/../../../../../node_modules/nimma/dist/cjs/$1"
50
- }
51
- },
52
38
  "babel": {
53
39
  "presets": [
54
40
  "@babel/preset-env",
@@ -1,4 +1,3 @@
1
- renderer: react
2
1
  apiVersion: v3
3
2
  parameters:
4
3
  server:
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ require('source-map-support/register');
4
+
5
+ const baseConfig = require('../../../../../jest.config.base');
6
+ module.exports = {
7
+ ...baseConfig(__dirname),
8
+ moduleFileExtensions: ['js', 'json', 'jsx'],
9
+ transform: {
10
+ '^.+\\.jsx?$': 'babel-jest'
11
+ }
12
+ };
13
+ //# sourceMappingURL=jest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.js","sources":["../../../../../../../packages/templates/clients/websocket/dart/jest.config.js"],"sourcesContent":["const baseConfig = require('../../../../../jest.config.base');\n\nmodule.exports = {\n ...baseConfig(__dirname),\n moduleFileExtensions: [\n 'js',\n 'json',\n 'jsx'\n ],\n transform: {\n '^.+\\\\.jsx?$': 'babel-jest'\n },\n};\n\n"],"names":["baseConfig","require","module","exports","__dirname","moduleFileExtensions","transform"],"mappings":";;;;AAAA,MAAMA,UAAU,GAAGC,OAAO,CAAC,iCAAiC,CAAC,CAAA;AAE7DC,MAAM,CAACC,OAAO,GAAG;EACf,GAAGH,UAAU,CAACI,SAAS,CAAC;AACxBC,EAAAA,oBAAoB,EAAE,CACpB,IAAI,EACJ,MAAM,EACN,KAAK,CACN;AACDC,EAAAA,SAAS,EAAE;AACT,IAAA,aAAa,EAAE,YAAA;AACjB,GAAA;AACF,CAAC;;"}
@@ -0,0 +1,14 @@
1
+ const baseConfig = require('../../../../../jest.config.base');
2
+
3
+ module.exports = {
4
+ ...baseConfig(__dirname),
5
+ moduleFileExtensions: [
6
+ 'js',
7
+ 'json',
8
+ 'jsx'
9
+ ],
10
+ transform: {
11
+ '^.+\\.jsx?$': 'babel-jest'
12
+ },
13
+ };
14
+
@@ -12,11 +12,11 @@
12
12
  "license": "Apache-2.0",
13
13
  "dependencies": {
14
14
  "@asyncapi/generator-react-sdk": "*",
15
- "@asyncapi/generator-helpers": "0.2.0",
16
- "@asyncapi/generator-components": "0.3.1"
15
+ "@asyncapi/generator-helpers": "1.0.0",
16
+ "@asyncapi/generator-components": "0.4.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@asyncapi/parser": "^3.0.14",
19
+ "@asyncapi/parser": "^3.4.0",
20
20
  "@babel/cli": "^7.25.9",
21
21
  "@babel/core": "^7.26.0",
22
22
  "@babel/preset-env": "^7.26.0",
@@ -27,20 +27,6 @@
27
27
  "eslint-plugin-react": "^7.34.1",
28
28
  "eslint-plugin-sonarjs": "^0.5.0"
29
29
  },
30
- "jest": {
31
- "moduleFileExtensions": [
32
- "js",
33
- "json",
34
- "jsx"
35
- ],
36
- "transform": {
37
- "^.+\\.jsx?$": "babel-jest"
38
- },
39
- "moduleNameMapper": {
40
- "^nimma/legacy$": "<rootDir>/../../../../../node_modules/nimma/dist/legacy/cjs/index.js",
41
- "^nimma/(.*)": "<rootDir>/../../../../../node_modules/nimma/dist/cjs/$1"
42
- }
43
- },
44
30
  "babel": {
45
31
  "presets": [
46
32
  "@babel/preset-env",
@@ -1,6 +1,4 @@
1
- renderer: react
2
1
  apiVersion: v3
3
- generator: '>=1.3.0 <3.0.0'
4
2
  parameters:
5
3
  server:
6
4
  description: The name of the server described in AsyncAPI document
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ require('source-map-support/register');
4
+
5
+ const baseConfig = require('../../../../../../jest.config.base');
6
+ module.exports = {
7
+ ...baseConfig(__dirname),
8
+ moduleFileExtensions: ['js', 'json', 'jsx'],
9
+ transform: {
10
+ '^.+\\.jsx?$': 'babel-jest'
11
+ }
12
+ };
13
+ //# sourceMappingURL=jest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.js","sources":["../../../../../../../packages/templates/clients/websocket/java/quarkus/jest.config.js"],"sourcesContent":["const baseConfig = require('../../../../../../jest.config.base');\n\nmodule.exports = {\n ...baseConfig(__dirname),\n moduleFileExtensions: [\n 'js',\n 'json',\n 'jsx'\n ],\n transform: {\n '^.+\\\\.jsx?$': 'babel-jest'\n },\n};\n\n"],"names":["baseConfig","require","module","exports","__dirname","moduleFileExtensions","transform"],"mappings":";;;;AAAA,MAAMA,UAAU,GAAGC,OAAO,CAAC,oCAAoC,CAAC,CAAA;AAEhEC,MAAM,CAACC,OAAO,GAAG;EACf,GAAGH,UAAU,CAACI,SAAS,CAAC;AACxBC,EAAAA,oBAAoB,EAAE,CACpB,IAAI,EACJ,MAAM,EACN,KAAK,CACN;AACDC,EAAAA,SAAS,EAAE;AACT,IAAA,aAAa,EAAE,YAAA;AACjB,GAAA;AACF,CAAC;;"}
@@ -0,0 +1,14 @@
1
+ const baseConfig = require('../../../../../../jest.config.base');
2
+
3
+ module.exports = {
4
+ ...baseConfig(__dirname),
5
+ moduleFileExtensions: [
6
+ 'js',
7
+ 'json',
8
+ 'jsx'
9
+ ],
10
+ transform: {
11
+ '^.+\\.jsx?$': 'babel-jest'
12
+ },
13
+ };
14
+
@@ -18,14 +18,14 @@
18
18
  "lint:fix": "eslint --fix --max-warnings 0 --config ../../../../../../.eslintrc --ignore-path ../../../../../../.eslintignore ."
19
19
  },
20
20
  "dependencies": {
21
- "@asyncapi/generator-helpers": "0.2.0",
22
- "@asyncapi/generator-components": "0.3.1",
21
+ "@asyncapi/generator-helpers": "1.0.0",
22
+ "@asyncapi/generator-components": "0.4.0",
23
23
  "@asyncapi/generator-react-sdk": "^1.1.2"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@asyncapi/generator": "*",
27
- "@asyncapi/modelina": "^5.2.5",
28
- "@asyncapi/parser": "^3.0.14",
27
+ "@asyncapi/modelina": "^5.10.1",
28
+ "@asyncapi/parser": "^3.4.0",
29
29
  "@babel/cli": "^7.25.9",
30
30
  "@babel/core": "^7.26.0",
31
31
  "@babel/preset-env": "^7.26.0",
@@ -36,20 +36,6 @@
36
36
  "eslint-plugin-sonarjs": "^0.5.0",
37
37
  "jest-esm-transformer": "^1.0.0"
38
38
  },
39
- "jest": {
40
- "moduleFileExtensions": [
41
- "js",
42
- "json",
43
- "jsx"
44
- ],
45
- "transform": {
46
- "^.+\\.jsx?$": "babel-jest"
47
- },
48
- "moduleNameMapper": {
49
- "^nimma/legacy$": "<rootDir>/../../../../../node_modules/nimma/dist/legacy/cjs/index.js",
50
- "^nimma/(.*)": "<rootDir>/../../../../../node_modules/nimma/dist/cjs/$1"
51
- }
52
- },
53
39
  "babel": {
54
40
  "presets": [
55
41
  "@babel/preset-env",
@@ -1,4 +1,3 @@
1
- renderer: react
2
1
  apiVersion: v3
3
2
  parameters:
4
3
  server:
@@ -15,7 +14,15 @@ parameters:
15
14
  customClientName:
16
15
  description: The custom name for the generated client class
17
16
  required: false
17
+ asyncapiFileDir:
18
+ description: >-
19
+ Custom location of the AsyncAPI file that you provided as an input in generation. By default it is located in the
20
+ root of the output directory
21
+ required: false
22
+ default: .
18
23
  metadata:
19
24
  type: client
20
25
  protocol: websocket
21
26
  target: javascript
27
+ hooks:
28
+ '@asyncapi/generator-hooks': createAsyncapiFile
@@ -7,6 +7,7 @@ var generatorReactSdk = require('@asyncapi/generator-react-sdk');
7
7
  var Constructor = require('./Constructor.js');
8
8
  var generatorComponents = require('@asyncapi/generator-components');
9
9
  var ModuleExport = require('./ModuleExport.js');
10
+ var CompileOperationSchemas = require('./CompileOperationSchemas.js');
10
11
  var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
11
12
 
12
13
  function ClientClass({
@@ -20,7 +21,8 @@ function ClientClass({
20
21
  newLines: 2,
21
22
  children: `class ${clientName} {`
22
23
  }), /*#__PURE__*/jsxRuntime.jsx(Constructor.Constructor, {
23
- serverUrl: serverUrl
24
+ serverUrl: serverUrl,
25
+ sendOperations: sendOperations
24
26
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.Connect, {
25
27
  language: "javascript",
26
28
  title: title
@@ -33,6 +35,8 @@ function ClientClass({
33
35
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.HandleMessage, {
34
36
  language: "javascript",
35
37
  methodParams: ['message', 'cb']
38
+ }), /*#__PURE__*/jsxRuntime.jsx(CompileOperationSchemas.CompileOperationSchemas, {
39
+ sendOperations: sendOperations
36
40
  }), /*#__PURE__*/jsxRuntime.jsx(generatorComponents.SendOperations, {
37
41
  language: "javascript",
38
42
  sendOperations: sendOperations,
@@ -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';\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} />\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 <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","SendOperations","CloseConnection","ModuleExport"],"mappings":";;;;;;;;;;;AAKO,SAASA,WAAWA,CAAC;EAAEC,UAAU;EAAEC,SAAS;EAAEC,KAAK;AAAEC,EAAAA,cAAAA;AAAc,CAAC,EAAE;EAC3E,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,SAAAA;AAAU,KAAE,CAAC,eACrCM,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,kCAAc,EAAA;AACbL,MAAAA,QAAQ,EAAC,YAAY;AACrBR,MAAAA,cAAc,EAAEA,cAAe;AAC/BH,MAAAA,UAAU,EAAEA,UAAAA;AAAW,KACxB,CAAC,eACFO,cAAA,CAACU,mCAAe,EAAA;AAACN,MAAAA,QAAQ,EAAC,YAAA;AAAY,KAAE,CAAC,eACzCJ,cAAA,CAACF,sBAAI,EAAA;AAAAC,MAAAA,QAAA,EACF,GAAA;AAAG,KACA,CAAC,eACPC,cAAA,CAACW,yBAAY,EAAA;AAAClB,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';\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;;;;"}
@@ -0,0 +1,48 @@
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 CompileOperationSchemas({
10
+ sendOperations
11
+ }) {
12
+ if (!sendOperations || sendOperations.length === 0) {
13
+ return null;
14
+ }
15
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
16
+ children: /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
17
+ indent: 2,
18
+ newLines: 2,
19
+ children: `/**
20
+ * Initialize and compile all schemas for operations defined.
21
+ * This should be called once after creating the client instance.
22
+ * Subsequent calls will be ignored if schemas are already compiled.
23
+ *
24
+ * @returns {Promise<void>}
25
+ * @throws {Error} If schema compilation fails for any operation
26
+ */
27
+ async compileOperationSchemas() {
28
+ if (this.schemasCompiled) {
29
+ return;
30
+ }
31
+
32
+ try {
33
+ // Compile schemas for all send operations
34
+ for (const operationId of this.sendOperationsId) {
35
+ this.compiledSchemas[operationId] = await compileSchemasByOperationId(asyncapiFilepath, operationId);
36
+ }
37
+ this.schemasCompiled = true;
38
+ console.log('Schemas initialized successfully for operations:', this.sendOperationsId.join(', '));
39
+ } catch (error) {
40
+ console.error('Error initializing schemas:', error);
41
+ }
42
+ }`
43
+ })
44
+ });
45
+ }
46
+
47
+ exports.CompileOperationSchemas = CompileOperationSchemas;
48
+ //# sourceMappingURL=CompileOperationSchemas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompileOperationSchemas.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/CompileOperationSchemas.js"],"sourcesContent":["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 }\n}`\n }\n </Text>\n </>\n );\n}\n"],"names":["CompileOperationSchemas","sendOperations","length","_jsx","_Fragment","children","Text","indent","newLines"],"mappings":";;;;;;;;AAEO,SAASA,uBAAuBA,CAAC;AAAEC,EAAAA,cAAAA;AAAe,CAAC,EAAE;EAC1D,IAAI,CAACA,cAAc,IAAIA,cAAc,CAACC,MAAM,KAAK,CAAC,EAAE;AAClD,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EAEA,oBACEC,cAAA,CAAAC,mBAAA,EAAA;IAAAC,QAAA,eACEF,cAAA,CAACG,sBAAI,EAAA;AAACC,MAAAA,MAAM,EAAE,CAAE;AAACC,MAAAA,QAAQ,EAAE,CAAE;AAAAH,MAAAA,QAAA,EAEzB,CAAA;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAA,CAAA;KAEY,CAAA;AAAC,GACP,CAAC,CAAA;AAEP;;;;"}
@@ -7,8 +7,11 @@ var generatorReactSdk = require('@asyncapi/generator-react-sdk');
7
7
  var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
8
8
 
9
9
  function Constructor({
10
- serverUrl
10
+ serverUrl,
11
+ sendOperations
11
12
  }) {
13
+ const sendOperationsId = sendOperations.map(operation => operation.id());
14
+ const sendOperationsArray = JSON.stringify(sendOperationsId);
12
15
  return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
13
16
  indent: 2,
14
17
  children: `/*
@@ -20,6 +23,9 @@ constructor(url) {
20
23
  this.websocket = null;
21
24
  this.messageHandlers = [];
22
25
  this.errorHandlers = [];
26
+ this.compiledSchemas = {};
27
+ this.schemasCompiled = false;
28
+ this.sendOperationsId = ${sendOperationsArray};
23
29
  }
24
30
  `
25
31
  });
@@ -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 }) {\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}\n`\n }\n </Text>\n );\n}\n"],"names":["Constructor","serverUrl","_jsx","Text","indent","children"],"mappings":";;;;;;;;AAEO,SAASA,WAAWA,CAAC;AAAEC,EAAAA,SAAAA;AAAU,CAAC,EAAE;EACzC,oBACEC,cAAA,CAACC,sBAAI,EAAA;AAACC,IAAAA,MAAM,EAAE,CAAE;AAAAC,IAAAA,QAAA,EAEZ,CAAA;AACR;AACA;AACA;AACA;AACA,qBAAA,EAAuBJ,SAAS,CAAA;AAChC;AACA;AACA;AACA;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.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;;;;"}
@@ -0,0 +1,13 @@
1
+ 'use strict';
2
+
3
+ require('source-map-support/register');
4
+
5
+ const baseConfig = require('../../../../../jest.config.base');
6
+ module.exports = {
7
+ ...baseConfig(__dirname),
8
+ moduleFileExtensions: ['js', 'json', 'jsx'],
9
+ transform: {
10
+ '^.+\\.jsx?$': 'babel-jest'
11
+ }
12
+ };
13
+ //# sourceMappingURL=jest.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.js","sources":["../../../../../../../packages/templates/clients/websocket/javascript/jest.config.js"],"sourcesContent":["const baseConfig = require('../../../../../jest.config.base');\n\nmodule.exports = {\n ...baseConfig(__dirname),\n moduleFileExtensions: [\n 'js',\n 'json',\n 'jsx'\n ],\n transform: {\n '^.+\\\\.jsx?$': 'babel-jest'\n },\n};\n\n"],"names":["baseConfig","require","module","exports","__dirname","moduleFileExtensions","transform"],"mappings":";;;;AAAA,MAAMA,UAAU,GAAGC,OAAO,CAAC,iCAAiC,CAAC,CAAA;AAE7DC,MAAM,CAACC,OAAO,GAAG;EACf,GAAGH,UAAU,CAACI,SAAS,CAAC;AACxBC,EAAAA,oBAAoB,EAAE,CACpB,IAAI,EACJ,MAAM,EACN,KAAK,CACN;AACDC,EAAAA,SAAS,EAAE;AACT,IAAA,aAAa,EAAE,YAAA;AACjB,GAAA;AACF,CAAC;;"}
@@ -1,164 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  require('source-map-support/register');
4
- var generatorReactSdk = require('@asyncapi/generator-react-sdk');
5
- var generatorHelpers = require('@asyncapi/generator-helpers');
6
- var jsxRuntime = require('/home/runner/work/generator/generator/node_modules/react/cjs/react-jsx-runtime.production.min.js');
7
-
8
- function OperationHeader({
9
- operation
10
- }) {
11
- const operationId = operation.id();
12
- return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
13
- children: `#### \`${operationId}(payload)\`
14
- ${operation.hasSummary() ? operation.summary() : ''}
15
- ${operation.hasDescription() ? `\n${operation.description()}` : ''}`
16
- });
17
- }
18
-
19
- function MessageExamples({
20
- operation
21
- }) {
22
- const operationId = operation.id();
23
- const messageExamples = [];
24
- const messages = generatorHelpers.getOperationMessages(operation) || [];
25
- messages.forEach(message => {
26
- const examples = generatorHelpers.getMessageExamples(message) || [];
27
- examples.forEach(example => {
28
- const payload = example.payload();
29
- messageExamples.push(`\n\n**Example:**\n\`\`\`javascript\nclient.${operationId}(${JSON.stringify(payload, null, 2)});\n\`\`\``);
30
- });
31
- });
32
- return /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
33
- children: messageExamples.map(example => /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
34
- children: example
35
- }))
36
- });
37
- }
38
-
39
- function AvailableOperations({
40
- operations
41
- }) {
42
- if (!operations || operations.length === 0) {
43
- return null;
44
- }
45
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
46
- children: [/*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
47
- newLines: 2,
48
- children: "### Available Operations"
49
- }), operations.map(operation => /*#__PURE__*/jsxRuntime.jsxs(generatorReactSdk.Text, {
50
- newLines: 2,
51
- children: [/*#__PURE__*/jsxRuntime.jsx(OperationHeader, {
52
- operation: operation
53
- }), /*#__PURE__*/jsxRuntime.jsx(MessageExamples, {
54
- operation: operation
55
- })]
56
- }))]
57
- });
58
- }
4
+ var generatorComponents = require('@asyncapi/generator-components');
59
5
 
60
6
  function README_md ({
61
7
  asyncapi,
62
8
  params
63
9
  }) {
64
- const server = generatorHelpers.getServer(asyncapi.servers(), params.server);
65
- const info = generatorHelpers.getInfo(asyncapi);
66
- const clientName = generatorHelpers.getClientName(asyncapi, params.appendClientSuffix, params.customClientName);
67
- const title = generatorHelpers.getTitle(asyncapi);
68
- const serverUrl = generatorHelpers.getServerUrl(server);
69
- const operations = asyncapi.operations().all();
70
- return /*#__PURE__*/jsxRuntime.jsxs(generatorReactSdk.File, {
71
- name: "README.md",
72
- children: [/*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
73
- newLines: 2,
74
- children: `# ${title}
75
-
76
- ## Overview
77
-
78
- ${info.description() || `A WebSocket client for ${title}.`}
79
-
80
- - **Version:** ${info.version()}
81
- - **URL:** ${serverUrl}
82
-
83
-
84
- ## Client API Reference
85
-
86
- \`\`\`javascript
87
- const ${clientName} = require('./${params.clientFileName.replace('.js', '')}');
88
- const wsClient = new ${clientName}();
89
- \`\`\`
90
-
91
- Here the wsClient is an instance of the \`${clientName}\` class.
92
- ### Core Methods
93
-
94
- #### \`connect()\`
95
- Establishes a WebSocket connection to the server.
96
-
97
- #### \`registerMessageHandler(handlerFunction)\`
98
- Registers a callback to handle incoming messages.
99
- - **Parameter:** \`handlerFunction\` - This Function takes a parameter \`message\` which is a string.
100
-
101
- #### \`registerErrorHandler(handlerFunction)\`
102
- Registers a callback to handle WebSocket errors.
103
- - **Parameter:** \`handlerFunction\` - This Function takes a parameter \`error\` which is an object
104
-
105
- #### \`close()\`
106
- Closes the WebSocket connection.`
107
- }), /*#__PURE__*/jsxRuntime.jsx(AvailableOperations, {
108
- operations: operations
109
- }), /*#__PURE__*/jsxRuntime.jsx(generatorReactSdk.Text, {
110
- newLines: 2,
111
- children: `## Testing the client
112
-
113
- \`\`\`javascript
114
- const ${clientName} = require('./${params.clientFileName.replace('.js', '')}');
115
- const wsClient = new ${clientName}();
116
-
117
-
118
- // Example of how custom message handler that operates on incoming messages can look like
119
-
120
- function myHandler(message) {
121
- console.log('====================');
122
- console.log('Just proving I got the message in myHandler:', message);
123
- console.log('====================');
124
- }
125
-
126
- // Example of custom error handler
127
-
128
- function myErrorHandler(error) {
129
- console.error('Errors from Websocket:', error.message);
130
- }
131
-
132
- async function main() {
133
- wsClient.registerMessageHandler(myHandler);
134
- wsClient.registerErrorHandler(myErrorHandler);
135
-
136
- try {
137
- await wsClient.connect();
138
-
139
- // Loop to send messages every 5 seconds
140
- const interval = 5000; // 5 seconds
141
- const message = 'Hello, Echo!';
142
-
143
- while (true) {
144
- try {
145
- await wsClient.sendEchoMessage(message);
146
- } catch (error) {
147
- console.error('Error while sending message:', error);
148
- }
149
- // Wait for the interval before sending the next message
150
- await new Promise(resolve => setTimeout(resolve, interval));
151
- }
152
- } catch (error) {
153
- console.error('Failed to connect to WebSocket:', error.message);
154
- }
155
- }
156
-
157
- main();
158
- \`\`\`
159
-
160
- `
161
- })]
10
+ return generatorComponents.Readme({
11
+ asyncapi,
12
+ params,
13
+ language: 'javascript'
162
14
  });
163
15
  }
164
16
 
@@ -1 +1 @@
1
- {"version":3,"file":"README.md.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/components/OperationHeader.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/MessageExamples.js","../../../../../../../../packages/templates/clients/websocket/javascript/components/AvailableOperations.js","../../../../../../../../packages/templates/clients/websocket/javascript/template/README.md.js"],"sourcesContent":["import { Text } from '@asyncapi/generator-react-sdk';\n\nexport default function OperationHeader({operation}) {\n const operationId = operation.id();\n return (\n <Text>\n {`#### \\`${operationId}(payload)\\`\n${operation.hasSummary() ? operation.summary() : ''}\n${operation.hasDescription() ? `\\n${operation.description()}` : ''}`}\n </Text>\n );\n}","import { getMessageExamples, getOperationMessages } from '@asyncapi/generator-helpers';\nimport { Text } from '@asyncapi/generator-react-sdk';\n\nexport default function MessageExamples({operation}) {\n const operationId = operation.id();\n const messageExamples = [];\n const messages = getOperationMessages(operation) || [];\n\n messages.forEach((message) => {\n const examples = getMessageExamples(message) || [];\n examples.forEach((example) => {\n const payload = example.payload();\n messageExamples.push(`\\n\\n**Example:**\\n\\`\\`\\`javascript\\nclient.${operationId}(${JSON.stringify(payload, null, 2)});\\n\\`\\`\\``);\n });\n });\n return (\n <Text>\n {messageExamples.map(example => (\n <Text>\n {example}\n </Text>\n ))}\n </Text>\n );\n}","import { Text } from '@asyncapi/generator-react-sdk';\nimport OperationHeader from './OperationHeader';\nimport MessageExamples from './MessageExamples';\n\nexport function AvailableOperations({ operations }) {\n if (!operations || operations.length === 0) {\n return null;\n }\n return (\n <>\n <Text newLines={2}>### Available Operations</Text>\n {operations.map((operation) => (\n <Text newLines={2}>\n <OperationHeader operation={operation} />\n <MessageExamples operation={operation} />\n </Text>\n ))}\n </>\n );\n}\n","import { File, Text } from '@asyncapi/generator-react-sdk';\nimport { getClientName, getServer, getServerUrl, getInfo, getTitle } from '@asyncapi/generator-helpers';\nimport { AvailableOperations } from '../components/AvailableOperations';\n\nexport default function({ asyncapi, params }) {\n const server = getServer(asyncapi.servers(), params.server);\n const info = getInfo(asyncapi);\n const clientName = getClientName(asyncapi, params.appendClientSuffix, params.customClientName);\n const title = getTitle(asyncapi);\n const serverUrl = getServerUrl(server);\n\n const operations = asyncapi.operations().all();\n \n return (\n <File name=\"README.md\">\n <Text newLines={2}>\n {`# ${title} \n\n## Overview\n\n${info.description() || `A WebSocket client for ${title}.`}\n\n- **Version:** ${info.version()}\n- **URL:** ${serverUrl}\n\n\n## Client API Reference\n\n\\`\\`\\`javascript\nconst ${clientName} = require('./${params.clientFileName.replace('.js', '')}');\nconst wsClient = new ${clientName}();\n\\`\\`\\`\n\nHere the wsClient is an instance of the \\`${clientName}\\` class.\n### Core Methods\n\n#### \\`connect()\\`\nEstablishes a WebSocket connection to the server.\n\n#### \\`registerMessageHandler(handlerFunction)\\`\nRegisters a callback to handle incoming messages.\n- **Parameter:** \\`handlerFunction\\` - This Function takes a parameter \\`message\\` which is a string. \n\n#### \\`registerErrorHandler(handlerFunction)\\`\nRegisters a callback to handle WebSocket errors.\n- **Parameter:** \\`handlerFunction\\` - This Function takes a parameter \\`error\\` which is an object\n\n#### \\`close()\\`\nCloses the WebSocket connection.`}\n </Text>\n <AvailableOperations operations={operations} />\n <Text newLines={2}>\n {`## Testing the client\n\n\\`\\`\\`javascript\nconst ${clientName} = require('./${params.clientFileName.replace('.js', '')}');\nconst wsClient = new ${clientName}();\n\n\n// Example of how custom message handler that operates on incoming messages can look like\n\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\n\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\\`\\`\\`\n\n`}\n </Text>\n </File>\n );\n}"],"names":["OperationHeader","operation","operationId","id","_jsx","Text","children","hasSummary","summary","hasDescription","description","MessageExamples","messageExamples","messages","getOperationMessages","forEach","message","examples","getMessageExamples","example","payload","push","JSON","stringify","map","AvailableOperations","operations","length","_jsxs","_Fragment","newLines","asyncapi","params","server","getServer","servers","info","getInfo","clientName","getClientName","appendClientSuffix","customClientName","title","getTitle","serverUrl","getServerUrl","all","File","name","version","clientFileName","replace"],"mappings":"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"}
1
+ {"version":3,"file":"README.md.js","sources":["../../../../../../../../packages/templates/clients/websocket/javascript/template/README.md.js"],"sourcesContent":["import { Readme } from '@asyncapi/generator-components';\n\nexport default function({ asyncapi, params }) {\n return Readme({asyncapi, params, language: 'javascript'}); \n}"],"names":["asyncapi","params","Readme","language"],"mappings":";;;;;AAEe,kBAAS,EAAA;EAAEA,QAAQ;AAAEC,EAAAA,MAAAA;AAAO,CAAC,EAAE;AAC5C,EAAA,OAAOC,0BAAM,CAAC;IAACF,QAAQ;IAAEC,MAAM;AAAEE,IAAAA,QAAQ,EAAE,YAAA;AAAY,GAAC,CAAC,CAAA;AAC3D;;;;"}