UNPKG

@fs-eire/wgsl-template

Version:

A powerful template system for generating WGSL (WebGPU Shading Language) code with support for parameters, conditionals, and multiple output formats including C++ code generation.

130 lines 4.77 kB
/** * Base class for all WGSL template errors. */ export declare abstract class WgslTemplateError extends Error { /** * The file path where the error occurred, if applicable. */ readonly filePath?: string; /** * The line number where the error occurred, if applicable. */ readonly lineNumber?: number; /** * The column number where the error occurred, if applicable. */ readonly columnNumber?: number; constructor(message: string, options?: { filePath?: string; lineNumber?: number; columnNumber?: number; cause?: Error; }); /** * Returns a formatted error message with location information. */ getFormattedMessage(): string; } /** * Error that occurs during template loading (file system operations). */ export declare class WgslTemplateLoadError extends WgslTemplateError { /** * The type of load operation that failed. */ readonly operation: "read-file" | "scan-directory" | "resolve-path" | "file-not-found" | "permission-denied" | "template-conflict"; constructor(message: string, operation: WgslTemplateLoadError["operation"], options?: { filePath?: string; cause?: Error; }); } /** * Error that occurs during template parsing (syntax analysis, include resolution, etc.). */ export declare class WgslTemplateParseError extends WgslTemplateError { /** * The type of parse operation that failed. */ readonly operation: "comment-removal" | "include-resolution" | "include-not-found" | "include-circular" | "define-expansion" | "syntax-error" | "invalid-directive"; /** * The source line that caused the error, if available. */ readonly sourceLine?: string; constructor(message: string, operation: WgslTemplateParseError["operation"], options?: { filePath?: string; lineNumber?: number; columnNumber?: number; sourceLine?: string; cause?: Error; }); } /** * Error that occurs during code generation. */ export declare class WgslTemplateGenerateError extends WgslTemplateError { /** * The type of generation operation that failed. */ readonly operation: "code-pattern-not-found" | "parameter-missing" | "parameter-type-mismatch" | "variable-undefined" | "generator-not-found" | "code-generation-failed"; /** * The name of the code pattern or parameter that caused the error, if applicable. */ readonly symbolName?: string; /** * The expected type vs actual type, if this is a type-related error. */ readonly typeInfo?: { expected: string; actual: string; }; constructor(message: string, operation: WgslTemplateGenerateError["operation"], options?: { filePath?: string; lineNumber?: number; columnNumber?: number; symbolName?: string; typeInfo?: { expected: string; actual: string; }; cause?: Error; }); } /** * Error that occurs during the final build process (file writing, output generation). */ export declare class WgslTemplateBuildError extends WgslTemplateError { /** * The type of build operation that failed. */ readonly operation: "create-directory" | "write-file" | "permission-denied" | "disk-full" | "path-security-violation" | "output-validation-failed" | "invalid-options"; /** * The target output path that caused the error, if applicable. */ readonly outputPath?: string; constructor(message: string, operation: WgslTemplateBuildError["operation"], options?: { filePath?: string; outputPath?: string; cause?: Error; }); } /** * Type guard to check if an error is a WGSL template error. */ export declare function isWgslTemplateError(error: unknown): error is WgslTemplateError; /** * Type guard functions for specific error types. */ export declare function isWgslTemplateLoadError(error: unknown): error is WgslTemplateLoadError; export declare function isWgslTemplateParseError(error: unknown): error is WgslTemplateParseError; export declare function isWgslTemplateGenerateError(error: unknown): error is WgslTemplateGenerateError; export declare function isWgslTemplateBuildError(error: unknown): error is WgslTemplateBuildError; /** * Utility function to create an error from an unknown error with context. */ export declare function wrapError<T extends WgslTemplateError>(ErrorClass: new (message: string, operation: string, options?: Record<string, unknown>) => T, operation: string, originalError: unknown, context?: { filePath?: string; lineNumber?: number; columnNumber?: number; [key: string]: unknown; }): T; //# sourceMappingURL=errors.d.ts.map