@hi18n/core
Version:
Message internationalization meets immutability and type-safety - core runtime
178 lines (145 loc) • 5.04 kB
JavaScript
;
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