marko
Version:
Optimized runtime for Marko templates.
35 lines (34 loc) • 2.42 kB
TypeScript
import { types as t } from "@marko/compiler";
import { type Binding, type ParamBinding, type ReferencedBindings } from "./bindings";
import { type Opt, type SortedOneMany } from "./optional";
import { type ParamReasonGroups, type Section } from "./sections";
import { type Slot } from "./slots";
import { type Sources } from "./sources";
export type Reasons = SortedOneMany<Sources>;
export type Reason = Sources;
export declare function addReason(slot: Slot, reason: undefined | false | Reason): void;
export declare function addAlwaysReason(binding: Binding): void;
export declare function addReasonExprs(slot: Slot, expr: Opt<t.NodeExtra>): void;
export declare function addOwnerReason(from: Section, to: Section, reason: undefined | false | Reason): void;
export declare function isConditionalReason(reason: undefined | Reason): reason is Sources & {
state: undefined;
always: undefined;
};
export declare function isUnconditionalReason(reason: undefined | Reason): reason is Reason;
export declare function isStateReason(reason: undefined | Reason): reason is Sources;
export declare function getSourcesForExpr(expr: t.NodeExtra): Sources | undefined;
export declare function getSourcesForExprs(exprs: Opt<t.NodeExtra> | boolean): Sources | undefined;
export declare function getSourcesForRef(ref: ReferencedBindings): Sources | undefined;
export declare function getSourcesForDerived({ binding, exprs, properties, }: NonNullable<Section["derives"]>): Sources | undefined;
export declare function mapParamReason(program: Section, reason: Sources, exprs: KnownExprs | undefined, ownParams: boolean): Reason | undefined;
export interface KnownExprs {
known?: Record<string, KnownExprs>;
value?: t.NodeExtra;
}
export declare function mapParamReasonToExpr(exprs: KnownExprs, reason: boolean | Opt<ParamBinding>): true | import("./optional").Many<t.NodeExtra> | t.NodeExtra | undefined;
export declare function mapParamBindingToExpr(exprs: KnownExprs, binding: ParamBinding): Opt<t.NodeExtra>;
export declare function applyReasonExprs(section: Section): void;
export declare function mergeSlotReasons(section: Section): void;
export declare function getNodeReasons(section: Section): Sources | import("./optional").SortedMany<Sources> | undefined;
export declare function getReasonsVersion(): number;
export declare function setParamReasonGroups(section: Section, groups: ParamReasonGroups): void;