UNPKG

@blainehansen/macro-ts

Version:

An ergonomic typescript compiler that enables typesafe syntactic macros.

46 lines (45 loc) 1.7 kB
import * as ts from "typescript"; import * as c from "@ts-std/codec"; import { NonEmptyOrSingle, Dict, UnboxArray } from "./utils"; export declare type ScriptTarget = Exclude<ts.ScriptTarget, ts.ScriptTarget.JSON>; export declare const ScriptTarget: c.Decoder<ScriptTarget>; export declare type CompilationEnvironment = { platform: "browser" | "webworker" | "node" | "anywhere"; target: ScriptTarget; }; export declare namespace CompilationEnvironment { const decoder: c.Decoder<any>; function key({ platform, target }: CompilationEnvironment): string; function options({ platform, target }: CompilationEnvironment): { module: ts.ModuleKind; lib: string[]; types?: string[]; }; } declare const RawMacroTsConfigDecoder: c.Decoder<{ macros: string | undefined; packages: { location: any; entry: any; exclude: any; environment: any; dev: any; }[]; }>; declare type RawMacroTsConfig = c.TypeOf<typeof RawMacroTsConfigDecoder>; export declare type MacroTsConfigPackage = UnboxArray<RawMacroTsConfig["packages"]>; export declare type MacroTsConfig = Omit<RawMacroTsConfig, "packages"> & { packages: Dict<MacroTsConfigPackage>; }; export declare namespace MacroTsConfig { const decoder: c.Decoder<MacroTsConfig>; function decode(obj: unknown): import("@ts-std/monads").Result<MacroTsConfig, string>; function selectPackageForPath(path: string, { packages }: MacroTsConfig): { location: string; entry: NonEmptyOrSingle<string>; exclude: NonEmptyOrSingle<string> | undefined; environment: any; dev: boolean | undefined; } | undefined; } export {};