skyrocket-cli
Version:
Command line interface for rapid Skyrocket projects development.
71 lines (69 loc) • 2.22 kB
JavaScript
const path = require('path')
const user = require('./git-user')
module.exports = {
init_flow: {
cli_projectName: {
type: 'input',
message: 'Project name: (e.g. Skyrocket Digital)',
default: path.parse(process.cwd()).base
},
cli_projectNameLower: {
type: 'input',
message: 'One word in lowercase to descript the project: (e.g. skyrocket) ',
default: path.parse(process.cwd()).base,
validate: answer => {
if (!/^\b[a-z0-9_/-]+\b$/.test(answer)) {
return 'Please input only one word in lowercase'
} else {
return true
}
}
},
cli_projectDesc: {
type: 'input',
message: 'Project description: '
},
cli_author: {
type: 'input',
message: 'Author: ',
default: user
},
cli_domain: {
type: 'input',
message: 'Project domain (naked domain): ',
default: 'e.g. skyrocket.com',
validate: answer => {
if (!/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/g.test(answer)) {
return 'Please input valid domain.'
} else if (!/^(?!(http:|https:|www\.)).*/g.test(answer)) {
return 'Naked domain should not has http, https or www in the beginning.'
} else {
return true
}
}
},
cli_prefix_or_not: {
type: 'confirm',
name: 'cli_prefix_or_not',
message: 'Do you want class prefix? e.g. #sky-header (Not Recommand)',
default: true
},
cli_prefix: {
type: 'input',
message: 'Prefix: ',
default: 'Three lowercase letters, like sky or sxh',
when: answer => answer.cli_prefix_or_not,
validate: answer => /^[a-z]{2}$/g.test(answer) ? true : 'Prefix has to be three lowercase letters'
}
// cli_installPackage: {
// type: 'list',
// message: 'Run `npm install` for you after the project has been created?',
// choices: [
// {name: 'Yes, use NPM', value: 'npm'},
// {name: 'Yes, use Yarn (recommended)', value: 'yarn'},
// {name: 'No, thanks', value: undefined}
// ],
// default: 'yarn'
// }
}
}