UNPKG

@lottiefiles/relottie-parse

Version:
33 lines (31 loc) 1.18 kB
import { DEFAULT_OPTIONS } from './chunk-AXYTFAL7.js'; import { Slots } from './chunk-OZZ2WDEQ.js'; import { traverseJsonExit, traverseJsonEnter } from './chunk-IIN7RTEO.js'; import { Stack } from './chunk-VD77DRXR.js'; import { parse as parse$1, traverse } from '@humanwhocodes/momoa'; import { is } from 'unist-util-is'; function parse(document, file, settings = {}) { const jsonAst = parse$1(document); const options = { ...DEFAULT_OPTIONS, ...settings.parse }; const stack = new Stack(); const info = { hasExpressions: false, slots: new Slots(file, options) }; traverse(jsonAst, { enter(node, parent) { traverseJsonEnter(node, parent, stack, file, options); }, exit(node, parent) { traverseJsonExit(node, parent, stack, file, options, info); } }); info.slots?.mutateNodeTitles(); const tree = stack.pop(); if (is(tree, "root")) { tree.hasExpressions = info.hasExpressions || false; return tree; } else { file.fail(`Stack's last item has to be "root" but it's "${tree ? tree.type : "unknown"}"`, tree); } } export { parse }; //# sourceMappingURL=chunk-OPTVZGMO.js.map //# sourceMappingURL=chunk-OPTVZGMO.js.map