|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- 'use strict';
-
- /* eslint-disable
- no-shadow,
- no-param-reassign,
- array-bracket-spacing,
- space-before-function-paren
- */
- const createDomain = require('./createDomain');
-
- function addEntries (config, options, server) {
- if (options.inline !== false) {
- // we're stubbing the app in this method as it's static and doesn't require
- // a server to be supplied. createDomain requires an app with the
- // address() signature.
- const app = server || {
- address() {
- return { port: options.port };
- }
- };
-
- const domain = createDomain(options, app);
- const entries = [ `${require.resolve('../../client/')}?${domain}` ];
-
- if (options.hotOnly) {
- entries.push(require.resolve('webpack/hot/only-dev-server'));
- } else if (options.hot) {
- entries.push(require.resolve('webpack/hot/dev-server'));
- }
-
- const prependEntry = (entry) => {
- if (typeof entry === 'function') {
- return () => Promise.resolve(entry()).then(prependEntry);
- }
-
- if (typeof entry === 'object' && !Array.isArray(entry)) {
- const clone = {};
-
- Object.keys(entry).forEach((key) => {
- clone[key] = entries.concat(entry[key]);
- });
-
- return clone;
- }
-
- return entries.concat(entry);
- };
-
- [].concat(config).forEach((config) => {
- config.entry = prependEntry(config.entry || './src');
- });
- }
- }
-
- module.exports = addEntries;
|