Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: change the implementation of new command #1649

Merged
merged 6 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 3 additions & 46 deletions docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <value>] [-e <value>] [-s] [-p <value>] [--no-tty]

FLAGS
-e, --example=<value>
AayushSaini101 marked this conversation as resolved.
Show resolved Hide resolved
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=<value>
name of the file

-p, --port=<value>
port in which to start Studio

-s, --studio
open in Studio

--no-tty
do not use an interactive terminal
$ asyncapi new
AayushSaini101 marked this conversation as resolved.
Show resolved Hide resolved

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)_
Expand Down
11 changes: 9 additions & 2 deletions src/commands/new/index.ts
Original file line number Diff line number Diff line change
@@ -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']);
}
}
12 changes: 1 addition & 11 deletions test/integration/new/file.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
Loading