Usage Scenarios

Create a dotLottie and download as file (browser only)

import { DotLottie } from 'dotlottie-js';
const dotlottie = await (new DotLottie()
.addAnimation({
id: 'animation_1',
data: 'https://assets3.lottiefiles.com/packages/lf20_5jxqjx.json',
speed: 1,
loop: true
})
.build());
await Dotlottie.download('my_animation.lottie')

Create a dotLottie and download as a buffer

import { DotLottie } from 'dotlottie-js';
const dotlottie = await (new DotLottie()
.addAnimation({
id: 'animation_1',
data: 'https://assets3.lottiefiles.com/packages/lf20_5jxqjx.json',
speed: 1,
loop: true,
})
.build());
const buffer = dotlottie.toArrayBuffer();

Set the manifest of a dotLottie

import { DotLottie } from 'dotlottie-js';
const dotlottie = await (new DotLottie()
.setAuthor('Ashraf')
.setVersion('1.0.0')
.setDescription('Some description')
.setKeywords('keywords')
.setGenerator('generator')
.addAnimation({
id: 'animation_1',
data: 'https://assets3.lottiefiles.com/packages/lf20_5jxqjx.json'
})
.build())
const manifest = dotlottie.manifest

Build from a pre-existing dotLottie and add an animation

import { DotLottie } from 'dotlottie-js';
let existingDotLottie = new DotLottie();
existingDotLottie = await existingDotLottie.fromURL('https://assets3.lottiefiles.com/packages/lf20_5jxqjx.lottie')
await (existingDotlottie
.addAnimation({
id: 'animation_1',
data: 'https://assets3.lottiefiles.com/packages/lf20_5jxqjx.json',
speed: 1,
loop: true,
})
.build())
const buffer = newDotlottie.toArrayBuffer();

Merge multiple dotLotties

import { DotLottie } from 'dotlottie-js';
const dotlottie1 = new DotLottie().addAnimation({
id: 'lottie1',
data: animationData as AnimationData,
});
const dotlottie2 = new DotLottie().addAnimation({
id: 'lottie2',
data: animationData as AnimationData,
});
let mergedDotlottie = new DotLottie();
mergedDotlottie = await mergedDotlottie.merge(dotlottie1, dotlottie2).build();Ï

Get all animations from the dotLottie

import { DotLottie } from 'dotlottie-js';
let dotLottie = new DotLottie();
const dotLottie = await dotLottie.fromAsync('https://assets3.lottiefiles.com/packages/lf20_5jxqjx.lottie');
const animations: Array<[string, LottieAnimationCommon] = dotLottie.getAnimations();
animations.map(animation => {
// animation.toArrayBuffer();
// animation.toJSON();
// animation.toBlob();
}

Remove animation from dotLottie

import { DotLottie } from 'dotlottie-js';
const dotlottie = await (new Dotlottie()
.addAnimation({
id: 'animation_1',
data: 'https://assets3.lottiefiles.com/packages/lf20_5jxqjx.json',
})
.removeAnimation('animation_1')
.build())

Add an animation (.json) from a URL to a dotLottie

import { DotLottie } from 'dotlottie-js';
const dotlottie = await (new Dotlottie()
.addAnimation({
id: 'animation_1',
url: 'https://assets3.lottiefiles.com/packages/lf20_5jxqjx.json',
})
.build())

Add animation data (.json) to a dotLottie

import { DotLottie } from 'dotlottie-js';
import animationJson from './animation.json';
const dotlottie = await (new DotLottie()
.addAnimation({
id: 'animation_1',
data: animationJson,
})
.build())