Skip to content
This repository has been archived by the owner on Aug 22, 2023. It is now read-only.

Async flag options? #78

Open
devshorts opened this issue Nov 7, 2019 · 3 comments
Open

Async flag options? #78

devshorts opened this issue Nov 7, 2019 · 3 comments
Labels
enhancement New feature or request

Comments

@devshorts
Copy link

Is it possible to hydrate a list of options in the flags from an async function? A good use case would be to dynamically detect the input options for an array.

@RasPhilCo
Copy link
Contributor

Options is string[] type. Would need some reworking to accomplish. You could get "close" and enforce options with a custom flag parser.

@biesbjerg
Copy link

I'm also looking for more flexibility in this area.

Specifically I want installed plugins (using @oclif/plugin-plugins) to be able to register themselves using hooks (runHook). runHooks is async and also not possible to execute this.config.runHooks outside of the Command's instance context, as far as I can tell.

Are there any way to currently do this?

import { Command, flags } from '@oclif/command'

import { compilerRegistry } from '../compiler-registry';

export default class Extract extends Command {

	static flags = {
		compiler: flags.string({
			char: 'c',
			required: true,
			description: 'Compiler to use for translations',
			options: () => {
				return compilerRegistry.getRegistered().map(compiler => compiler.shortName);
			}
		})
	}

	async init() {
		await this.config.runHook('register-compilers', {
			id: 'register-compilers',
			registry: compilerRegistry
		});
	}
}

@RasPhilCo RasPhilCo added the enhancement New feature or request label Dec 19, 2020
@sisou
Copy link

sisou commented Aug 25, 2021

In my case I would like to make a flag's default function async, e.g. return a Promise. Is that reasonable?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants