diff --git a/.changeset/four-bobcats-turn.md b/.changeset/four-bobcats-turn.md deleted file mode 100644 index 7db5b15..0000000 --- a/.changeset/four-bobcats-turn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@clack/prompts": minor ---- - -Updated styles, new note component diff --git a/.changeset/gorgeous-peaches-give.md b/.changeset/gorgeous-peaches-give.md deleted file mode 100644 index 8759185..0000000 --- a/.changeset/gorgeous-peaches-give.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@clack/core": patch ---- - -Allow placeholder to be passed to TextPrompt diff --git a/.changeset/tender-dingos-guess.md b/.changeset/tender-dingos-guess.md deleted file mode 100644 index f5449d9..0000000 --- a/.changeset/tender-dingos-guess.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@clack/core": patch ---- - -Fix multiselect returning undefined diff --git a/.changeset/tidy-kids-teach.md b/.changeset/tidy-kids-teach.md deleted file mode 100644 index fb1474d..0000000 --- a/.changeset/tidy-kids-teach.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@clack/core": patch ---- - -Improved placeholder handling diff --git a/examples/basic/tsconfig.json b/examples/basic/tsconfig.json new file mode 100644 index 0000000..4082f16 --- /dev/null +++ b/examples/basic/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 87e8c0d..301335b 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,14 @@ # @clack/core +## 0.1.2 + +### Patch Changes + +- Allow isCancel to type guard any unknown value +- 7dcad8f: Allow placeholder to be passed to TextPrompt +- 2242f13: Fix multiselect returning undefined +- b1341d6: Improved placeholder handling + ## 0.1.1 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 4fffca0..30e8398 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@clack/core", - "version": "0.1.1", + "version": "0.1.2", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.mjs", diff --git a/packages/core/src/prompts/prompt.ts b/packages/core/src/prompts/prompt.ts index ef34da3..f77171d 100644 --- a/packages/core/src/prompts/prompt.ts +++ b/packages/core/src/prompts/prompt.ts @@ -21,7 +21,7 @@ function diffLines(a: string, b: string) { } const cancel = Symbol('clack:cancel'); -export function isCancel(value: string|symbol): value is symbol { +export function isCancel(value: unknown): value is symbol { return value === cancel; } diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json new file mode 100644 index 0000000..4082f16 --- /dev/null +++ b/packages/core/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "../../tsconfig.json" +} diff --git a/packages/prompts/CHANGELOG.md b/packages/prompts/CHANGELOG.md index e4f9418..73286af 100644 --- a/packages/prompts/CHANGELOG.md +++ b/packages/prompts/CHANGELOG.md @@ -1,5 +1,19 @@ # @clack/prompts +## 0.2.0 + +### Minor Changes + +- Improved type safety +- b1341d6: Updated styles, new note component + +### Patch Changes + +- Updated dependencies [7dcad8f] +- Updated dependencies [2242f13] +- Updated dependencies [b1341d6] + - @clack/core@0.1.2 + ## 0.1.1 ### Patch Changes diff --git a/packages/prompts/package.json b/packages/prompts/package.json index 13bf6d9..8aac4d0 100644 --- a/packages/prompts/package.json +++ b/packages/prompts/package.json @@ -1,6 +1,6 @@ { "name": "@clack/prompts", - "version": "0.1.1", + "version": "0.2.0", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -52,7 +52,7 @@ "prepack": "unbuild" }, "dependencies": { - "@clack/core": "workspace:^0.1.1", + "@clack/core": "workspace:^0.1.3", "ansi-regex": "^6.0.1", "picocolors": "^1.0.0", "sisteransi": "^1.0.5" diff --git a/packages/prompts/src/index.ts b/packages/prompts/src/index.ts index 64ab986..8f87dcf 100644 --- a/packages/prompts/src/index.ts +++ b/packages/prompts/src/index.ts @@ -60,7 +60,7 @@ export const text = (opts: TextOptions) => { )}\n`; } }, - }).prompt(); + }).prompt() as Promise; }; export interface ConfirmOptions { @@ -102,21 +102,21 @@ export const confirm = (opts: ConfirmOptions) => { } } }, - }).prompt(); + }).prompt() as Promise; }; -interface Option { - value: any; +interface Option> { + value: Value; label?: string; hint?: string; } -export interface SelectOptions { +export interface SelectOptions[], Value extends Readonly> { message: string; options: Options; initialValue?: Options[number]["value"]; } -export const select = ( - opts: SelectOptions +export const select = [], Value extends Readonly>( + opts: SelectOptions ) => { const opt = ( option: Options[number], @@ -163,10 +163,10 @@ export const select = ( } } }, - }).prompt(); + }).prompt() as Promise; }; -export const multiselect = (opts: SelectOptions) => { +export const multiselect = [], Value extends Readonly>(opts: SelectOptions) => { const opt = (option: Options[number], state: 'inactive' | 'active' | 'selected' | 'active-selected' | 'submitted' | 'cancelled') => { const label = option.label ?? option.value; if (state === 'active') { @@ -191,18 +191,18 @@ export const multiselect = (opts: SelectOptions