@stacksjs/dtsx
Version:
A modern, fast .d.ts generation tool, powered by Bun.
126 lines (125 loc) • 3.25 kB
TypeScript
/**
* Create source map for generated .d.ts content
*/
export declare function createSourceMap(options: {
generatedFile: string
sourceFile: string
sourceContent?: string
sourceRoot?: string
mappings: Array<{
generatedLine: number
generatedColumn: number
originalLine: number
originalColumn: number
name?: string
}>
}): SourceMapGenerator;
/**
* Append source map comment to content
*/
export declare function appendSourceMapComment(content: string, mapFileName: string): string;
/**
* Append inline source map to content
*/
export declare function appendInlineSourceMap(content: string, generator: SourceMapGenerator, includeContent?: boolean): string;
/**
* Write source map file
*/
export declare function writeSourceMap(mapPath: string, generator: SourceMapGenerator, includeContent?: boolean): Promise<void>;
/**
* Read and parse source map file
*/
export declare function readSourceMap(mapPath: string): Promise<SourceMapConsumer>;
/**
* Extract source map from content (inline or reference)
*/
export declare function extractSourceMap(content: string, filePath: string): Promise<SourceMapConsumer | null>;
/**
* Build source mappings from declaration info
*/
export declare function buildDeclarationMappings(_generatedContent: string, _declarationInfos: Array<{
name: string
generatedStart: number
originalLine: number
originalColumn: number
}>): Array<{
generatedLine: number
generatedColumn: number
originalLine: number
originalColumn: number
name: string
}>;
/**
* Source map configuration
*/
export declare interface SourceMapConfig {
sourceMap?: boolean
inlineSourceMap?: boolean
inlineSources?: boolean
sourceRoot?: string
mapExtension?: string
}
/**
* Source map v3 format
*/
export declare interface SourceMapV3 {
version: 3
file: string
sourceRoot?: string
sources: string[]
sourcesContent?: (string | null)[]
names: string[]
mappings: string
}
/**
* Source position
*/
export declare interface SourcePosition {
line: number
column: number
}
/**
* Mapping entry
*/
export declare interface Mapping {
generated: SourcePosition
original: SourcePosition
sourceIndex: number
nameIndex?: number
}
/**
* Source map generator
*/
export declare class SourceMapGenerator {
constructor(options: { file: string, sourceRoot?: string });
addSource(source: string, content?: string): number;
addName(name: string): number;
addMapping(mapping: {
generated: SourcePosition
original: SourcePosition
source: string
name?: string
}): void;
generate(includeContent?: boolean): SourceMapV3;
toString(includeContent?: boolean): string;
toDataUrl(includeContent?: boolean): string;
toComment(includeContent?: boolean): string;
}
/**
* Source map consumer for reading source maps
*/
export declare class SourceMapConsumer {
constructor(map: SourceMapV3 | string);
originalPositionFor(generated: SourcePosition): {
source: string | null
line: number | null
column: number | null
name: string | null
};
generatedPositionFor(original: {
source: string
line: number
column: number
}): SourcePosition | null;
sourceContentFor(source: string): string | null;
}