Skip to content

Commit 4669d70

Browse files
committed
Merge branch 'refs/heads/feat-cli-g2' into refactor-basic-commands-renaming
# Conflicts: # templates/cli/lib/questions.js.twig
2 parents 17d7a5e + 23a3623 commit 4669d70

File tree

3 files changed

+27
-0
lines changed

3 files changed

+27
-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: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const { projectsList } = require('./commands/projects');
33
const { functionsListRuntimes } = require('./commands/functions');
44
const { accountListMfaFactors } = require("./commands/account");
55
const { sdkForConsole } = require("./sdks");
6+
const { validateRequired } = require("./validations");
67

78
const { databasesList } = require('./commands/databases');
89
const JSONbig = require("json-bigint")({ storeAsString: false });
@@ -281,6 +282,7 @@ const questionsPushFunctions = [
281282
type: "checkbox",
282283
name: "functions",
283284
message: "Which functions would you like to push?",
285+
validate: (value) => validateRequired('function', value),
284286
choices: () => {
285287
let functions = localConfig.getFunctions();
286288
if (functions.length === 0) {
@@ -307,6 +309,7 @@ const questionsPushCollections = [
307309
type: "checkbox",
308310
name: "collections",
309311
message: "Which collections would you like to push?",
312+
validate: (value) => validateRequired('collection', value),
310313
choices: () => {
311314
let collections = localConfig.getCollections();
312315
if (collections.length === 0) {
@@ -332,6 +335,7 @@ const questionsPushBuckets = [
332335
type: "checkbox",
333336
name: "buckets",
334337
message: "Which buckets would you like to push?",
338+
validate: (value) => validateRequired('bucket', value),
335339
choices: () => {
336340
let buckets = localConfig.getBuckets();
337341
if (buckets.length === 0) {
@@ -372,6 +376,7 @@ const questionsPushTeams = [
372376
type: "checkbox",
373377
name: "teams",
374378
message: "Which teams would you like to push?",
379+
validate: (value) => validateRequired('team', value),
375380
choices: () => {
376381
let teams = localConfig.getTeams();
377382
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)