You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

resolve-exception.js 782B

123456789101112131415161718192021
  1. "use strict";
  2. var isValue = require("../value/is")
  3. , isObject = require("../object/is")
  4. , stringCoerce = require("../string/coerce")
  5. , toShortString = require("./to-short-string");
  6. var resolveMessage = function (message, value) {
  7. return message.replace("%v", toShortString(value));
  8. };
  9. module.exports = function (value, defaultMessage, inputOptions) {
  10. if (!isObject(inputOptions)) throw new TypeError(resolveMessage(defaultMessage, value));
  11. if (!isValue(value)) {
  12. if ("default" in inputOptions) return inputOptions["default"];
  13. if (inputOptions.isOptional) return null;
  14. }
  15. var errorMessage = stringCoerce(inputOptions.errorMessage);
  16. if (!isValue(errorMessage)) errorMessage = defaultMessage;
  17. throw new TypeError(resolveMessage(errorMessage, value));
  18. };