@lottiefiles/relottie-parse
Version:
Parse Lottie JSON format to LAST
56 lines (52 loc) • 1.44 kB
TypeScript
import { MemberNode } from '@humanwhocodes/momoa';
import { AnyTitle, Root, Attribute, Element } from '@lottiefiles/last';
import { VFile } from 'vfile';
import { ParseOptions } from './options.js';
/**
* Copyright 2024 Design Barn Inc.
*/
declare class Slots {
/**
* Parser's VFile instance
*/
readonly file: VFile;
/**
* SlotID.value to ParentTitle mapping
*/
idTitles: Map<string, AnyTitle>;
/**
* SlotProperty node in the JSON AST
*/
jsonNode: MemberNode | undefined;
/**
* Parser's options
*/
readonly options: ParseOptions;
/**
* Slots Parent Node
*/
parentNode: Root | undefined;
constructor(vfile: VFile, options: ParseOptions);
/**
* If set, replaces the original Slots JSON node with a LAST node using collected SlotId parent titles.
*
* @returns void
*/
mutate(): void;
/**
* Collects SlotID id and its Parent's Ancestor title for future mutations
*
* @param node - SlotID Node
* @param ancestor - SlotID Parent's Ancestor Node
*/
setIdTitle(node: Attribute, ancestor: Element): void;
/**
* Set Slots Node info for future mutations
*
* @param parentNode - SlotProperty parent node
* @param jsonNode - SlotProperty node in the JSON AST
* @returns void
*/
setNodes(parentNode: Root, jsonNode: MemberNode): void;
}
export { Slots };