Skip to content

Commit f27aa69

Browse files
committed
refactor: Pulled out select form, prettied it up a touch
1 parent 0300916 commit f27aa69

3 files changed

Lines changed: 35 additions & 22 deletions

File tree

lib/actions/add-state-machine/index.js

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const Blueprint = require('../blueprint')
44
const Scaffold = require('@wmfs/tymly-scaffold')
55
const labelAndDescription = require('../util/label-and-description')
66
const selectInternalModel = require('../util/select-model')
7+
const selectForm = require('../util/select-form')
78
const chooseCategories = require('../util/choose-categories')
89
const chooseRoles = require('../util/choose-roles')
910
const chooseFunction = require('../util/choose-function')
@@ -76,28 +77,6 @@ async function selectMachine () {
7677
return machine
7778
} // selectMachine
7879

79-
async function selectForm (blueprint) {
80-
const forms = blueprint.forms()
81-
82-
if (forms.length === 0) {
83-
console.log(c.bold.red('Blueprint has no forms to build a state machine against'))
84-
return
85-
}
86-
87-
if (forms.length === 1) {
88-
console.log(c.bold(`Blueprint has one form - ${c.cyan(forms[0].name)}`))
89-
return forms[0]
90-
}
91-
92-
const formName = await ask({
93-
type: 'autocomplete',
94-
message: 'Update form',
95-
choices: forms.map(m => m.name)
96-
})
97-
98-
return forms.find(m => m.name === formName)
99-
} // selectForm
100-
10180
async function selectModel (form, blueprint) {
10281
if (form.meta && form.meta.data && form.meta.data.modelName) {
10382
return form.meta.data.modelName

lib/actions/blueprint.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class Blueprint {
4949
(name, details) => {
5050
return {
5151
name: name,
52+
description: (details.templateMeta && details.templateMeta.title) || name,
5253
meta: details.meta
5354
}
5455
}

lib/actions/util/select-form.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const ask = require('./ask')
2+
const c = require('ansi-colors')
3+
4+
async function selectForm (blueprint) {
5+
const forms = blueprint.forms()
6+
7+
if (forms.length === 0) {
8+
console.log(c.bold.red('Blueprint has no forms to build a state machine against'))
9+
return
10+
}
11+
12+
if (forms.length === 1) {
13+
console.log(c.bold(`Blueprint has one form - ${c.cyan(forms[0].name)}`))
14+
return forms[0]
15+
}
16+
17+
const formName = await ask({
18+
type: 'autocomplete',
19+
message: 'Update form',
20+
choices: forms.map(m => {
21+
return {
22+
name: m.name,
23+
message: m.description,
24+
hint: m.parent ? `(${m.parent})` : '',
25+
value: m.name
26+
}
27+
})
28+
})
29+
30+
return forms.find(m => m.name === formName)
31+
} // selectForm
32+
33+
module.exports = selectForm

0 commit comments

Comments
 (0)