open-index/open-npm huggingface dataset:
npm package: @lagoni/asyncapi-quicktype-filter
Description: Library with qucktype filters for templates using AsyncAPI Generator
Author: Jonas Lagoni
Latest version: 1.3.0

# Quicktype Filters

This is a library with [generator](https://github.com/asyncapi/generator/) filters that are used in more than one template. Use these filters to not double your work.

This library consists of:
- Quicktype filter - Check out [API docs](docs/api.md) for complete list
npm package: @lagoni/asyncapi-quicktype-template
Description: Template to generate type files with quicktype.
Author: Jonas Lagoni
Latest version: 1.0.2

# Template to generate type files for the AsyncAPI Generator

This template generates types based on the desired language specified with the `quicktypeLanguage` parameter. This template generates all the defined message payloads. To fully use this template it is expected to be generated into a project already setup.

Currently this template supports all the Quicktype languages, `C++`,  `C#`,  `crystal`,  `dart`,  `elm`,  `golang`,  `haskell`,  `java`,  `json-schema`,  `javascript`,  `javascript-prop-types`,  `kotlin`,  `pike`,  `python`,  `rust`,  `ruby`,  `swift` and `typescript`.

This template is ONLY a wrapper to the underlying [jonaslagoni/asyncapi-quicktype-filter](https://github.com/jonaslagoni/asyncapi-quicktype-filter). All functionality are located there and is where it interact with the [Quicktype](https://quicktype.io/) libraries.

## Usage

```
ag asyncapi.yaml @lagoni/asyncapi-quicktype-template -o output --param "quick
typeLanguage=java"
```

## Supported parameters

|Name|Description|Required|Allowed values|Example|
|---|---|---|---|---|
|quicktypeLanguage|Define which language types should be generated for.|Yes| `cplusplus`,  `csharp`,  `crystal`,  `dart`,  `elm`,  `golang`,  `haskell`,  `java`,  `jsonschema`,  `javascript`,  `javascriptproptypes`,  `kotlin`,  `pike`,  `python`,  `rust`,  `ruby`,  `swift`,  `typescript`|`"quicktypeLanguage=csharp"`|
|renderOptions|Object to parse on to quicktype when rendering the files.|No|*Object*|`'renderOptions={"package":"testing.io.test"}'`|
|subTargetDir|Filepath relative to the output folder to place the files.|No|*String*|`"subTargetDir=src/test"`|


## Special descriptions for languages
Below is a description on how to use the generated files, I have only tested Java and C#. All the render parameters can be found in the code for each language under the [Quicktype library](https://github.com/quicktype/quicktype/blob/master/src/quicktype-core/language/), I didnt find any actual documentation for this, so you have to find it the hard way.

### Java
Java requires the `jackson` library to compile.

Its render parameters can be found here the actual implementation of [Quicktype](https://github.com/quicktype/quicktype/blob/e6cc44fdfcb75c3f3ed3e12f69f15a0c863a1a05/src/quicktype-core/language/Java.ts#L29).

### C#
C# requires the `Newtonsoft` library to compile.

Its render parameters can be found here the actual implementation of [Quicktype](https://github.com/quicktype/quicktype/blob/e6cc44fdfcb75c3f3ed3e12f69f15a0c863a1a05/src/quicktype-core/language/CSharp.ts#L115).