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();