-
Notifications
You must be signed in to change notification settings - Fork 14
/
index.ts
27 lines (20 loc) · 858 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import { OhMyLive2D } from './oml2d.js';
import { DEFAULT_OPTIONS } from '../config/index.js';
import { OML2D } from '../types/common.js';
import type { DefaultOptions, Options } from '../types/index.js';
import { loadOml2dSDK, mergeOptions } from '../utils/index.js';
export const bootstrap = (): ((options: Options) => Promise<OML2D>) => {
let oml2d: OhMyLive2D;
let finalOptions: DefaultOptions = DEFAULT_OPTIONS;
const loadOml2d = async (options: Options): Promise<OhMyLive2D> => {
finalOptions = mergeOptions(DEFAULT_OPTIONS, options);
const { PIXI, PixiLive2dDisplay } = await loadOml2dSDK(finalOptions.importType, finalOptions.libraryUrls);
if (oml2d) {
oml2d.unMount();
}
oml2d = new OhMyLive2D(finalOptions, PIXI, PixiLive2dDisplay);
await oml2d.initialize();
return oml2d;
};
return loadOml2d;
};