seyfert
Version:
The most advanced framework for discord bots
117 lines (116 loc) • 3.92 kB
TypeScript
/**
* Base error type used by Seyfert.
*
* It supports optional machine-readable metadata and preserves the original
* cause when wrapping lower-level errors.
*
* @remarks
* For validation errors, prefer structured metadata (you can use
* {@link createValidationMetadata}) with:
* - `expected`: expected value or shape
* - `received`: received value
* - `receivedType`: optional primitive/runtime type
*
* @example
* ```ts
* throw new SeyfertError('INVALID_TOKEN', {
* metadata: { shardId: 0 },
* });
* ```
*/
export declare class SeyfertError extends Error {
/**
* Error name used in logs and stack traces.
*/
name: string;
/**
* Optional machine-readable error identifier.
*/
code: SeyfertErrorCode;
/**
* Optional contextual data attached to the error.
*/
metadata?: Record<string, unknown>;
/**
* Creates a SeyfertError instance.
*
* @param code Machine-readable error code.
* @param options Additional error options.
* @param options.metadata Optional contextual metadata for diagnostics.
* @param options.cause Original error that caused this error.
*/
constructor(code: SeyfertErrorCode, options?: {
metadata?: Record<string, unknown>;
cause?: unknown;
});
/**
* Serializes the error into a plain object.
*
* @returns Serializable error payload including name, message, code, metadata and cause.
*/
toJSON(): {
name: string;
message: string;
code: SeyfertErrorCode;
metadata: Record<string, unknown> | undefined;
cause: unknown;
};
}
export declare function createValidationMetadata(expected: unknown, received: unknown, metadata?: Record<string, unknown>): {
expected: unknown;
received: unknown;
receivedType: string;
};
export declare const SeyfertErrorMessages: {
INTERNAL_ERROR: string;
INVALID_TOKEN: string;
FUNCTION_NOT_IMPLEMENTED: string;
NO_SEYFERT_CONFIG: string;
BAD_OPTION: string;
INVALID_EMOJI: string;
EMOJI_NOT_RESOLVABLE: string;
INVALID_OPTIONS_LENGTH: string;
MISSING_COMPONENT: string;
MISSING_ACCESSORY: string;
INVALID_ATTACHMENT_TYPE: string;
INVALID_ANSWER_ID: string;
UNDEFINED_LOCALE: string;
INTERACTION_ALREADY_REPLIED: string;
CANNOT_USE_REPLY: string;
RELOAD_NOT_SUPPORTED: string;
API_WORKER_PROXY_PARENT_REQUIRED: string;
WORKER_TIMEOUT: string;
WORKER_THREADS_REQUIRED: string;
WORKER_AND_SHARD_ID_REQUIRED: string;
WORKER_NOT_FOUND: string;
INVALID_SHARD_ID: string;
INVALID_WORKER_REQUEST: string;
CANNOT_OVERRIDE_EXISTING_SHARD: string;
INVALID_SEC_WEBSOCKET_ACCEPT_HEADER: string;
CACHE_TIMEOUT: string;
CACHE_USERS_DISABLED: string;
CACHE_MEMBERS_DISABLED: string;
CACHE_CHANNELS_DISABLED: string;
CACHE_OVERWRITES_DISABLED: string;
CACHE_USERS_VALUES_SIZE_MISMATCH: string;
CACHE_USERS_COUNT_MISMATCH: string;
CACHE_USERS_COUNT_NOT_ZERO: string;
CACHE_MEMBERS_GUILD_VALUES_SIZE_MISMATCH: string;
CACHE_MEMBERS_GUILD_COUNT_MISMATCH: string;
CACHE_MEMBERS_VALUES_SIZE_MISMATCH: string;
CACHE_MEMBERS_GLOBAL_COUNT_MISMATCH: string;
CACHE_MEMBERS_COUNT_NOT_ZERO: string;
CACHE_CHANNELS_GUILD_VALUES_SIZE_MISMATCH: string;
CACHE_CHANNELS_GUILD_COUNT_MISMATCH: string;
CACHE_CHANNELS_VALUES_SIZE_MISMATCH: string;
CACHE_CHANNELS_COUNT_MISMATCH: string;
CACHE_CHANNELS_COUNT_NOT_ZERO: string;
CACHE_OVERWRITES_CHANNEL_VALUES_SIZE_MISMATCH: string;
CACHE_OVERWRITES_CHANNEL_COUNT_MISMATCH: string;
CACHE_OVERWRITE_NOT_FOUND: string;
CACHE_OVERWRITES_COUNT_NOT_ZERO: string;
INVALID_RETRY_AFTER: string;
DENO_FILE_API_UNSUPPORTED: string;
GUILD_SEARCH_INDEX_NOT_READY: string;
};
export type SeyfertErrorCode = keyof typeof SeyfertErrorMessages | (string & {});