#!env node /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at . */ const util = require("util"); const fs = require("fs"); const path = require("path"); const webpack = require("webpack"); const fixturesFolder = path.join(__dirname, "fixtures"); const tests = fs .readdirSync(fixturesFolder) .map(name => { if (name[0] === ".") { return; } const inputTS = path.join(fixturesFolder, name, "input.ts"); const inputJS = path.join(fixturesFolder, name, "input.js"); return [name, fs.existsSync(inputTS) ? inputTS : inputJS]; }) .filter(Boolean); (async function() { const targets = [ await require("./builds/parcel")(tests, __dirname), await require("./builds/webpack3")(tests, __dirname), await require("./builds/webpack3-babel6")(tests, __dirname), await require("./builds/webpack3-babel7")(tests, __dirname), await require("./builds/webpack4")(tests, __dirname), await require("./builds/webpack4-babel6")(tests, __dirname), await require("./builds/webpack4-babel7")(tests, __dirname), await require("./builds/rollup")(tests, __dirname), await require("./builds/rollup-babel6")(tests, __dirname), await require("./builds/rollup-babel7")(tests, __dirname) ]; await util.promisify(webpack)({ context: __dirname, entry: "babel-polyfill", output: { filename: "polyfill-bundle.js" }, plugins: [new webpack.optimize.OccurrenceOrderPlugin(true)] }); const examplesDir = path.join(__dirname, ".."); const html = path.join(examplesDir, "doc-sourcemapped.html"); fs.writeFileSync( html, fs.readFileSync(html, "utf8").replace( /\n\s*/, ` ${targets .map(({ target, fixtures }) => { return `\n

${target}

${fixtures .map( ({ name, testFnName, scriptPath }) => `\n ` + `\n ` ) .join("")}`; }) .join("")} ` ) ); console.log("DONE - If node is still running, just hit Ctrl+C. Parcel leaves things running for some reason.") })();