* Returns a single module that contains a list of entry points to these files: * - extensions/{$extension}/{$version}/{$extension}.js * - src/amp.js * - 3p/integration.js * @return {Promise }
()
| 157 | * @return {Promise<string>} |
| 158 | */ |
| 159 | async function getEntryPointModule() { |
| 160 | const coreBinaries = ['src/amp.js', '3p/integration.js']; |
| 161 | const extensions = await fs.promises.readdir('extensions'); |
| 162 | const extensionEntryPoints = extensions |
| 163 | .map((x) => `extensions/${x}`) |
| 164 | .filter((x) => fs.statSync(x).isDirectory()) |
| 165 | .map(getEntryPoint); |
| 166 | const vendors = await fs.promises.readdir('3p/vendors'); |
| 167 | const vendorEntryPoints = vendors.map((x) => `3p/vendors/${x}`); |
| 168 | const allEntryPoints = flatten(extensionEntryPoints) |
| 169 | .concat(coreBinaries) |
| 170 | .concat(vendorEntryPoints); |
| 171 | const entryPointData = allEntryPoints |
| 172 | .map((file) => `import './${file}';`) |
| 173 | .join('\n'); |
| 174 | return entryPointData; |
| 175 | } |
| 176 | |
| 177 | /** |
| 178 | * @param {string} entryPointModule |