@runa-cmd/create 0.2.0-beta.5 → 0.2.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @runa-cmd/create
2
2
 
3
+ ## 0.2.0-beta.7
4
+
5
+ ### Minor Changes
6
+
7
+ - 4140fe9: The generator's command line follows the rules of a CLI made with Runa. A usage error exits with 2, says what's wrong in its own words, and where the help is:
8
+
9
+ ```
10
+ $ npm create @runa-cmd
11
+ Missing the name of the project, as in 'npm create @runa-cmd my-tool'.
12
+ Run 'npm create @runa-cmd -- --help' for usage.
13
+ ```
14
+
15
+ Before, a missing name or an extra argument printed the usage without saying what was wrong, and an unknown option showed Node's text. The README lists its arguments and exit codes, and says that npm reads its own flags first, so `--help` and `--version` go after `--`.
16
+
17
+ **Breaking:** `-v` is gone, as in every Runa CLI, where it's left for `--verbose`. Use `--version`.
18
+
19
+ ## 0.2.0-beta.6
20
+
3
21
  ## 0.2.0-beta.5
4
22
 
5
23
  ### Minor Changes
package/README.md CHANGED
@@ -13,6 +13,28 @@ Until Runa reaches 1.0, add `@beta`, as above.
13
13
 
14
14
  It works with pnpm, yarn and bun too, as `pnpm create @runa-cmd@beta my-tool`, and the next steps it prints use the one you ran it with.
15
15
 
16
+ ## Usage
17
+
18
+ ```
19
+ npm create @runa-cmd <name>
20
+ ```
21
+
22
+ | Argument | What it does |
23
+ |---|---|
24
+ | `<name>` | The folder, the package and the command, as in `my-tool` |
25
+ | `-h`, `--help` | Shows how to use it |
26
+ | `--version` | Shows its version |
27
+
28
+ npm reads its own flags first: to reach these, put them after `--`, as in `npm create @runa-cmd -- --help`.
29
+
30
+ | Exit | When |
31
+ |---|---|
32
+ | `0` | The project was created, or it showed the help or the version |
33
+ | `2` | A usage error, with what's wrong: an unknown option, no name or more than one, a name that can't be one, or a folder that already has files |
34
+ | `1` | Something else failed, as a file it couldn't write |
35
+
36
+ Like any CLI made with Runa, there's no `-v`, which other tools use for `--verbose`.
37
+
16
38
  ## What you get
17
39
 
18
40
  | File | What it is |
package/dist/cli.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export interface CliContext {
2
+ /** This package's version, for --version */
3
+ version: string;
4
+ templateDir: string;
5
+ /** The core the template was built with */
6
+ runaVersion: string;
7
+ cwd: string;
8
+ /** npm_config_user_agent: the package manager that ran it */
9
+ userAgent: string | undefined;
10
+ out: (text: string) => void;
11
+ err: (text: string) => void;
12
+ }
13
+ /** Runs the generator, and returns its exit code. */
14
+ export declare function main(argv: string[], ctx: CliContext): number;
15
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,UAAU;IAC1B,4CAA4C;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAkDD,qDAAqD;AACrD,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CA8B5D"}
package/dist/cli.js ADDED
@@ -0,0 +1,86 @@
1
+ /**
2
+ * The command line of `npm create @runa-cmd`, with Runa's rules and without
3
+ * Runa: --help, -h and --version, no -v (ADR-0021), and exit 2 on a usage
4
+ * error, saying what's wrong and where the help is (T-239).
5
+ */
6
+ import { parseArgs } from 'node:util';
7
+ import { CreateError, createProject, nextSteps } from './create.js';
8
+ const USAGE = `Create a CLI made with Runa.
9
+
10
+ Usage: npm create @runa-cmd <name>
11
+
12
+ <name> The folder, the package and the command, as in my-tool
13
+ -h, --help Show this
14
+ --version Show the version`;
15
+ /** npm reads its own flags first: these only reach the generator after -- */
16
+ const HINT = "Run 'npm create @runa-cmd -- --help' for usage.";
17
+ const OPTIONS = { help: { type: 'boolean', short: 'h' }, version: { type: 'boolean' } };
18
+ class UsageError extends Error {
19
+ }
20
+ /** What was asked for, or why it can't be read, in our words and not parseArgs'. */
21
+ function read(argv) {
22
+ const { tokens } = parseArgs({
23
+ args: argv,
24
+ options: OPTIONS,
25
+ allowPositionals: true,
26
+ strict: false,
27
+ tokens: true,
28
+ });
29
+ const asked = { help: false, version: false };
30
+ const names = [];
31
+ for (const token of tokens) {
32
+ if (token.kind === 'positional')
33
+ names.push(token.value);
34
+ if (token.kind !== 'option')
35
+ continue;
36
+ if (!(token.name in OPTIONS))
37
+ throw new UsageError(`Unknown option '${token.rawName}'.`);
38
+ if (token.value !== undefined)
39
+ throw new UsageError(`Option '--${token.name}' takes no value.`);
40
+ asked[token.name] = true;
41
+ }
42
+ if (asked.help || asked.version)
43
+ return { ...asked, name: '' };
44
+ const [name, extra] = names;
45
+ if (name === undefined) {
46
+ throw new UsageError("Missing the name of the project, as in 'npm create @runa-cmd my-tool'.");
47
+ }
48
+ if (extra !== undefined) {
49
+ throw new UsageError(`Unexpected argument '${extra}': the name is a single word, as in 'my-tool'.`);
50
+ }
51
+ return { ...asked, name };
52
+ }
53
+ /** Runs the generator, and returns its exit code. */
54
+ export function main(argv, ctx) {
55
+ let args;
56
+ try {
57
+ args = read(argv);
58
+ }
59
+ catch (error) {
60
+ if (!(error instanceof UsageError))
61
+ throw error;
62
+ ctx.err(`${error.message}\n${HINT}`);
63
+ return 2;
64
+ }
65
+ if (args.help) {
66
+ ctx.out(USAGE);
67
+ return 0;
68
+ }
69
+ if (args.version) {
70
+ ctx.out(ctx.version);
71
+ return 0;
72
+ }
73
+ try {
74
+ const { templateDir, runaVersion, cwd } = ctx;
75
+ createProject({ name: args.name, cwd, templateDir, runaVersion });
76
+ }
77
+ catch (error) {
78
+ if (!(error instanceof CreateError))
79
+ throw error;
80
+ ctx.err(error.message);
81
+ return 2;
82
+ }
83
+ ctx.out(nextSteps(args.name, ctx.userAgent));
84
+ return 0;
85
+ }
86
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,66 +3,26 @@
3
3
  * @runa-cmd/create — `npm create @runa-cmd my-tool`
