import type { PluginConfig, TransformerExtras } from "ts-patch"; import ts from "typescript"; export default compile; /** * Configuration options for the functionless TS transform. */ export interface FunctionlessConfig extends PluginConfig { /** * Glob to exclude */ exclude?: string[]; } /** * Name of the `register` function that is injected into all compiled source files. * * ```ts * function register_8269d1a8(func, ast) { * func[Symbol.for("functionless:AST")] = ast; * return func; * } * ``` * * All Function Declarations, Expressions and Arrow Expressions are decorated with * the `register` function which attaches its AST as a property. */ export declare const RegisterFunctionName: string; /** * Name of the `bind` function that is injected into all compiled source files. * * ```ts * function bind_8269d1a8(func, self, ...args) { * const tmp = func.bind(self, ...args); * if (typeof func === "function") { * func[Symbol.for("functionless:BoundThis")] = self; * func[Symbol.for("functionless:BoundArgs")] = args; * func[Symbol.for("functionless:TargetFunction")] = func; * } * return tmp; * } * ``` * * All CallExpressions with the shape .bind(...) are re-written as calls * to this special function which intercepts the call. * ```ts * .bind(...) * // => * bind_8269d1a8(, ...) * ``` * * If `` is a Function, then the values of BoundThis, BoundArgs and TargetFunction * are added to the bound Function. * * If `` is not a Function, then the call is proxied without modification. */ export declare const BindFunctionName: string; /** * TypeScript Transformer which transforms functionless functions, such as `AppsyncResolver`, * into an AST that can be interpreted at CDK synth time to produce VTL templates and AppSync * Resolver configurations. * * @param program the TypeScript {@link ts.Program} * @param config the {@link FunctionlessConfig}. * @param _extras * @returns the transformer */ export declare function compile(program: ts.Program, _config?: FunctionlessConfig, _extras?: TransformerExtras): ts.TransformerFactory; export declare const deploymentOnlyModule = true; //# sourceMappingURL=compile.d.ts.map