UNPKG

919 BPlain TextView Raw
1import {injectable} from 'inversify';
2import {Positive, FailureRetVal} from "../interfaces/positive";
3const positive = require('positive');
4
5@injectable()
6export class PositiveImpl implements Positive {
7 areYouSure(confirmMsg: string,
8 cancelMsg: string,
9 defaultAnswer: boolean = false,
10 failureRetVal: FailureRetVal = FailureRetVal.NOT_SET): boolean {
11 let retVal = true;
12 try {
13 //This call to positive() will throw an exception if under test because no '/dev/tty' is available
14 retVal = positive(confirmMsg, defaultAnswer);
15 } catch (err) {
16 //failureRetVal should be set if code is under test. If it's not set then return defaultAnswer
17 retVal = (failureRetVal !== FailureRetVal.NOT_SET)
18 ? failureRetVal === FailureRetVal.TRUE
19 : defaultAnswer;
20 }
21 if (!retVal) {
22 console.error(cancelMsg);
23 }
24 return retVal;
25 }
26}