Skip to content

Commit

Permalink
fix: remove default value for flags
Browse files Browse the repository at this point in the history
  • Loading branch information
anshumanv committed Nov 6, 2020
1 parent 1e0b0b4 commit b6f1c9e
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 38 deletions.
33 changes: 2 additions & 31 deletions packages/webpack-cli/__tests__/arg-parser.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ const basicOptions = [
usage: '--string-flag-with-default <value>',
type: String,
description: 'string flag',
defaultValue: 'default-value',
},
{
name: 'multi-type',
Expand Down Expand Up @@ -125,9 +124,7 @@ describe('arg-parser', () => {
it('parses no flags', () => {
const res = argParser(basicOptions, [], true);
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
stringFlagWithDefault: 'default-value',
});
expect(res.opts).toEqual({});
expect(warnMock.mock.calls.length).toEqual(0);
});

Expand All @@ -138,7 +135,6 @@ describe('arg-parser', () => {
boolFlag: true,
numFlag: 100,
stringFlag: 'val',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -148,7 +144,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
numFlag: 100,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -158,7 +153,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
numFlag: 10,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -173,7 +167,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
boolFlag: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -183,7 +176,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
stringFlag: 'string-value',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -193,7 +185,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiType: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -203,7 +194,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiType: 'value',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -213,7 +203,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiType: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -223,7 +212,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiType: 'value',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -233,7 +221,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiType: false,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -243,7 +230,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiTypeDifferentOrder: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -253,7 +239,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiTypeDifferentOrder: 'value',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -263,7 +248,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiTypeEmpty: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -273,7 +257,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiTypeNumber: 1.1,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -298,7 +281,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
negFlag: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(1);
expect(warnMock.mock.calls[0][0]).toContain('You provided both -n and --no-neg-flag');
Expand All @@ -309,7 +291,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
stringFlag: 'val',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -319,7 +300,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
multiFlag: ['a.js', 'b.js'],
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -330,7 +310,6 @@ describe('arg-parser', () => {
expect(res.opts).toEqual({
boolFlag: true,
stringFlag: 'val',
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -340,7 +319,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs).toEqual(['--unknown-arg', 'no-leading-dashes']);
expect(res.opts).toEqual({
boolFlag: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -350,7 +328,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
customTypeFlag: ['val1', 'val2', 'val3'],
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -376,7 +353,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
negFlag: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -386,7 +362,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
negFlag: false,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(0);
});
Expand All @@ -396,7 +371,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
negFlag: false,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(1);
expect(warnMock.mock.calls[0][0]).toContain('You provided both --neg-flag and --no-neg-flag');
Expand All @@ -407,7 +381,6 @@ describe('arg-parser', () => {
expect(res.unknownArgs.length).toEqual(0);
expect(res.opts).toEqual({
negFlag: true,
stringFlagWithDefault: 'default-value',
});
expect(warnMock.mock.calls.length).toEqual(1);
expect(warnMock.mock.calls[0][0]).toContain('You provided both --neg-flag and --no-neg-flag');
Expand All @@ -416,9 +389,7 @@ describe('arg-parser', () => {
it('handles unknown flag', () => {
const res = argParser(basicOptions, ['--unknown-flag'], true);
expect(res.unknownArgs).toEqual(['--unknown-flag']);
expect(res.opts).toEqual({
stringFlagWithDefault: 'default-value',
});
expect(res.opts).toEqual({});
expect(warnMock.mock.calls.length).toEqual(0);
});
});
10 changes: 5 additions & 5 deletions packages/webpack-cli/lib/utils/arg-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ const argParser = (options, args, argsOnly = false, name = '') => {
if (option.multiple) {
// a multiple argument parsing function
const multiArg = (value, previous = []) => previous.concat([value]);
parserInstance.option(flagsWithType, option.description, multiArg, option.defaultValue).action(() => {});
parserInstance.option(flagsWithType, option.description, multiArg).action(() => {});
} else if (option.multipleType) {
// for options which accept multiple types like env
// so you can do `--env platform=staging --env production`
Expand Down Expand Up @@ -132,17 +132,17 @@ const argParser = (options, args, argsOnly = false, name = '') => {

return previous;
};
parserInstance.option(flagsWithType, option.description, multiArg, option.defaultValue).action(() => {});
parserInstance.option(flagsWithType, option.description, multiArg).action(() => {});
} else {
// Prevent default behavior for standalone options
parserInstance.option(flagsWithType, option.description, option.defaultValue).action(() => {});
parserInstance.option(flagsWithType, option.description).action(() => {});
}
} else if (optionType === Number) {
// this will parse the flag as a number
parserInstance.option(flagsWithType, option.description, Number, option.defaultValue);
parserInstance.option(flagsWithType, option.description, Number);
} else {
// in this case the type is a parsing function
parserInstance.option(flagsWithType, option.description, optionType, option.defaultValue).action(() => {});
parserInstance.option(flagsWithType, option.description, optionType).action(() => {});
}

if (option.negative) {
Expand Down
2 changes: 0 additions & 2 deletions packages/webpack-cli/lib/utils/cli-flags.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ const core = [
usage: '--color',
type: Boolean,
negative: true,
defaultValue: true,
description: 'Enable/Disable colors on console',
},
{
Expand Down Expand Up @@ -156,7 +155,6 @@ const core = [
usage: '--devtool <value>',
type: String,
alias: 'd',
defaultValue: undefined,
group: BASIC_GROUP,
description: 'Determine source maps to use',
link: 'https://webpack.js.org/configuration/devtool/#devtool',
Expand Down

0 comments on commit b6f1c9e

Please sign in to comment.