diff --git a/.changeset/cuddly-files-move.md b/.changeset/cuddly-files-move.md new file mode 100644 index 00000000000..cdf69cb7c02 --- /dev/null +++ b/.changeset/cuddly-files-move.md @@ -0,0 +1,5 @@ +--- +"@asyncapi/cli": patch +--- + +feat: change the implementation of new command diff --git a/docs/usage.md b/docs/usage.md index 62349fbdb7c..0b2b8df4e6e 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -537,58 +537,15 @@ _See code: [src/commands/generate/models.ts](https://github.com/asyncapi/cli/blo ## `asyncapi new` -Creates a new asyncapi file +Create a new AsyncAPI project, specification files, or templates for clients and applications. ``` USAGE - $ asyncapi new [-h] [-n ] [-e ] [-s] [-p ] [--no-tty] - -FLAGS - -e, --example= - name of the example to use. Available examples are: - - simple-asyncapi.yml - - adeo-kafka-request-reply-asyncapi.yml - - anyof-asyncapi.yml - - application-headers-asyncapi.yml - - correlation-id-asyncapi.yml - - websocket-gemini-asyncapi.yml - - gitter-streaming-asyncapi.yml - - kraken-websocket-request-reply-message-filter-in-reply-asyncapi.yml - - kraken-websocket-request-reply-multiple-channels-asyncapi.yml - - mercure-asyncapi.yml - - not-asyncapi.yml - - operation-security-asyncapi.yml - - oneof-asyncapi.yml - - rpc-client-asyncapi.yml - - rpc-server-asyncapi.yml - - slack-rtm-asyncapi.yml - - tutorial.yml - - streetlights-kafka-asyncapi.yml - - streetlights-operation-security-asyncapi.yml - - streetlights-mqtt-asyncapi.yml - - -h, --help - Show CLI help. - - -n, --file-name= - name of the file - - -p, --port= - port in which to start Studio - - -s, --studio - open in Studio - - --no-tty - do not use an interactive terminal + $ asyncapi new DESCRIPTION - Creates a new asyncapi file - -EXAMPLES - $ asyncapi new - start creation of a file in interactive mode + Create a new AsyncAPI project, specification files, or templates for clients and applications. - $ asyncapi new --file-name=my-asyncapi.yaml --example=default-example.yaml --no-tty - create a new file with a specific name, using one of the examples and without interactive mode ``` _See code: [src/commands/new/index.ts](https://github.com/asyncapi/cli/blob/v2.14.1/src/commands/new/index.ts)_ diff --git a/src/commands/new/index.ts b/src/commands/new/index.ts index 046699a4497..7367ea5e8b4 100644 --- a/src/commands/new/index.ts +++ b/src/commands/new/index.ts @@ -1,3 +1,10 @@ -import File from './file'; +import Command from '../../core/base'; +import { Help } from '@oclif/core'; -export default class New extends File {} +export default class New extends Command { + static readonly description = 'Create a new AsyncAPI project, specification files, or templates for clients and applications.'; + async run() { + const help = new Help(this.config); + help.showHelp(['new', '--help']); + } +} diff --git a/test/integration/new/file.test.ts b/test/integration/new/file.test.ts index d957857d49f..89174319a74 100644 --- a/test/integration/new/file.test.ts +++ b/test/integration/new/file.test.ts @@ -14,22 +14,12 @@ describe('new', () => { } } }); - + describe('create new file', () => { afterEach(() => { testHelper.deleteSpecFileAtWorkingDir(); }); - test - .stderr() - .stdout() - .command(['new', '--no-tty', '-n=specification.yaml']) - .it('runs new command', async (ctx,done) => { - expect(ctx.stderr).to.equal(''); - expect(ctx.stdout).to.equal('The specification.yaml has been successfully created.\n'); - done(); - }); - test .stderr() .stdout()