create-avi 0.1.1 → 0.2.0

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/README.md CHANGED
@@ -7,9 +7,9 @@ npm create avi@latest my-app
7
7
  npm create avi@latest my-app -- --template minimal
8
8
  ```
9
9
 
10
- Without a name, it asks for the name and the template. It runs `avi new` from
11
- [`@avijs/cli`](https://www.npmjs.com/package/@avijs/cli), so the options are the same: `--template
12
- modular|minimal` and `--dir`.
10
+ Without a name, it asks for the name, the template and the validation library (Valibot, Zod or
11
+ none). It runs `avi new` from [`@avijs/cli`](https://www.npmjs.com/package/@avijs/cli), so the
12
+ options are the same: `--template modular|minimal`, `--validator valibot|zod|none` and `--dir`.
13
13
 
14
14
  Then:
15
15
 
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /** Asks a question and returns the answer, or `fallback` for an empty one. */
2
2
  export type Ask = (question: string, fallback: string) => Promise<string>;
3
3
  /**
4
- * `avi new` for `npm create avi`. Asks for the project name and template when they are missing
5
- * and `ask` is given; by default it asks only in an interactive terminal.
4
+ * `avi new` for `npm create avi`. Asks for the project name, template and validator when the name
5
+ * is missing and `ask` is given; by default it asks only in an interactive terminal.
6
6
  */
7
7
  export declare function create(argv: readonly string[], ask?: Ask | undefined): Promise<number>;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE1E;;;GAGG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,GAAG,GAAG,SAA4C,GACtD,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,8EAA8E;AAC9E,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAE1E;;;GAGG;AACH,wBAAsB,MAAM,CAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,GAAG,GAAG,SAA4C,GACtD,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
package/dist/index.js CHANGED
@@ -3,8 +3,8 @@ import { stdin, stdout } from 'node:process';
3
3
  import { createInterface } from 'node:readline/promises';
4
4
  import { parseArgs } from 'node:util';
5
5
  /**
6
- * `avi new` for `npm create avi`. Asks for the project name and template when they are missing
7
- * and `ask` is given; by default it asks only in an interactive terminal.
6
+ * `avi new` for `npm create avi`. Asks for the project name, template and validator when the name
7
+ * is missing and `ask` is given; by default it asks only in an interactive terminal.
8
8
  */
9
9
  export async function create(argv, ask = stdin.isTTY ? prompt : undefined) {
10
10
  const args = [...argv];
@@ -14,6 +14,7 @@ export async function create(argv, ask = stdin.isTTY ? prompt : undefined) {
14
14
  strict: false,
15
15
  options: {
16
16
  template: { type: 'string' },
17
+ validator: { type: 'string' },
17
18
  dir: { type: 'string' },
18
19
  'avi-version': { type: 'string' },
19
20
  from: { type: 'string' },
@@ -24,6 +25,9 @@ export async function create(argv, ask = stdin.isTTY ? prompt : undefined) {
24
25
  if (values.template === undefined) {
25
26
  args.push('--template', await ask('Template, modular or minimal', 'modular'));
26
27
  }
28
+ if (values.validator === undefined) {
29
+ args.push('--validator', await ask('Validation library, valibot, zod or none', 'valibot'));
30
+ }
27
31
  }
28
32
  return main(['new', ...args]);
29
33
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAKtC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAuB,EACvB,MAAuB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;IAEvD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI;QACJ,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;KACF,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,QAAgB;IACtD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,KAAK,QAAQ,KAAK,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAKtC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,IAAuB,EACvB,MAAuB,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;IAEvD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI;QACJ,gBAAgB,EAAE,IAAI;QACtB,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC7B,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACvB,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACzB;KACF,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC;QACtD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,8BAA8B,EAAE,SAAS,CAAC,CAAC,CAAC;QAChF,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,0CAA0C,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,QAAgB,EAAE,QAAgB;IACtD,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,QAAQ,KAAK,QAAQ,KAAK,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-avi",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Create an Avi.js project: npm create avi@latest my-app",
5
5
  "keywords": [
6
6
  "avi",
@@ -11,7 +11,7 @@
11
11
  ],
12
12
  "license": "MIT",
13
13
  "author": "Christopher Robin Chase",
14
- "homepage": "https://github.com/chrischase011/avi-js#readme",
14
+ "homepage": "https://chrischase011.github.io/avi-js/",
15
15
  "bugs": {
16
16
  "url": "https://github.com/chrischase011/avi-js/issues"
17
17
  },
@@ -45,7 +45,7 @@
45
45
  "access": "public"
46
46
  },
47
47
  "dependencies": {
48
- "@avijs/cli": "0.1.1"
48
+ "@avijs/cli": "0.2.0"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "typescript": ">=5.8"
package/src/index.ts CHANGED
@@ -7,8 +7,8 @@ import { parseArgs } from 'node:util';
7
7
  export type Ask = (question: string, fallback: string) => Promise<string>;
8
8
 
9
9
  /**
10
- * `avi new` for `npm create avi`. Asks for the project name and template when they are missing
11
- * and `ask` is given; by default it asks only in an interactive terminal.
10
+ * `avi new` for `npm create avi`. Asks for the project name, template and validator when the name
11
+ * is missing and `ask` is given; by default it asks only in an interactive terminal.
12
12
  */
13
13
  export async function create(
14
14
  argv: readonly string[],
@@ -21,6 +21,7 @@ export async function create(
21
21
  strict: false,
22
22
  options: {
23
23
  template: { type: 'string' },
24
+ validator: { type: 'string' },
24
25
  dir: { type: 'string' },
25
26
  'avi-version': { type: 'string' },
26
27
  from: { type: 'string' },
@@ -32,6 +33,9 @@ export async function create(
32
33
  if (values.template === undefined) {
33
34
  args.push('--template', await ask('Template, modular or minimal', 'modular'));
34
35
  }
36
+ if (values.validator === undefined) {
37
+ args.push('--validator', await ask('Validation library, valibot, zod or none', 'valibot'));
38
+ }
35
39
  }
36
40
  return main(['new', ...args]);
37
41
  }