17 lines
975 B
TypeScript
17 lines
975 B
TypeScript
/**
|
|
* Shared machinery for walk-path child stubs (see `hast/child-stub.ts` and
|
|
* `mdast/child-stub.ts`): lightweight stand-ins that carry arena id + type
|
|
* eagerly and defer the full-arena snapshot until a plugin reads a real field.
|
|
* Passthrough children (the common replaceNode shape) thus compile to one-word
|
|
* refs without ever serializing the arena.
|
|
*/
|
|
/**
|
|
* Descriptor template for one node type's stub fields. Own enumerable getters
|
|
* so a spread copy carries correct values. `position`/`data` ride on every
|
|
* stub; they may yield `undefined` where a materialized node omits the key —
|
|
* accepted drift, invisible to `toEqual`.
|
|
*/
|
|
export declare function stubDescriptors(fields: readonly string[]): PropertyDescriptorMap;
|
|
/** Node tags are dense small ints, so the per-child stub loop indexes flat
|
|
* arrays instead of paying Map/dictionary lookups. */
|
|
export declare function flatByTag<T>(table: Readonly<Record<number, T>>): readonly (T | undefined)[];
|