Skip to content

Commit 1b92f8a

Browse files
committed
fix: subsequent validation for various prompts
If a prompt has multiple validators, they will now validate values in sequence, instead of just relying on the last one. This was a bug--validators must be combined using `combine`, and not use `validator1 && validator2`.
1 parent c75e66f commit 1b92f8a

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

packages/ionic/src/commands/login.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { MetadataGroup, validators } from '@ionic/cli-framework';
1+
import { MetadataGroup, combine, validators } from '@ionic/cli-framework';
22
import chalk from 'chalk';
33
import * as readline from 'readline';
44

@@ -111,7 +111,7 @@ If you are having issues logging in, please get in touch with our Support[^suppo
111111
type: 'input',
112112
name: 'email',
113113
message: 'Email:',
114-
validate: v => validators.required(v) && validators.email(v),
114+
validate: v => combine(validators.required, validators.email)(v),
115115
});
116116

117117
inputs[0] = email;

packages/ionic/src/commands/package/build.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CommandLineInputs, CommandLineOptions, LOGGER_LEVELS, MetadataGroup, contains, validators } from '@ionic/cli-framework';
1+
import { CommandLineInputs, CommandLineOptions, LOGGER_LEVELS, MetadataGroup, combine, contains, validators } from '@ionic/cli-framework';
22
import { columnar } from '@ionic/cli-framework/utils/format';
33
import { tmpfilepath } from '@ionic/utils-fs';
44
import { sleep } from '@ionic/utils-process';
@@ -144,7 +144,7 @@ Customizing the build:
144144
name: 'platform',
145145
choices: PLATFORMS,
146146
message: `Platform to package:`,
147-
validate: v => validators.required(v) && contains(PLATFORMS, {})(v),
147+
validate: v => combine(validators.required, contains(PLATFORMS, {}))(v),
148148
});
149149

150150
inputs[0] = platformInput;
@@ -166,7 +166,7 @@ Customizing the build:
166166
name: 'type',
167167
choices: buildTypes,
168168
message: `Build type:`,
169-
validate: v => validators.required(v) && contains(buildTypes, {})(v),
169+
validate: v => combine(validators.required, contains(buildTypes, {}))(v),
170170
});
171171

172172
inputs[1] = typeInput;

packages/ionic/src/lib/session.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { combine } from '@ionic/cli-framework';
2+
13
import { IClient, IConfig, ISession, IonicEnvironment } from '../definitions';
24
import { isLoginResponse, isSuperAgentError } from '../guards';
35

@@ -144,7 +146,7 @@ export async function promptToLogin(env: IonicEnvironment): Promise<void> {
144146
type: 'input',
145147
name: 'email',
146148
message: 'Email:',
147-
validate: v => validators.required(v) && validators.email(v),
149+
validate: v => combine(validators.required, validators.email)(v),
148150
});
149151

150152
const password = await env.prompt({

0 commit comments

Comments
 (0)