Skip to content

Commit af0c400

Browse files
authored
feat: asyncapi generate fromTemplate can now work in interactive mode (asyncapi#1677)
Co-authored-by: Adi-204 <[email protected]>
1 parent ac7d8a3 commit af0c400

File tree

2 files changed

+35
-32
lines changed

2 files changed

+35
-32
lines changed

docs/usage.md

+31-28
Original file line numberDiff line numberDiff line change
@@ -38,33 +38,35 @@ USAGE
3838
# Commands
3939

4040
<!-- commands -->
41-
* [`asyncapi bundle`](#asyncapi-bundle)
42-
* [`asyncapi config`](#asyncapi-config)
43-
* [`asyncapi config analytics`](#asyncapi-config-analytics)
44-
* [`asyncapi config context`](#asyncapi-config-context)
45-
* [`asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`](#asyncapi-config-context-add-context-name-spec-file-path)
46-
* [`asyncapi config context current`](#asyncapi-config-context-current)
47-
* [`asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`](#asyncapi-config-context-edit-context-name-new-spec-file-path)
48-
* [`asyncapi config context init [CONTEXT-FILE-PATH]`](#asyncapi-config-context-init-context-file-path)
49-
* [`asyncapi config context list`](#asyncapi-config-context-list)
50-
* [`asyncapi config context remove CONTEXT-NAME`](#asyncapi-config-context-remove-context-name)
51-
* [`asyncapi config context use CONTEXT-NAME`](#asyncapi-config-context-use-context-name)
52-
* [`asyncapi config versions`](#asyncapi-config-versions)
53-
* [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file)
54-
* [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new)
55-
* [`asyncapi format [SPEC-FILE]`](#asyncapi-format-spec-file)
56-
* [`asyncapi generate`](#asyncapi-generate)
57-
* [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template)
58-
* [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file)
59-
* [`asyncapi new`](#asyncapi-new)
60-
* [`asyncapi new file`](#asyncapi-new-file)
61-
* [`asyncapi new glee`](#asyncapi-new-glee)
62-
* [`asyncapi new template`](#asyncapi-new-template)
63-
* [`asyncapi optimize [SPEC-FILE]`](#asyncapi-optimize-spec-file)
64-
* [`asyncapi pretty SPEC-FILE`](#asyncapi-pretty-spec-file)
65-
* [`asyncapi start`](#asyncapi-start)
66-
* [`asyncapi start studio [SPEC-FILE]`](#asyncapi-start-studio-spec-file)
67-
* [`asyncapi validate [SPEC-FILE]`](#asyncapi-validate-spec-file)
41+
- [Usage](#usage)
42+
- [Commands](#commands)
43+
- [`asyncapi bundle`](#asyncapi-bundle)
44+
- [`asyncapi config`](#asyncapi-config)
45+
- [`asyncapi config analytics`](#asyncapi-config-analytics)
46+
- [`asyncapi config context`](#asyncapi-config-context)
47+
- [`asyncapi config context add CONTEXT-NAME SPEC-FILE-PATH`](#asyncapi-config-context-add-context-name-spec-file-path)
48+
- [`asyncapi config context current`](#asyncapi-config-context-current)
49+
- [`asyncapi config context edit CONTEXT-NAME NEW-SPEC-FILE-PATH`](#asyncapi-config-context-edit-context-name-new-spec-file-path)
50+
- [`asyncapi config context init [CONTEXT-FILE-PATH]`](#asyncapi-config-context-init-context-file-path)
51+
- [`asyncapi config context list`](#asyncapi-config-context-list)
52+
- [`asyncapi config context remove CONTEXT-NAME`](#asyncapi-config-context-remove-context-name)
53+
- [`asyncapi config context use CONTEXT-NAME`](#asyncapi-config-context-use-context-name)
54+
- [`asyncapi config versions`](#asyncapi-config-versions)
55+
- [`asyncapi convert [SPEC-FILE]`](#asyncapi-convert-spec-file)
56+
- [`asyncapi diff OLD NEW`](#asyncapi-diff-old-new)
57+
- [`asyncapi format [SPEC-FILE]`](#asyncapi-format-spec-file)
58+
- [`asyncapi generate`](#asyncapi-generate)
59+
- [`asyncapi generate fromTemplate ASYNCAPI TEMPLATE`](#asyncapi-generate-fromtemplate-asyncapi-template)
60+
- [`asyncapi generate models LANGUAGE FILE`](#asyncapi-generate-models-language-file)
61+
- [`asyncapi new`](#asyncapi-new)
62+
- [`asyncapi new file`](#asyncapi-new-file)
63+
- [`asyncapi new glee`](#asyncapi-new-glee)
64+
- [`asyncapi new template`](#asyncapi-new-template)
65+
- [`asyncapi optimize [SPEC-FILE]`](#asyncapi-optimize-spec-file)
66+
- [`asyncapi pretty SPEC-FILE`](#asyncapi-pretty-spec-file)
67+
- [`asyncapi start`](#asyncapi-start)
68+
- [`asyncapi start studio [SPEC-FILE]`](#asyncapi-start-studio-spec-file)
69+
- [`asyncapi validate [SPEC-FILE]`](#asyncapi-validate-spec-file)
6870

6971
## `asyncapi bundle`
7072

@@ -458,7 +460,8 @@ DESCRIPTION
458460
Generates whatever you want using templates compatible with AsyncAPI Generator.
459461
460462
EXAMPLES
461-
$ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/html-template --param version=1.0.0 singleFile=true --output ./docs --force-write
463+
$ asyncapi generate fromTemplate - start creation of a template in interactive mode
464+
$ asyncapi generate fromTemplate asyncapi.yaml @asyncapi/[email protected] --use-new-generator
462465
```
463466

464467
_See code: [src/commands/generate/fromTemplate.ts](https://github.com/asyncapi/cli/blob/v2.16.4/src/commands/generate/fromTemplate.ts)_

src/commands/generate/fromTemplate.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,17 +64,17 @@ export default class Template extends Command {
6464
};
6565

6666
static args = {
67-
asyncapi: Args.string({ description: '- Local path, url or context-name pointing to AsyncAPI file', required: true }),
68-
template: Args.string({ description: '- Name of the generator template like for example @asyncapi/html-template or https://github.com/asyncapi/html-template', required: true }),
67+
asyncapi: Args.string({ description: '- Local path, url or context-name pointing to AsyncAPI file', required: false }),
68+
template: Args.string({ description: '- Name of the generator template like for example @asyncapi/html-template or https://github.com/asyncapi/html-template', required: false }),
6969
};
7070

7171
parser = new Parser();
7272

7373
async run() {
7474
const { args, flags } = await this.parse(Template); // NOSONAR
7575
const interactive = !flags['no-interactive'];
76-
77-
let { asyncapi, template } = args;
76+
let asyncapi = args['asyncapi'] ?? '';
77+
let template = args['template'] ?? '';
7878
let output = flags.output as string;
7979
const {proxyPort,proxyHost} = flags;
8080
if (interactive) {

0 commit comments

Comments
 (0)