UNPKG

marko

Version:

Optimized runtime for Marko templates.

34 lines (33 loc) 2.41 kB
import { type Accessor, AccessorProp, type EncodedAccessor, type Scope } from "../common/types"; export type SignalFn = (scope: Scope) => void; export type Signal<T = unknown, U extends Scope = Scope> = (scope: U, value: T) => void; export declare function _let<T>(id: EncodedAccessor, fn?: SignalFn): (scope: Scope, value: T) => T; export declare function _let_change<T>(id: EncodedAccessor, fn?: SignalFn): (scope: Scope, value: T, valueChange?: (v: T) => void) => T; export declare function _const<T>(valueAccessor: EncodedAccessor, fn?: SignalFn): Signal<T>; export declare function _or(id: number, fn: SignalFn, defaultPending?: number, scopeIdAccessor?: EncodedAccessor): Signal<never>; export declare function _for_closure(ownerLoopNodeAccessor: EncodedAccessor, fn: SignalFn): SignalFn; export declare function _if_closure(ownerConditionalNodeAccessor: EncodedAccessor, branch: number, fn: SignalFn): SignalFn; export declare function subscribeToScopeSet(ownerScope: Scope, accessor: Accessor, scope: Scope): void; export declare function _closure(...closureSignals: ReturnType<typeof _closure_get>[]): (scope: Scope) => void; export declare function _closure_get(valueAccessor: EncodedAccessor, fn: SignalFn, getOwnerScope?: (scope: Scope) => Scope, resumeId?: string): SignalFn & { scopeInstancesAccessor: string; signalIndexAccessor: string; index: number; }; export declare function _child_setup(setup: Signal<never> & { _: Signal<Scope>; }): Signal<never, Scope> & { _: Signal<Scope>; }; export declare function _var(scope: Scope, childAccessor: EncodedAccessor, signal: Signal<unknown>): void; export declare const _return: (scope: Scope, value: unknown) => any; export declare function _return_change(scope: Scope, changeHandler?: ((value: unknown) => void) | null | false): void; export declare const _var_change: (scope: Scope, value: unknown, name?: string) => void; export declare function _id({ [AccessorProp.Global]: $global }: Scope): string; export declare function _script(id: string, fn: (scope: Scope) => void): (scope: Scope) => void; export declare function _el_read<T>(value: T): T; type Hoistable<T> = () => T; type Hoisted<T> = Hoistable<T> & Iterable<T>; export declare function _hoist<T>(...path: Accessor[]): (scope: Scope) => Hoisted<T>; export declare function _hoist_resume<T>(id: string, ...path: Accessor[]): (scope: Scope) => Hoisted<T>; export {};