async function init()

in packages/build-plugin-alt/src/entry/preview.tsx [11:49]


  async function init() {
    const packages = JSON.parse(window.localStorage.getItem('packages') || '');
    const projectSchema = JSON.parse(window.localStorage.getItem(SAVE_KEY)!);
    const { componentsMap: componentsMapArray, componentsTree } = projectSchema;
    const componentsMap: any = {};
    componentsMapArray.forEach((component: any) => {
      componentsMap[component.componentName as string] = component;
    });
    const schema = componentsTree[0];
    console.info('componentsMap is :', componentsMapArray);
    console.info('schema from storage is :', schema);

    const libraryMap = {};
    const libraryAsset: AssetList = [];
    packages.forEach(({ package: pkg, library, urls, renderUrls }) => {
      libraryMap[pkg] = library;
      if (renderUrls) {
        libraryAsset.push(renderUrls);
      } else if (urls) {
        libraryAsset.push(urls);
      }
    });

    const vendors = [
      assetBundle(libraryAsset, AssetLevel.Library),
    ];
    console.log('libraryMap&vendors', libraryMap, vendors);

    // TODO asset may cause pollution
    const assetLoader = new AssetLoader();
    await assetLoader.load(libraryAsset);
    const components = buildComponents(libraryMap, componentsMap, undefined);
    console.log('components', components);

    setData({
      schema,
      components,
    });
  }