You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
'use strict';
const StringPrompt = require('../types/string');
class ListPrompt extends StringPrompt { constructor(options = {}) { super(options); this.sep = this.options.separator || /, */; this.initial = options.initial || ''; }
split(input = this.value) { return input ? String(input).split(this.sep) : []; }
format() { let style = this.state.submitted ? this.styles.primary : val => val; return this.list.map(style).join(', '); }
async submit(value) { let result = this.state.error || await this.validate(this.list, this.state); if (result !== true) { this.state.error = result; return super.submit(); } this.value = this.list; return super.submit(); }
get list() { return this.split(); } }
module.exports = ListPrompt;
|