@tylertech/forge-build-tools
Version:
Node utilities for building and packaging libraries.
23 lines • 3.19 kB
JavaScript
import webpack from 'webpack';
import webpackMerge from 'webpack-merge';
/**
* Executes webpack using the provided environment options.
* @param env The environment options to pass to the webpack configuration factory.
* @param configurationFactory The webpack configuration factory function that generates a webpack config.
* @param [mergeConfig] Extra webpack configuration objects to provide
*/
export function executeWebpack(env, configurationFactory, mergeConfigs) {
return new Promise(resolve => {
let config = typeof configurationFactory === 'function' ? configurationFactory(env) : configurationFactory;
if (mergeConfigs && mergeConfigs.length) {
config = webpackMerge(config, ...mergeConfigs);
}
webpack(config, (err, stats) => {
if (err) {
throw err;
}
resolve(stats);
});
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VicGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idW5kbGluZy93ZWJwYWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUM5QixPQUFPLFlBQVksTUFBTSxlQUFlLENBQUM7QUFFekM7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQXlCLEVBQUUsb0JBQTBCLEVBQUUsWUFBb0I7SUFDeEcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUMzQixJQUFJLE1BQU0sR0FBRyxPQUFPLG9CQUFvQixLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO1FBRTNHLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4QyxNQUFNLEdBQUcsWUFBWSxDQUFDLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVSxFQUFFLEtBQW9CLEVBQUUsRUFBRTtZQUNuRCxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNSLE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztZQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IHdlYnBhY2tNZXJnZSBmcm9tICd3ZWJwYWNrLW1lcmdlJztcblxuLyoqXG4gKiBFeGVjdXRlcyB3ZWJwYWNrIHVzaW5nIHRoZSBwcm92aWRlZCBlbnZpcm9ubWVudCBvcHRpb25zLlxuICogQHBhcmFtIGVudiBUaGUgZW52aXJvbm1lbnQgb3B0aW9ucyB0byBwYXNzIHRvIHRoZSB3ZWJwYWNrIGNvbmZpZ3VyYXRpb24gZmFjdG9yeS5cbiAqIEBwYXJhbSBjb25maWd1cmF0aW9uRmFjdG9yeSBUaGUgd2VicGFjayBjb25maWd1cmF0aW9uIGZhY3RvcnkgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgYSB3ZWJwYWNrIGNvbmZpZy5cbiAqIEBwYXJhbSBbbWVyZ2VDb25maWddIEV4dHJhIHdlYnBhY2sgY29uZmlndXJhdGlvbiBvYmplY3RzIHRvIHByb3ZpZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVXZWJwYWNrKGVudj86IFJlY29yZDxzdHJpbmcsIGFueT4sIGNvbmZpZ3VyYXRpb25GYWN0b3J5PzogYW55LCBtZXJnZUNvbmZpZ3M/OiBhbnlbXSk6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICBsZXQgY29uZmlnID0gdHlwZW9mIGNvbmZpZ3VyYXRpb25GYWN0b3J5ID09PSAnZnVuY3Rpb24nID8gY29uZmlndXJhdGlvbkZhY3RvcnkoZW52KSA6IGNvbmZpZ3VyYXRpb25GYWN0b3J5O1xuXG4gICAgaWYgKG1lcmdlQ29uZmlncyAmJiBtZXJnZUNvbmZpZ3MubGVuZ3RoKSB7XG4gICAgICBjb25maWcgPSB3ZWJwYWNrTWVyZ2UoY29uZmlnLCAuLi5tZXJnZUNvbmZpZ3MpO1xuICAgIH1cblxuICAgIHdlYnBhY2soY29uZmlnLCAoZXJyOiBFcnJvciwgc3RhdHM6IHdlYnBhY2suU3RhdHMpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgfVxuICAgICAgcmVzb2x2ZShzdGF0cyk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19