UNPKG

snes-disassembler

Version:

A Super Nintendo (SNES) ROM disassembler for 65816 assembly

37 lines 1.51 kB
/** * Result Types for Better Error Handling * * Implements Result pattern for better error management * and eliminates need for try-catch everywhere. */ export type Result<T, E = Error> = Success<T> | Failure<E>; export interface Success<T> { success: true; data: T; } export interface Failure<E> { success: false; error: E; } export declare const Ok: <T>(data: T) => Success<T>; export declare const Err: <E>(error: E) => Failure<E>; export declare const isSuccess: <T, E>(result: Result<T, E>) => result is Success<T>; export declare const isFailure: <T, E>(result: Result<T, E>) => result is Failure<E>; export declare const map: <T, U, E>(result: Result<T, E>, fn: (data: T) => U) => Result<U, E>; export declare const flatMap: <T, U, E>(result: Result<T, E>, fn: (data: T) => Result<U, E>) => Result<U, E>; export declare enum DisassemblerErrorType { ROM_NOT_FOUND = "ROM_NOT_FOUND", INVALID_ROM_FORMAT = "INVALID_ROM_FORMAT", INVALID_ADDRESS_RANGE = "INVALID_ADDRESS_RANGE", DECODER_ERROR = "DECODER_ERROR", SYMBOL_LOAD_ERROR = "SYMBOL_LOAD_ERROR", OUTPUT_ERROR = "OUTPUT_ERROR", ANALYSIS_ERROR = "ANALYSIS_ERROR", BRR_DECODE_ERROR = "BRR_DECODE_ERROR" } export declare class DisassemblerError extends Error { type: DisassemblerErrorType; context?: Record<string, unknown> | undefined; constructor(type: DisassemblerErrorType, message: string, context?: Record<string, unknown> | undefined); } //# sourceMappingURL=result-types.d.ts.map