@blainehansen/macro-ts
Version:
An ergonomic typescript compiler that enables typesafe syntactic macros.
46 lines (45 loc) • 1.7 kB
TypeScript
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 {};