relottie plugin to add support for parsing Lottie input.
- What is this?
- When should I use this?
- Install
- Use
- API
- Examples
- Syntax
- Syntax tree
- Types
- Compatibility
- Security
- Contribute
- Acknowledgments
- License
This package is a unified (relottie) plugin that defines how to take Lottie as input and turn it into a syntax tree.
This plugin is built on momoa, which in turn parses JSON into JSON-AST and turns it into last syntax trees. relottie focusses on making it easier to transform content by abstracting such internals away.
unified is a project that transforms content with abstract syntax trees (ASTs). relottie adds support for Lottie to unified. last is the Lottie AST that relottie uses. momoa is the JSON parser we use to build a last. This is a relottie plugin that defines how input Lottie is turned into last.
This plugin adds support to unified for parsing Lottie.
You can combine this plugin with other plugins to add syntax extensions. List of plugins.
This package is ESM only. In Node.js (version 12.20+, 14.14+, or 16.0+), install with npm:
yarn add @lottiefiles/relottie-parse
Say we have the following module example.ts
:
import { unified } from 'unified'
import relottieParse, { type Options } from 'relottie-parse'
const parseOptions: Options = {
position: false
};
const tree = unified().use(relottieParse, parseOptions).parse('{"v":"5.5.7"}');
console.log('tree output', tree);
Running that with npx ts-node example.ts
yields:
// tree output:
{
"type":"root",
"title":"animation",
"hasExpressions": false,
"children":[
{
"type":"attribute",
"key":"v",
"title":"version",
"children":[
{
"type":"primitive",
"value":"5.5.7",
"valueType":"string"
}
]
}
]
}
The default export is relottieParse
.
You can import the parser Options
and FileData
type definitions as well.
Add support for parsing Lottie input. There are plugin options as well.
You can use dotLottie.js for converting a LottieJSON into .lottie
format
Lottie is parsed according to CommonMark. Other plugins can add support for syntax extensions.
The syntax tree format used in relottie is last.
This package is fully typed with TypeScript.
Projects maintained by the unified collective are compatible with maintained versions of Node.js. As of now, that is Node.js 16.0+, and 18.0+ (other versions have not been tested yet) Our projects sometimes work with older versions, but this is not guaranteed.
As last properties can have expressions, and improper use of last can open you up to cross-site scripting cross-site scripting (XSS). Carefully assess each plugin and the risks involved in using them.
Any contributions are welcome.