123456789101112131415161718192021 |
- "use strict";
-
- var isValue = require("../value/is")
- , isObject = require("../object/is")
- , stringCoerce = require("../string/coerce")
- , toShortString = require("./to-short-string");
-
- var resolveMessage = function (message, value) {
- return message.replace("%v", toShortString(value));
- };
-
- module.exports = function (value, defaultMessage, inputOptions) {
- if (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));
- if (!isValue(value)) {
- if ("default" in inputOptions) return inputOptions["default"];
- if (inputOptions.isOptional) return null;
- }
- var errorMessage = stringCoerce(inputOptions.errorMessage);
- if (!isValue(errorMessage)) errorMessage = defaultMessage;
- throw new TypeError(resolveMessage(errorMessage, value));
- };
|