Skip to content

Releases: asyncapi/generator

@asyncapi/generator@2.7.1

28 Jul 13:02
e1629dd
Compare
Choose a tag to compare

Patch Changes

  • a51f90e: Release of generator-react-sdk as part of the generator 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

28 Jul 13:02
e1629dd
Compare
Choose a tag to compare

Patch Changes

@asyncapi/generator@2.7.0

02 Jun 11:56
b5bd67e
Compare
Choose a tag to compare

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 template parameters. The parameter 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 the package.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 in package.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 in package.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, the package.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 with conditionalGeneration in your template configuration.

@asyncapi/generator@2.6.0

23 Jan 08:22
02bb852
Compare
Choose a tag to compare

Minor Changes

  • fd5dfd7:

    • Deprecation of ag CLI: The ag CLI is deprecated in favour of the AsyncAPI CLI that is a single entry point for all the AsyncAPI tools. No new features will be added to ag and it will be completely removed. The official documentation of AsyncAPI Generator has not mentioned ag for over a year, instead only using AsyncAPI CLI and asyncapi generate fromTemplate commands. Refer to the migration guide that will help you understand how to migrate your ag commands to the new AsyncAPI 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

30 Oct 09:05
294479d
Compare
Choose a tag to compare

Minor Changes

  • 2d16234: - Package @asyncapi/generator-hooks is now part of generator repo and won't be released separately. Theource code is stored under apps/hooks but the package/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 your package.json in dependencies. 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.

@asyncapi/generator@2.4.1

28 Aug 12:55
91f157e
Compare
Choose a tag to compare

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

26 Aug 15:27
8ade3c1
Compare
Choose a tag to compare

Minor Changes

  • 46114d8: Add compile option to enable rerun of transpilation of templates build with react engine. It is set to true by default. In future major releases it will be set to false and we will explain how to publish template to include transpilation files by default. Transpiled files are already included in html-template. It means that you can run generator for html-template (it's latest version) with compile=false and this will improve the speed of HTML generation for you.

@asyncapi/generator@2.3.0

31 Jul 18:59
c1bbcda
Compare
Choose a tag to compare

Minor Changes

  • 44fcc33: ts-node is registered only when it's actually needed

@asyncapi/generator@2.2.0

31 Jul 13:52
8501f8d
Compare
Choose a tag to compare

Minor Changes

  • 81dfd0c: Enable noOverwriteGlobs option for templates based on react rendering engine.

@asyncapi/generator@2.1.3

31 Jul 13:13
ef865ad
Compare
Choose a tag to compare

Patch Changes

  • 93fb8e8: Updated the method for importing the Nunjucks filter dependency