@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
TypeScript
/**
* 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