Skip to content

Commit ad30431

Browse files
committed
Merge branch 'refs/heads/feat-cli-g2' into feat-organization-support
# Conflicts: # templates/cli/lib/questions.js.twig
2 parents 38ddf48 + 23a3623 commit ad30431

File tree

3 files changed

+28
-0
lines changed

3 files changed

+28
-0
lines changed

src/SDK/Language/CLI.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,11 @@ public function getFiles(): array
127127
'destination' => 'lib/questions.js',
128128
'template' => 'cli/lib/questions.js.twig',
129129
],
130+
[
131+
'scope' => 'default',
132+
'destination' => 'lib/validations.js',
133+
'template' => 'cli/lib/validations.js.twig',
134+
],
130135
[
131136
'scope' => 'default',
132137
'destination' => 'lib/parser.js',

templates/cli/lib/questions.js.twig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const { teamsList } = require('./commands/teams');
44
const { functionsListRuntimes } = require('./commands/functions');
55
const { accountListMfaFactors } = require("./commands/account");
66
const { sdkForConsole } = require("./sdks");
7+
const { validateRequired } = require("./validations");
78
const { paginate } = require('./paginate');
89

910
const { databasesList } = require('./commands/databases');
@@ -109,6 +110,7 @@ const getInstallCommand = (runtime) => {
109110
return undefined;
110111
};
111112

113+
112114
const questionsInitProject = [
113115
{
114116
type: "confirm",
@@ -309,6 +311,7 @@ const questionsDeployFunctions = [
309311
type: "checkbox",
310312
name: "functions",
311313
message: "Which functions would you like to deploy?",
314+
validate: (value) => validateRequired('function', value),
312315
choices: () => {
313316
let functions = localConfig.getFunctions();
314317
if (functions.length === 0) {
@@ -335,6 +338,7 @@ const questionsDeployCollections = [
335338
type: "checkbox",
336339
name: "collections",
337340
message: "Which collections would you like to deploy?",
341+
validate: (value) => validateRequired('collection', value),
338342
choices: () => {
339343
let collections = localConfig.getCollections();
340344
if (collections.length === 0) {
@@ -360,6 +364,7 @@ const questionsDeployBuckets = [
360364
type: "checkbox",
361365
name: "buckets",
362366
message: "Which buckets would you like to deploy?",
367+
validate: (value) => validateRequired('bucket', value),
363368
choices: () => {
364369
let buckets = localConfig.getBuckets();
365370
if (buckets.length === 0) {
@@ -400,6 +405,7 @@ const questionsDeployTeams = [
400405
type: "checkbox",
401406
name: "teams",
402407
message: "Which teams would you like to deploy?",
408+
validate: (value) => validateRequired('team', value),
403409
choices: () => {
404410
let teams = localConfig.getTeams();
405411
if (teams.length === 0) {

templates/cli/lib/validations.js.twig

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const validateRequired = (resource, value) => {
2+
if (Array.isArray(value)) {
3+
if (value.length <= 0) {
4+
return `Please select at least one ${resource}`;
5+
}
6+
} else {
7+
if (value === undefined || value === null || value === 0 || (typeof value === "string" && value.trim() === '')) {
8+
return `${resource} is required`;
9+
}
10+
}
11+
12+
return true;
13+
}
14+
15+
module.exports = {
16+
validateRequired
17+
}

0 commit comments

Comments
 (0)