Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/bs / dist / bundle / webpackConfigFactory.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
/* eslint complexity: "OFF" */
/* eslint max-statements: "OFF" */
const params_1 = tslib_1.__importDefault(require("../.plugins/params"));
const plugins = tslib_1.__importStar(require("../.plugins"));
const resolveToRoot_1 = require("../resolveToRoot");
const oneConfig_1 = tslib_1.__importDefault(require("../oneConfig"));
const bundlePaths_1 = tslib_1.__importDefault(require("./bundlePaths"));
function decorateConfig(buildOptions) {
    buildOptions.client = buildOptions.bundles.client;
    buildOptions.server = buildOptions.bundles.server;
    // log.quick(buildOptions)
    // This is either our "server" or "client" bundle.
    // Otherwise it must be an additional node bundle.
    buildOptions.bundleConfig = buildOptions.isServer
        ? buildOptions.bundles.server
        : buildOptions.isClient
            ? buildOptions.bundles.client
            : {};
    bundlePaths_1.default(buildOptions);
}
// https://github.com/tessin/tessin-mini/blob/master/webpack/ManifestPlugin.js#L1
// https://github.com/tessin/tessin-mini/blob/master/webpack/webpack.config.js
function webpackConfigFactory(someBuildOptions) {
    const buildOptions = Object.assign({ 
        // ...buildOptions,
        // getConfigFor,
        resolveToRoot: resolveToRoot_1.resolveToRoot }, oneConfig_1.default, params_1.default(someBuildOptions));
    decorateConfig(buildOptions);
    const { target, isClient, isDev } = buildOptions;
    const webpackConfig = {
        // Define our entry chunks for our bundle.
        entry: {},
        // Bundle output configuration.
        output: {},
        mode: isDev ? 'development' : 'production',
        target: isClient ? 'web' : 'node',
        node: {},
        devtool: 'none',
        performance: {},
        resolve: {},
        externals: [],
        plugins: [],
        module: {
            rules: [],
        },
    };
    // require('fliplog').quick(merged)
    Object.keys(plugins).forEach(name => {
        const plugin = plugins[name];
        if (typeof plugin !== 'function') {
            console.warn(name);
            return;
        }
        plugin(webpackConfig, buildOptions);
    });
    const webpackDevServerOptions = {
        watch: false,
    };
    if (isClient && isDev) {
        delete webpackDevServerOptions.watch;
        webpackDevServerOptions.watchOptions = {
            aggregateTimeout: 500,
            poll: 1000,
        };
    }
    // Apply the configuration middleware.
    return webpackConfig;
}
exports.webpackConfigFactory = webpackConfigFactory;
//# sourceMappingURL=webpackConfigFactory.js.map