You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some Parameter have a get function which will cause issues when migrating to ESM and require using incorrect typing.
These need to be removed.
Description
Using the getter for a parameter is requiring use to use Type Assertions.
This is an issue because it will not work property in some cases and typescript will ignore the error.
As an example we can look at the verbose param:
// packages/cli/src/lib/global/options/verbose.tsimport{argv}from'yargs';import{Param}from'./verbose.model';import{ArgvOption}from'../../core/yargs/types';import{GlobalOptionsArgv}from'./types';import{getEnvPreset}from'../../pre-set';exportconstparam: Param={verbose: {alias: 'v',type: 'boolean',description: 'Run with verbose logging',default: getEnvPreset().verbose}};// We don't rely on yargs option normalization features as this can happen before cli bootstrapexportfunctionget(): boolean{const{verbose}=argvasunknownasGlobalOptionsArgv;returnverbose;}
Going around the yargs parser is problematic as it means we cannot simply expect it to work in the same way it yargs is suppose to.
Many of the getters for the options are being removed in this MR: #270
However some require making further modifications to the code base to not have any behaviour changes.
In particular I am referring to the the following yargs options:
openReport
dryRun
interactive
verbose
rcPath
Issue with getters in ESM
I believe the issue is related to live bindings. Or more broadly the way ES6 Modules export works.
TL;DR
Some Parameter have a get function which will cause issues when migrating to ESM and require using incorrect typing.
These need to be removed.
Description
Using the getter for a parameter is requiring use to use Type Assertions.
This is an issue because it will not work property in some cases and typescript will ignore the error.
As an example we can look at the verbose param:
Going around the yargs parser is problematic as it means we cannot simply expect it to work in the same way it yargs is suppose to.
Many of the getters for the options are being removed in this MR: #270
However some require making further modifications to the code base to not have any behaviour changes.
In particular I am referring to the the following yargs options:
Issue with getters in ESM
I believe the issue is related to live bindings. Or more broadly the way ES6 Modules export works.
More resources on the topic:
What do ES6 modules export? by Axel Rauschmayer
ES modules: A cartoon deep-dive by Lin Clark
Chapter on Modules in Exploring JS by Axel Rauschmayer
The text was updated successfully, but these errors were encountered: