* Apply any option related environment variables, if option does * not have a value from cli or client code. * * @private
()
| 1976 | * @private |
| 1977 | */ |
| 1978 | _parseOptionsEnv() { |
| 1979 | this.options.forEach((option) => { |
| 1980 | if (option.envVar && option.envVar in process.env) { |
| 1981 | const optionKey = option.attributeName(); |
| 1982 | // Priority check. Do not overwrite cli or options from unknown source (client-code). |
| 1983 | if ( |
| 1984 | this.getOptionValue(optionKey) === undefined || |
| 1985 | ['default', 'config', 'env'].includes( |
| 1986 | this.getOptionValueSource(optionKey), |
| 1987 | ) |
| 1988 | ) { |
| 1989 | if (option.required || option.optional) { |
| 1990 | // option can take a value |
| 1991 | // keep very simple, optional always takes value |
| 1992 | this.emit(`optionEnv:${option.name()}`, process.env[option.envVar]); |
| 1993 | } else { |
| 1994 | // boolean |
| 1995 | // keep very simple, only care that envVar defined and not the value |
| 1996 | this.emit(`optionEnv:${option.name()}`); |
| 1997 | } |
| 1998 | } |
| 1999 | } |
| 2000 | }); |
| 2001 | } |
| 2002 | |
| 2003 | /** |
| 2004 | * Apply any implied option values, if option is undefined or default value. |
no test coverage detected