UNPKG

comptime.ts

Version:

<div align="center"> <img src="https://raw.githubusercontent.com/feathers-studio/comptime.ts/master/docs/comptime.ts.svg" alt="Hyperactive"> </div>

50 lines (49 loc) 2.02 kB
import * as ts from "typescript"; import { type ModuleResolver } from "./resolve.ts"; export interface Replacement { start: number; end: number; replacement: string; } export type Replacements = Record<string, Replacement[]>; export declare function assertNoSyntaxErrors(tsCode: string): void; export declare function eraseTypes(tsCode: string): string; export declare function query<R extends ts.Node>(root: ts.Node, query: ts.SyntaxKind, filter?: (node: R) => boolean): R[]; export declare function getEnclosingImportDeclaration(node: ts.Node): ts.ImportDeclaration; export declare function getEnclosingStatement(node: ts.Node): ts.Statement; type ImportNode = ts.ImportSpecifier | ts.ImportClause | ts.NamespaceImport; export declare const isImportNode: (node: ts.Node) => node is ImportNode; export declare function isNodeModules(filePath: string): boolean; interface BaseConfig { resolver?: ModuleResolver; } interface ConfigByConfig extends BaseConfig { rootDir: string; tsconfig: ts.CompilerOptions; tsConfigPath?: never; } interface ConfigByPath extends BaseConfig { rootDir?: never; tsconfig?: never; tsconfigPath: string; } interface ConfigByImplicitConfig extends BaseConfig { rootDir?: never; tsconfig?: never; tsconfigPath?: never; } export type Filterable<T> = T & { filter?: (id: string) => boolean; }; export type GetComptimeReplacementsOpts = ConfigByConfig | ConfigByPath | ConfigByImplicitConfig; export declare function getTsConfig(opts?: GetComptimeReplacementsOpts): { configDir: string; tsConfig: ts.CompilerOptions; }; export declare function getComptimeReplacements(opts?: Filterable<GetComptimeReplacementsOpts>): Promise<Replacements>; export type ApplyComptimeReplacementsOpts = GetComptimeReplacementsOpts & { /** Default: `$configDir/out` */ outdir?: string; }; export declare function applyComptimeReplacements(opts: Filterable<ApplyComptimeReplacementsOpts>, replacements: Replacements): Promise<void>; export {};