DotLottieMerger Class

API reference for the DotLottieMerger class and MergeStrategy enum in dotlottie-io.

DotLottieMerger Class

Merges one or more .lottie packages into a base package, with configurable collision handling.

Import:

const { DotLottieMerger, MergeStrategy } = require("@lottiefiles/dotlottie-io");

Constructor

new DotLottieMerger(strategy?)

  • Parameters:

  • Returns: DotLottieMerger

Merging

merge(base, others)

  • Parameters:

  • Returns: DotLottie — a new package containing the combined content. Neither base nor any entry in others is modified.

MergeStrategy

An exported enum used by both DotLottieMerger and DotLottieBuilder.mergeStrategy().

MergeStrategy.Rename; // appends _1, _2, … on collision (default)
MergeStrategy.Skip; // silently drops the incoming item on collision
MergeStrategy.Fail; // throws on any collision

Collision behavior:

StrategyAnimations / Themes / State MachinesAssets (images, fonts, audio)
MergeStrategy.RenameAppends _1, _2, … to the incoming IDSame — renames the incoming file
MergeStrategy.SkipSilently drops the incoming itemSilently drops the incoming file
MergeStrategy.FailThrows on any collisionThrows on any collision

Asset path references inside animation JSON are automatically rewritten to point at renamed files.

Example

const { DotLottieBuilder, DotLottieMerger, MergeStrategy } = require("@lottiefiles/dotlottie-io");

function build(id) {
  const b = new DotLottieBuilder();
  b.addAnimation(id, JSON.stringify(lottieJson));
  return b.build();
}

const merger = new DotLottieMerger(MergeStrategy.Rename);
const result = merger.merge(build("hero"), [build("hero"), build("outro")]);
console.log(result.animationIds()); // ['hero', 'hero_1', 'outro']

See How to Merge .lottie Files for a full walkthrough, including a real v1+v2 merge.

Next up: Types

Last updated: August 5, 2026 at 11:47 AMEdit this page