diff --git a/CHANGELOG.md b/CHANGELOG.md index c58f91766..b7c8d5f9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.14.2](https://github.com/oclif/core/compare/v1.14.1...v1.14.2) (2022-08-18) + + +### Bug Fixes + +* add overloads to enum flag ([799455b](https://github.com/oclif/core/commit/799455bbb526b221c806bf8feff6b625dcf50a56)) + ### [1.14.1](https://github.com/oclif/core/compare/v1.14.0...v1.14.1) (2022-08-16) diff --git a/package.json b/package.json index c1e1fc2df..60a4fa268 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/core", "description": "base library for oclif CLIs", - "version": "1.14.1", + "version": "1.14.2", "author": "Salesforce", "bugs": "https://github.com/oclif/core/issues", "dependencies": { diff --git a/src/flags.ts b/src/flags.ts index ccc4dcb21..339584fb0 100644 --- a/src/flags.ts +++ b/src/flags.ts @@ -1,4 +1,4 @@ -import {OptionFlag, Definition, BooleanFlag, EnumFlagOptions} from './interfaces' +import {OptionFlag, Definition, BooleanFlag, EnumFlagOptions, Default} from './interfaces' import * as Parser from './parser' import Command from './command' @@ -12,7 +12,11 @@ export function option(options: {parse: OptionFlag['parse']} & Partial(options)() } -const _enum = (opts: EnumFlagOptions): OptionFlag => { +export function _enum(opts: EnumFlagOptions & {multiple: true} & ({required: true} | { default: Default })): OptionFlag +export function _enum(opts: EnumFlagOptions & {multiple: true}): OptionFlag +export function _enum(opts: EnumFlagOptions & ({required: true} | { default: Default })): OptionFlag +export function _enum(opts: EnumFlagOptions): OptionFlag +export function _enum(opts: EnumFlagOptions): OptionFlag | OptionFlag | OptionFlag | OptionFlag { return build({ async parse(input) { if (!opts.options.includes(input)) throw new Error(`Expected --${this.name}=${input} to be one of: ${opts.options.join(', ')}`) @@ -20,7 +24,7 @@ const _enum = (opts: EnumFlagOptions): OptionFlag => { }, helpValue: `(${opts.options.join('|')})`, ...opts, - })() as OptionFlag + })() } export {_enum as enum} diff --git a/src/parser/flags.ts b/src/parser/flags.ts index 840a03e8e..eaa8bcd80 100644 --- a/src/parser/flags.ts +++ b/src/parser/flags.ts @@ -75,7 +75,7 @@ export function directory(opts: { exists?: boolean } & Partial> & { exists?: boolean } & {multiple: true} & ({required: true} | { default: Default })): OptionFlag export function file(opts: Partial> & { exists?: boolean } & {multiple: true}): OptionFlag -export function file(opts: { exists?: boolean } & Partial> & ({required: true} | { default: string })): OptionFlag +export function file(opts: { exists?: boolean } & Partial> & ({required: true} | { default: Default })): OptionFlag export function file(opts?: { exists?: boolean } & Partial>): OptionFlag export function file(opts: { exists?: boolean } & Partial> = {}): OptionFlag | OptionFlag | OptionFlag | OptionFlag { return build({