30 lines
606 B
Plaintext
30 lines
606 B
Plaintext
'use strict';
|
|
|
|
const FormPrompt = require('../prompts/form');
|
|
|
|
const defaultAuthenticate = () => {
|
|
throw new Error('expected prompt to have a custom authenticate method');
|
|
};
|
|
|
|
const factory = (authenticate = defaultAuthenticate) => {
|
|
|
|
class AuthPrompt extends FormPrompt {
|
|
constructor(options) {
|
|
super(options);
|
|
}
|
|
|
|
async submit() {
|
|
this.value = await authenticate.call(this, this.values, this.state);
|
|
super.base.submit.call(this);
|
|
}
|
|
|
|
static create(authenticate) {
|
|
return factory(authenticate);
|
|
}
|
|
}
|
|
|
|
return AuthPrompt;
|
|
};
|
|
|
|
module.exports = factory();
|