4
4
  *
5
5
  * No dependencies, Runa included: `npm create` downloads this every time, and
6
- * it should take a moment, not Zod.
6
+ * it should take a moment, not Zod. The command line is in cli.ts, so tests
7
+ * can run it without a process.
7
8
  */
8
9
  import { readFileSync } from 'node:fs';
9
10
  import { dirname, join } from 'node:path';
10
11
  import { fileURLToPath } from 'node:url';
11
- import { parseArgs } from 'node:util';
12
- import { CreateError, createProject, nextSteps } from './create.js';
12
+ import { main } from './cli.js';
13
13
  const root = join(dirname(fileURLToPath(import.meta.url)), '..');
14
14
  const templateDir = join(root, 'template');
15
15
  const readJson = (path) => JSON.parse(readFileSync(path, 'utf8'));
16
16
  const { version } = readJson(join(root, 'package.json'));
17
17
  // The core this was built with, which isn't always this package's version
18
18
  const runaVersion = readJson(join(templateDir, 'runa.json')).core;
19
- const USAGE = `Create a CLI made with Runa.
20
-
21
- Usage: npm create @runa-cmd <name>
22
-
23
- <name> The folder, the package and the command, as in my-tool
24
- -h, --help Show this
25
- -v, --version Show the version`;
26
- function main() {
27
- let parsed;
28
- try {
29
- parsed = parseArgs({
30
- allowPositionals: true,
31
- options: {
32
- help: { type: 'boolean', short: 'h' },
33
- version: { type: 'boolean', short: 'v' },
34
- },
35
- });
36
- }
37
- catch (error) {
38
- console.error(`${error.message}\n\n${USAGE}`);
39
- return 2;
40
- }
41
- const { values, positionals } = parsed;
42
- if (values.help) {
43
- console.log(USAGE);
44
- return 0;
45
- }
46
- if (values.version) {
47
- console.log(version);
48
- return 0;
49
- }
50
- const [name, ...extra] = positionals;
51
- if (!name || extra.length > 0) {
52
- console.error(USAGE);
53
- return 2;
54
- }
55
- try {
56
- createProject({ name, cwd: process.cwd(), templateDir, runaVersion });
57
- }
58
- catch (error) {
59
- if (!(error instanceof CreateError))
60
- throw error;
61
- console.error(error.message);
62
- return 2;
63
- }
64
- console.log(nextSteps(name, process.env.npm_config_user_agent));
65
- return 0;
66
- }
67
- process.exitCode = main();
19
+ process.exitCode = main(process.argv.slice(2), {
20
+ version,
21
+ templateDir,
22
+ runaVersion,
23
+ cwd: process.cwd(),
24
+ userAgent: process.env.npm_config_user_agent,
25
+ out: (text) => console.log(text),
26
+ err: (text) => console.error(text),
27
+ });
68
28
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;GAMG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACjE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAC3C,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;AAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AACzD,0EAA0E;AAC1E,MAAM,WAAW,GAAW,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;AAE1E,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IAC9C,OAAO;IACP,WAAW;IACX,WAAW;IACX,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;IAClB,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB;IAC5C,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;IAChC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;CAClC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@runa-cmd/create",
3
- "version": "0.2.0-beta.5",
3
+ "version": "0.2.0-beta.7",
4
4
  "description": "Create a CLI made with Runa: npm create @runa-cmd my-tool",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,11 +39,11 @@
39
39
  "@types/node": "^24.19.2",
40
40
  "typescript": "^7.0.2",
41
41
  "zod": "^4.6.7",
42
- "@runa-cmd/core": "0.2.0-beta.5"
42
+ "@runa-cmd/core": "0.2.0-beta.7"
43
43
  },
44
44
  "scripts": {
45
45
  "build": "tsc && node scripts/copy-template.mjs",
46
- "typecheck": "tsc --noEmit",
46
+ "typecheck": "tsc --noEmit && tsc -p tsconfig.test.json",
47
47
  "test": "vitest run --dir src",
48
48
  "lint": "biome check .",
49
49
  "clean": "rm -rf dist template"
@@ -1 +1 @@
1
- {"core":"0.2.0-beta.5"}
1
+ {"core":"0.2.0-beta.7"}