diff --git a/.changeset/lucky-maps-beam.md b/.changeset/lucky-maps-beam.md deleted file mode 100644 index 2f50404f..00000000 --- a/.changeset/lucky-maps-beam.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -"@clack/core": minor -"@clack/prompts": minor ---- - -Adds a new `signal` option to support programmatic prompt cancellation with an [abort controller](https://kettanaito.com/blog/dont-sleep-on-abort-controller). - -One example use case is automatically cancelling a prompt after a timeout. - -```ts -const shouldContinue = await confirm({ - message: 'This message will self destruct in 5 seconds', - signal: AbortSignal.timeout(5000), -}); -``` - -Another use case is racing a long running task with a manual prompt. - -```ts -const abortController = new AbortController() - -const projectType = await Promise.race([ - detectProjectType({ - signal: abortController.signal - }), - select({ - message: 'Pick a project type.', - options: [ - { value: 'ts', label: 'TypeScript' }, - { value: 'js', label: 'JavaScript' }, - { value: 'coffee', label: 'CoffeeScript', hint: 'oh no'}, - ], - signal: abortController.signal, - }) -]) - -abortController.abort() -``` diff --git a/.changeset/swift-jars-destroy.md b/.changeset/swift-jars-destroy.md deleted file mode 100644 index 0685d4d5..00000000 --- a/.changeset/swift-jars-destroy.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@clack/core': patch ---- - -Improves types for events and interaction states. diff --git a/.changeset/thin-moose-tease.md b/.changeset/thin-moose-tease.md deleted file mode 100644 index fd459928..00000000 --- a/.changeset/thin-moose-tease.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@clack/prompts': patch ---- - -Adapts `spinner` output for static CI environments diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index bcfdbaf4..30d4dbb5 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,47 @@ # @clack/core +## 0.4.0 + +### Minor Changes + +- 801246b: Adds a new `signal` option to support programmatic prompt cancellation with an [abort controller](https://kettanaito.com/blog/dont-sleep-on-abort-controller). + + One example use case is automatically cancelling a prompt after a timeout. + + ```ts + const shouldContinue = await confirm({ + message: "This message will self destruct in 5 seconds", + signal: AbortSignal.timeout(5000), + }); + ``` + + Another use case is racing a long running task with a manual prompt. + + ```ts + const abortController = new AbortController(); + + const projectType = await Promise.race([ + detectProjectType({ + signal: abortController.signal, + }), + select({ + message: "Pick a project type.", + options: [ + { value: "ts", label: "TypeScript" }, + { value: "js", label: "JavaScript" }, + { value: "coffee", label: "CoffeeScript", hint: "oh no" }, + ], + signal: abortController.signal, + }), + ]); + + abortController.abort(); + ``` + +### Patch Changes + +- 51e12bc: Improves types for events and interaction states. + ## 0.3.5 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index 753e30ba..2df375fc 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@clack/core", - "version": "0.3.5", + "version": "0.4.0", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -22,7 +22,10 @@ "url": "https://github.com/natemoo-re/clack/issues" }, "homepage": "https://github.com/natemoo-re/clack/tree/main/packages/core#readme", - "files": ["dist", "CHANGELOG.md"], + "files": [ + "dist", + "CHANGELOG.md" + ], "keywords": [ "ask", "clack", diff --git a/packages/prompts/CHANGELOG.md b/packages/prompts/CHANGELOG.md index 85f93e1e..c00cf6a3 100644 --- a/packages/prompts/CHANGELOG.md +++ b/packages/prompts/CHANGELOG.md @@ -1,5 +1,50 @@ # @clack/prompts +## 0.9.0 + +### Minor Changes + +- 801246b: Adds a new `signal` option to support programmatic prompt cancellation with an [abort controller](https://kettanaito.com/blog/dont-sleep-on-abort-controller). + + One example use case is automatically cancelling a prompt after a timeout. + + ```ts + const shouldContinue = await confirm({ + message: "This message will self destruct in 5 seconds", + signal: AbortSignal.timeout(5000), + }); + ``` + + Another use case is racing a long running task with a manual prompt. + + ```ts + const abortController = new AbortController(); + + const projectType = await Promise.race([ + detectProjectType({ + signal: abortController.signal, + }), + select({ + message: "Pick a project type.", + options: [ + { value: "ts", label: "TypeScript" }, + { value: "js", label: "JavaScript" }, + { value: "coffee", label: "CoffeeScript", hint: "oh no" }, + ], + signal: abortController.signal, + }), + ]); + + abortController.abort(); + ``` + +### Patch Changes + +- f9f139d: Adapts `spinner` output for static CI environments +- Updated dependencies [801246b] +- Updated dependencies [51e12bc] + - @clack/core@0.4.0 + ## 0.8.2 ### Patch Changes diff --git a/packages/prompts/package.json b/packages/prompts/package.json index 78bd1a0e..ce36b68a 100644 --- a/packages/prompts/package.json +++ b/packages/prompts/package.json @@ -1,6 +1,6 @@ { "name": "@clack/prompts", - "version": "0.8.2", + "version": "0.9.0", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.mjs", @@ -22,7 +22,10 @@ "url": "https://github.com/natemoo-re/clack/issues" }, "homepage": "https://github.com/natemoo-re/clack/tree/main/packages/prompts#readme", - "files": ["dist", "CHANGELOG.md"], + "files": [ + "dist", + "CHANGELOG.md" + ], "author": { "name": "Nate Moore", "email": "nate@natemoo.re",