Releases: asyncapi/generator
@asyncapi/generator@2.7.1
Patch Changes
-
a51f90e: Release of
generator-react-sdk
as part of thegenerator
monorepo.With this release the code from https://github.com/asyncapi/generator-react-sdk is considered to be an archive, and all future development will take place in this repository under
/apps/react-sdk
. -
Updated dependencies [a51f90e]
- @asyncapi/generator-react-sdk@1.1.3
@asyncapi/generator-react-sdk@1.1.3
Patch Changes
-
a51f90e: Release of
generator-react-sdk
as part of thegenerator
monorepo.With this release the code from https://github.com/asyncapi/generator-react-sdk is considered to be an archive, and all future development will take place in this repository under
/apps/react-sdk
.
@asyncapi/generator@2.7.0
Minor Changes
What's New
-
Introduced a new
conditionalGeneration
configuration for templates (@AayushSaini101). Supports conditional generation of both files and folders. It enables conditions based on values from the AsyncAPI document (subject
) and custom templateparameters
. Theparameter
allows users to pass custom flags or values at generation time (via the CLI or programmatically) to control what parts of the template get rendered. -
Addition of new config file
.ageneratorrc
(@ItshMoh): Previously, generator configuration had to be defined in thepackage.json
file. Now, you can define the configuration in a separate.ageneratorrc
file. The configuration defined in the.ageneratorrc
file will override any configuration defined inpackage.json
. The generator will first check for the.ageneratorrc
file in the template's root directory, and if not found, it will look for the generator config inpackage.json
.The
.ageneratorrc
file should be in YAML format.Earlier, the
package.json
for the Python WebSocket client looked like this:{ "name": "@asyncapi/template-python-websocket-client", "version": "0.0.1", "description": "This is a template generating Python websocket client", // ...other configuration... "generator": { "renderer": "react", "apiVersion": "v3", "generator": ">=1.3.0 <3.0.0", "parameters": { "server": { "description": "The name of the server described in AsyncAPI document", "required": true }, "clientFileName": { "description": "The name of the generated client file", "required": false, "default": "client.py" }, "appendClientSuffix": { "description": "Add 'Client' suffix at the end of the class name. This option has no effect if 'customClientName' is specified.", "required": false, "default": false }, "customClientName": { "description": "The custom name for the generated client class", "required": false } } } }
Now after the introduction of the
.ageneratorrc
file, thepackage.json
can be simplified by removing the generator configuration:{ "name": "@asyncapi/template-python-websocket-client", "version": "0.0.1", "description": "This is a template generating Python websocket client", "scripts": { "test": "npm run test:cleanup && jest --coverage", "test:update": "npm run test -- -u", "test:cleanup": "rimraf \"test/temp\"", "lint": "eslint --max-warnings 0 --config ../../../../../.eslintrc --ignore-path ../../../../../.eslintignore .", "lint:fix": "eslint --fix --max-warnings 0 --config ../../../../../.eslintrc --ignore-path ../../../../../.eslintignore ." }, "author": "Lukasz Gornicki <lpgornicki@gmail.com>", "license": "Apache-2.0", "dependencies": { "@asyncapi/generator-react-sdk": "^1.1.2", "@asyncapi/generator-helpers": "1.0.0" }, "devDependencies": { "@asyncapi/parser": "^3.0.14", "@babel/cli": "^7.25.9", "@babel/core": "^7.26.0", "@babel/preset-env": "^7.26.0", "@babel/preset-react": "^7.25.9", "jest-esm-transformer": "^1.0.0", "@asyncapi/generator": "*", "eslint": "^6.8.0", "eslint-plugin-jest": "^23.8.2", "eslint-plugin-react": "^7.34.1", "eslint-plugin-sonarjs": "^0.5.0", "rimraf": "^3.0.2" }, "jest": { "moduleFileExtensions": ["js", "json", "jsx"], "transform": { "^.+\\.jsx?$": "babel-jest" }, "moduleNameMapper": { "^nimma/legacy$": "<rootDir>/../../../../../node_modules/nimma/dist/legacy/cjs/index.js", "^nimma/(.*)": "<rootDir>/../../../../../node_modules/nimma/dist/cjs/$1" } }, "babel": { "presets": [ "@babel/preset-env", [ "@babel/preset-react", { "runtime": "automatic" } ] ] } }
And the equivalent
.ageneratorrc
file would be:renderer: react apiVersion: v3 generator: ">=1.3.0 <3.0.0" parameters: server: description: The name of the server described in AsyncAPI document required: true clientFileName: description: The name of the generated client file required: false default: client.py appendClientSuffix: description: Add 'Client' suffix at the end of the class name. This option has no effect if 'customClientName' is specified. required: false default: false customClientName: description: The custom name for the generated client class required: false
Deprecation notice
- The existing
conditionalFile
configuration is now deprecated and will be removed in a future release. - To migrate, replace
conditionalFile
withconditionalGeneration
in your template configuration.
@asyncapi/generator@2.6.0
Minor Changes
-
-
Deprecation of
ag
CLI: Theag
CLI is deprecated in favour of theAsyncAPI CLI
that is a single entry point for all the AsyncAPI tools. No new features will be added toag
and it will be completely removed. The official documentation of AsyncAPI Generator has not mentionedag
for over a year, instead only usingAsyncAPI CLI
andasyncapi generate fromTemplate
commands. Refer to the migration guide that will help you understand how to migrate yourag
commands to the newAsyncAPI CLI
command. -
Deprecation of Nunjucks render engine: The Nunjucks render engine is deprecated and will be removed in October 2025. It is recommended to switch to the React render engine instead. If you are using Nunjucks in production, read the migration guide that will help you understand how to migrate to the new engine. The removal of the Nunjucks render engine results also in removal of Nunjucks-filters library.
Removal of both deprecated parts of the generator is planned for October 2025, which gives you 9 months to migrate.
-
@asyncapi/generator@2.5.0
Minor Changes
- 2d16234: - Package
@asyncapi/generator-hooks
is now part ofgenerator
repo and won't be released separately. Theource code is stored underapps/hooks
but thepackage/library
name stays as it was originally for backward compatibility,- By default, the
@asyncapi/generator-hooks
package, known as package contains many different hooks used in templates and is available in the generator. You no longer have to configure it in yourpackage.json
independencies
. The package,@asyncapi/generator-hooks
will no longer be published to NPM separately and is deprecated. You can still have your own hooks, store them in a separate package, and configure them with your template. - Remember that the fact that the hooks package is now included by default, doesn't mean all hooks from it are enabled by default. You still have to enable a given hook in the configuration file explicitly because some hooks can execute automatically without passing a specific parameter. Also, a hook's supported parameters need to be defined in your template's config.
- By default, the
@asyncapi/generator@2.4.1
Patch Changes
- 3a372c4: Removed the source-map-support package from the AsyncAPI Generator, as it is no longer required for version 2, which now supports Node.js version 18.12.0 and above.
@asyncapi/generator@2.4.0
Minor Changes
- 46114d8: Add
compile
option to enable rerun of transpilation of templates build with react engine. It is set totrue
by default. In future major releases it will be set tofalse
and we will explain how to publish template to include transpilation files by default. Transpiled files are already included inhtml-template
. It means that you can run generator forhtml-template
(it's latest version) withcompile=false
and this will improve the speed of HTML generation for you.
@asyncapi/generator@2.3.0
Minor Changes
- 44fcc33: ts-node is registered only when it's actually needed
@asyncapi/generator@2.2.0
Minor Changes
- 81dfd0c: Enable
noOverwriteGlobs
option for templates based on react rendering engine.
@asyncapi/generator@2.1.3
Patch Changes
- 93fb8e8: Updated the method for importing the Nunjucks filter dependency