UNPKG

@hi18n/core

Version:

Message internationalization meets immutability and type-safety - core runtime

178 lines (145 loc) 5.04 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.ParseError = exports.NoLocaleError = exports.MissingTranslationError = exports.MissingLocaleError = exports.MissingArgumentError = exports.MessageEvaluationError = exports.MessageError = exports.ArgumentTypeError = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); /** * An error for a specific message. It is thrown when: * * - the message is missing, * - the message contains a syntax error, or * - the message cannot be evaluated with the supplied parameters. * * @since 0.1.7 (`@hi18n/core`) */ class MessageError extends Error { constructor(options) { var _this$cause; const { locale, id, ...restOptions } = options; const inLocale = locale != null ? " in ".concat(locale) : ""; super("Error translating ".concat(id).concat(inLocale, ": ").concat(options.cause.message), restOptions); (0, _defineProperty2.default)(this, "cause", void 0); (0, _defineProperty2.default)(this, "locale", void 0); (0, _defineProperty2.default)(this, "id", void 0); this.locale = locale; this.id = id; (_this$cause = this.cause) !== null && _this$cause !== void 0 ? _this$cause : this.cause = options.cause; } } /** * Missing translation. Usually wrapped in {@link MessageError}. * * @since 0.1.7 (`@hi18n/core`) */ exports.MessageError = MessageError; MessageError.prototype.name = "MessageError"; class MissingTranslationError extends Error { constructor() { let message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "Missing translation"; let options = arguments.length > 1 ? arguments[1] : undefined; super(message, options); } } /** * No locale specified. * * @since 0.1.7 (`@hi18n/core`) */ exports.MissingTranslationError = MissingTranslationError; MissingTranslationError.prototype.name = "MissingTranslationError"; class NoLocaleError extends Error { constructor() { let message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "No locale specified"; let options = arguments.length > 1 ? arguments[1] : undefined; super(message, options); } } /** * Locale is specified, but no such locale exists in the book. * * @since 0.1.7 (`@hi18n/core`) */ exports.NoLocaleError = NoLocaleError; NoLocaleError.prototype.name = "NoLocaleError"; class MissingLocaleError extends Error { constructor(options) { const { locale, availableLocales, ...restOptions } = options; super("Missing locale: ".concat(locale), restOptions); (0, _defineProperty2.default)(this, "locale", void 0); (0, _defineProperty2.default)(this, "availableLocales", void 0); this.locale = locale; this.availableLocales = availableLocales; } } /** * Parse error. Usually wrapped in {@link MessageError}. * * @since 0.1.7 (`@hi18n/core`) */ exports.MissingLocaleError = MissingLocaleError; MissingLocaleError.prototype.name = "MissingLocaleError"; class ParseError extends Error {} /** * An error during evaluating messages. Usually wrapped in {@link MessageError}. * * @since 0.1.7 (`@hi18n/core`) */ exports.ParseError = ParseError; ParseError.prototype.name = "ParseError"; class MessageEvaluationError extends Error {} /** * Missing translation argument. Usually wrapped in {@link MessageError}. * * @since 0.1.7 (`@hi18n/core`) */ exports.MessageEvaluationError = MessageEvaluationError; MessageEvaluationError.prototype.name = "MessageEvaluationError"; class MissingArgumentError extends MessageEvaluationError { constructor(options) { const { argName, ...restOptions } = options; super("Missing argument: ".concat(argName), restOptions); (0, _defineProperty2.default)(this, "argName", void 0); this.argName = argName; } } /** * Translation argument type mismatch. Usually wrapped in {@link MessageError}. * * @since 0.1.7 (`@hi18n/core`) */ exports.MissingArgumentError = MissingArgumentError; MissingArgumentError.prototype.name = "MissingArgumentError"; class ArgumentTypeError extends MessageEvaluationError { constructor(options) { const { argName, expectedType, got, ...restOptions } = options; super( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions "Invalid argument ".concat(argName, ": expected ").concat(expectedType, ", got ").concat(got), restOptions); (0, _defineProperty2.default)(this, "argName", void 0); (0, _defineProperty2.default)(this, "expectedType", void 0); (0, _defineProperty2.default)(this, "got", void 0); this.argName = argName; this.expectedType = expectedType; this.got = got; } } exports.ArgumentTypeError = ArgumentTypeError; ArgumentTypeError.prototype.name = "ArgumentTypeError"; //# sourceMappingURL=errors.js.map