marko
Version:
Optimized runtime for Marko templates.
26 lines (25 loc) • 2.33 kB
TypeScript
import { types as t } from "@marko/compiler";
import { AccessorPrefix, AccessorProp } from "../../common/types";
import { type OneMany, type Opt } from "./optional";
import { type Binding, type InputBinding, type ParamBinding, type ReferencedBindings, type Sources } from "./references";
import type { Section } from "./sections";
export type SerializeReasons = true | [Sources, ...Sources[]];
export type SerializeReason = true | Sources;
export declare function isSameReason(a: SerializeReason | undefined, b: SerializeReason | undefined): boolean;
export declare function isForceSerialized(section: Section, prop?: Binding | AccessorProp | symbol, prefix?: AccessorPrefix | symbol): boolean;
export declare function addSerializeReason(section: Section, reason: undefined | false | SerializeReason, prop?: Binding | AccessorProp | symbol, prefix?: AccessorPrefix | symbol): void;
export declare function addSerializeExpr(section: Section, expr: boolean | Opt<t.NodeExtra>, prop?: Binding | AccessorProp | symbol, prefix?: AccessorPrefix | symbol): void;
export declare function addOwnerSerializeReason(from: Section, to: Section, reason: undefined | boolean | SerializeReason): void;
export declare function isReasonDynamic(reason: undefined | SerializeReason): reason is {
state: undefined;
param: OneMany<InputBinding | ParamBinding>;
};
export declare function getSerializeReason(section: Section, prop?: Binding | AccessorProp | symbol, prefix?: AccessorPrefix | symbol): SerializeReason | undefined;
export declare function getSerializeSourcesForExpr(expr: t.NodeExtra): Sources | undefined;
export declare function getSerializeSourcesForExprs(exprs: Opt<t.NodeExtra> | boolean): true | Sources | undefined;
export declare function getSerializeSourcesForRef(ref: ReferencedBindings): Sources | undefined;
export declare function mergeSerializeReasons(a: SerializeReason, b: undefined | SerializeReason): SerializeReason;
export declare function mergeSerializeReasons(a: undefined | SerializeReason, b: SerializeReason): SerializeReason;
export declare function mergeSerializeReasons(a: undefined | SerializeReason, b: undefined | SerializeReason): SerializeReason | undefined;
export declare function applySerializeExprs(section: Section): void;
export declare function finalizeSerializeReason(section: Section): void;