marko
Version:
Optimized runtime for Marko templates.
46 lines (45 loc) • 1.75 kB
TypeScript
import { types as t } from "@marko/compiler";
import { type Binding } from "../../util/bindings";
import { type ParamsTree } from "../../util/params-tree";
import { preAnalyze } from "./pre-analyze";
declare module "@marko/compiler/dist/types" {
interface ProgramExtra {
/** Client code reads something of its own after resume (a section, or a
* renderer it registers), so a page bundles it. */
hasResumes?: boolean;
/** What the template reads of its params (its input is the first), the
* contract its callers keep. */
paramsTree?: ParamsTree;
/** The names every compile of the template exports its parts under. */
exportNames?: {
template: string;
walks: string;
setup: string;
/** The signal of each of the template's param bindings, a property of
* one included. */
params: Map<Binding, string>;
/** The `_dynamic_tag_content` signal of each binding only a name-only
* dynamic tag reads. */
directContent: Map<Binding, string>;
};
styleFile?: string;
}
}
declare const _default: {
migrate: {
enter(this: unknown, program: t.NodePath<t.Program>): void;
exit(this: unknown, program: t.NodePath<t.Program>): void;
};
transform: {
exit: typeof preAnalyze;
};
analyze: {
enter(this: unknown, program: t.NodePath<t.Program>): void;
exit(this: unknown, program: t.NodePath<t.Program>): void;
};
translate: {
enter(this: unknown, program: t.NodePath<t.Program>): void;
exit(this: unknown, program: t.NodePath<t.Program>): void;
};
};
export default _default;