File size: 927 Bytes
e864e26
3d4392e
6215321
3d4392e
 
 
 
 
 
6215321
3d4392e
 
e864e26
3d4392e
e864e26
fddab62
e864e26
3d4392e
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { ClapProject, ClapSegment, ClapSegmentCategory } from "@aitube/clap"

import { LatentComponentResolver, LayerElement } from "../core/types"

import { resolve as genericResolver } from "./generic"
import { resolve as interfaceResolver } from "./interface"
import { resolve as videoResolver } from "./video"
import { resolve as imageResolver } from "./image"

export async function resolveSegment(segment: ClapSegment, clap: ClapProject): Promise<LayerElement> {
  let latentComponentResolver: LatentComponentResolver = genericResolver
  
  if (segment.category === ClapSegmentCategory.INTERFACE) {
    latentComponentResolver = interfaceResolver
  } else if (segment.category === ClapSegmentCategory.VIDEO) {
    latentComponentResolver = videoResolver
  } else if (segment.category === ClapSegmentCategory.STORYBOARD) {
    latentComponentResolver = imageResolver
  }

  return latentComponentResolver(segment, clap)
}