rspack-chain
Version:
<p> <a href="https://npmjs.com/package/rspack-chain?activeTab=readme"> <img src="https://img.shields.io/npm/v/rspack-chain?style=flat-square&colorA=564341&colorB=EDED91" alt="npm version" /> </a> <a href="https://nodejs.org/en/about/previous-rele
79 lines (72 loc) • 1.51 kB
JavaScript
const ChainedMap = require('./ChainedMap');
const ChainedSet = require('./ChainedSet');
module.exports = class extends ChainedMap {
constructor(parent) {
super(parent);
this.allowedHosts = new ChainedSet(this);
this.extend([
'after',
'before',
'bonjour',
'clientLogLevel',
'compress',
'contentBase',
'contentBasePublicPath',
'disableHostCheck',
'filename',
'headers',
'historyApiFallback',
'host',
'hot',
'hotOnly',
'http2',
'https',
'index',
'injectClient',
'injectHot',
'inline',
'lazy',
'liveReload',
'mimeTypes',
'noInfo',
'onListening',
'open',
'openPage',
'overlay',
'pfx',
'pfxPassphrase',
'port',
'proxy',
'progress',
'public',
'publicPath',
'quiet',
'serveIndex',
'setup',
'socket',
'sockHost',
'sockPath',
'sockPort',
'staticOptions',
'stats',
'stdin',
'transportMode',
'useLocalIp',
'watchContentBase',
'watchOptions',
'writeToDisk',
]);
}
toConfig() {
return this.clean({
allowedHosts: this.allowedHosts.values(),
...(this.entries() || {}),
});
}
merge(obj, omit = []) {
if (!omit.includes('allowedHosts') && 'allowedHosts' in obj) {
this.allowedHosts.merge(obj.allowedHosts);
}
return super.merge(obj, ['allowedHosts']);
}
};