@tdb/web
Version:
Common condiguration for serving a web-site and testing web-based UI components.
65 lines (50 loc) • 1.7 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = loadConfig;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
var _findUp = _interopRequireDefault(require("find-up"));
var _constants = require("../lib/constants");
var defaultConfig = {
webpack: null,
webpackDevMiddleware: null,
poweredByHeader: true,
distDir: '.next',
assetPrefix: '',
configOrigin: 'default',
useFileSystemPublicRoutes: true,
generateBuildId: function generateBuildId() {
// nanoid is a small url-safe uuid generator
var nanoid = require('nanoid');
return nanoid();
},
generateEtags: true,
pageExtensions: ['jsx', 'js']
};
function loadConfig(phase, dir, customConfig) {
if (customConfig) {
customConfig.configOrigin = 'server';
return (0, _objectSpread2.default)({}, defaultConfig, customConfig);
}
var path = _findUp.default.sync(_constants.CONFIG_FILE, {
cwd: dir
}); // If config file was found
if (path && path.length) {
// $FlowFixMe
var userConfigModule = require(path);
var userConfigInitial = userConfigModule.default || userConfigModule;
if (typeof userConfigInitial === 'function') {
return (0, _objectSpread2.default)({}, defaultConfig, {
configOrigin: _constants.CONFIG_FILE
}, userConfigInitial(phase, {
defaultConfig: defaultConfig
}));
}
return (0, _objectSpread2.default)({}, defaultConfig, {
configOrigin: _constants.CONFIG_FILE
}, userConfigInitial);
}
return defaultConfig;
}