docutils-ts
Version:
Port of the Python Docutils library to TypeScript
87 lines (86 loc) • 2.34 kB
JavaScript
/**
* Custom error class to simulate Python's SystemExit
*/
export class ExitError extends Error {
constructor(message, code = 0) {
super(message);
this.name = 'ExitError';
this.code = code;
}
}
export class UnimplementedError extends Error {
constructor(message) {
super(message);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, UnimplementedError);
}
this.message = message || '';
}
}
export class InvalidStateError extends Error {
constructor(message) {
super(message);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, InvalidStateError);
}
this.message = message || '';
}
}
export class EOFError extends Error {
constructor() {
super();
if (Error.captureStackTrace) {
Error.captureStackTrace(this, EOFError);
}
}
}
export class InvalidArgumentsError extends Error {
constructor(message) {
super();
this.message = message;
if (Error.captureStackTrace) {
Error.captureStackTrace(this, InvalidArgumentsError);
}
}
}
export const InvalidArgumentError = InvalidArgumentsError;
export class SystemMessage extends Error {
constructor(msg, level, ...params) {
super(...params);
this.message = msg.astext();
this.msg = msg;
this.level = level;
if (Error.captureStackTrace) {
Error.captureStackTrace(this, SystemMessage);
}
}
}
export class ApplicationError extends Error {
constructor(message, args = {}) {
super(message);
this.args = args;
if (args !== undefined) {
this.error = args.error;
}
if (Error.captureStackTrace) {
Error.captureStackTrace(this, ApplicationError);
}
}
}
export class DataError extends ApplicationError {
constructor(message, args) {
super(message, args);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, DataError);
}
}
}
export class AssertError extends Error {
constructor(message) {
super(message);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, AssertError);
}
this.message = message;
}
}