34 lines
684 B
TypeScript
34 lines
684 B
TypeScript
import { EventEmitter, once } from 'stream';
|
|
import { load, CodeManager } from './load.ts';
|
|
|
|
export enum LoadStatus {
|
|
LOADING = 'loading',
|
|
LOADED = 'loaded',
|
|
ERROR = 'error',
|
|
}
|
|
export const manager = {
|
|
loaded: LoadStatus.LOADING, // 是否已经加载
|
|
list: [] as CodeManager[],
|
|
};
|
|
|
|
export const events = new EventEmitter();
|
|
|
|
once(events, 'loaded')
|
|
.then(() => {
|
|
manager.loaded = LoadStatus.LOADED;
|
|
console.log('manager loaded');
|
|
})
|
|
.catch((e) => {
|
|
manager.loaded = LoadStatus.ERROR;
|
|
console.error('manager loaded error', e);
|
|
});
|
|
|
|
const init = async function () {
|
|
const r = await load();
|
|
manager.list = r;
|
|
|
|
events.emit('loaded');
|
|
};
|
|
|
|
init();
|