heyujie
2021-05-20 6ebdefb4a5b2be82a8c452c0bb4624f3d85a17b7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
"use strict";
 
var isValue             = require("../value/is")
  , resolveErrorMessage = require("./resolve-error-message");
 
module.exports = function (value, defaultMessage, inputOptions) {
    if (inputOptions && !isValue(value)) {
        if ("default" in inputOptions) return inputOptions["default"];
        if (inputOptions.isOptional) return null;
    }
    var ErrorConstructor = (inputOptions && inputOptions.Error) || TypeError;
    var error = new ErrorConstructor(resolveErrorMessage(defaultMessage, value, inputOptions));
    if (inputOptions && inputOptions.errorCode) error.code = inputOptions.errorCode;
    throw error;
};