liusuyi
2023-04-24 4737f1e038743ced243c9e52423404d9034d6107
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
'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();