Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci-mode => remove question if error #1309

Merged
merged 1 commit into from Dec 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
22 changes: 9 additions & 13 deletions packages/cli/src/prompt.ts
Expand Up @@ -21,23 +21,19 @@ export const inquirerPrompt = async (params: PromptParams): Promise<Record<strin

const msg = params.logMessage || params.warningMessage || params.message;
if (c.program?.ci) {
try {
if (
Array.isArray(params.choices) &&
typeof params.default !== 'undefined' &&
params.choices.includes(params.default)
) {
logDebug(`defaulting to choice '${params.default}' for prompt '${params.name}'`);
if (
Array.isArray(params.choices) &&
typeof params.default !== 'undefined' &&
params.choices.includes(params.default)
) {
logDebug(`defaulting to choice '${params.default}' for prompt '${params.name}'`);

if (params.name) return { [params.name]: params.default };
}
throw new Error(msg);
} catch (error) {
logWarning(error instanceof Error ? error.message : error);
if (params.name) return { [params.name]: params.default };
}
return Promise.reject(`--ci option does not allow prompts. question: ${msg}.`);
}
if (msg && params.logMessage) logTask(msg, chalk().grey);
if (msg && params.warningMessage && !c.program.ci) logWarning(msg);
if (msg && params.warningMessage) logWarning(msg);

// allow passing in just { type: 'prompt', ... } instead of { type: 'prompt', name: 'prompt', ... }
const { type, name } = params;
Expand Down
22 changes: 12 additions & 10 deletions packages/engine-core/src/tasks/task.rnv.new.ts
Expand Up @@ -108,7 +108,9 @@ export const configureGit = async (c: RnvContext) => {
}
}
};

const checkInputValue = (value: string | boolean): boolean => {
return value && typeof value === 'string' && value !== '' ? true : false;
};
const _prepareProjectOverview = (c: RnvContext, data: NewProjectData) => {
data.appTitle = data.inputAppTitle || data.defaultAppTitle;
data.teamID = '';
Expand Down Expand Up @@ -291,13 +293,13 @@ export const taskRnvNew = async (c: RnvContext) => {

let inputProjectName: string;

if (projectName && projectName !== '') {
if (checkInputValue(projectName)) {
inputProjectName = projectName;
} else {
const inputProjectNameObj = await inquirerPrompt({
name: 'inputProjectName',
type: 'input',
validate: (value) => !!value,
validate: (value) => checkInputValue(value),
message: "What's your project Name? (no spaces, folder based on ID will be created in this directory)",
});
inputProjectName = inputProjectNameObj?.inputProjectName;
Expand Down Expand Up @@ -326,7 +328,7 @@ export const taskRnvNew = async (c: RnvContext) => {
// ==================================================

const validator = {
validateAppTitle: (val: string) => (typeof val === 'string' && val !== '') || 'Please enter a title',
validateAppTitle: (val: string) => checkInputValue(val) || 'Please enter a title',
validateAppID: (appId: string) =>
(typeof appId === 'string' && !!appId.match(/^[a-z][a-z0-9_]*(\.[a-z0-9_]+)+[0-9a-z_]$/)) ||
'Please enter a valid appID (com.test.app)',
Expand All @@ -353,15 +355,15 @@ export const taskRnvNew = async (c: RnvContext) => {
return data.appID;
},
message: "What's your App ID?",
warning: `Command contains invalid appId ${id}`,
warning: `Command contains invalid appId : ${id}`,
},
{
value: appVersion,
validFn: validator.validateAppVersion,
name: 'inputVersion',
defaultVal: data.defaultVersion,
message: "What's your Version?",
warning: 'Command contains invalid appVersion',
warning: `Command contains invalid appVersion. Please enter a valid semver version (1.0.0, 42.6.7.9.3-alpha, etc.`,
},
];

Expand Down Expand Up @@ -408,7 +410,7 @@ export const taskRnvNew = async (c: RnvContext) => {
// INPUT: Workspace
// ==================================================
let inputWorkspace;
if (workspace && workspace !== '') {
if (checkInputValue(workspace)) {
inputWorkspace = workspace;
} else if (ci) {
inputWorkspace = data.defaultWorkspace;
Expand Down Expand Up @@ -455,7 +457,7 @@ export const taskRnvNew = async (c: RnvContext) => {
// data.optionTemplates.keysAsArray.push(customTemplate);
options.push(customTemplate);
let selectedInputTemplate;
if (projectTemplate && projectTemplate !== '') {
if (checkInputValue(projectTemplate)) {
selectedInputTemplate = projectTemplate;
} else {
const { inputTemplate } = await inquirerPrompt({
Expand All @@ -481,7 +483,7 @@ export const taskRnvNew = async (c: RnvContext) => {
data.optionTemplates.selectedOption = selectedInputTemplate;

let inputTemplateVersion;
if (templateVersion && templateVersion !== '') {
if (checkInputValue(templateVersion)) {
inputTemplateVersion = templateVersion;
} else {
inputTemplateVersion = await listAndSelectNpmVersion(c, data.optionTemplates.selectedOption || '');
Expand Down Expand Up @@ -556,7 +558,7 @@ export const taskRnvNew = async (c: RnvContext) => {
}

let inputSupportedPlatforms;
if (platform && platform !== '') {
if (checkInputValue(platform)) {
inputSupportedPlatforms = platform.split(',');
} else {
const answer = await inquirerPrompt({
Expand Down