@kcws/rspack-config
Version:
rspack configuration builder
65 lines • 1.98 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ConfigWrapper = void 0;
const utils_1 = require("./utils");
class ConfigWrapper {
base;
constructor(base) {
this.base = base;
}
get config() {
return this.base;
}
set(config) {
return new ConfigWrapper(config);
}
merge(config) {
return new ConfigWrapper({ ...this.base, ...config });
}
setEntry(input, condition) {
if (condition === undefined || condition())
return this.merge({ entry: input });
return this;
}
addEntry(input, condition) {
const entry = {
...this.convertEntryRecord(this.base.entry),
...input,
};
return this.setEntry(entry, condition);
}
addRelativeEntry(input, condition) {
const record = {};
for (const key in input) {
record[key] = (0, utils_1.relative)(input[key]);
}
return this.addEntry(record, condition);
}
addEntryByName(name, value, condition) {
const record = { [name]: value };
return this.addEntry(record, condition);
}
addRelativeEntryByName(name, value, condition) {
return this.addEntryByName(name, (0, utils_1.relative)(value), condition);
}
setPlugins(plugins, condition) {
if (condition === undefined || condition())
return this.merge({ plugins: plugins });
return this;
}
addPlugins(plugin, condition) {
const plugins = this.base.plugins ?? [];
return this.setPlugins([...plugins, plugin], condition);
}
convertEntryRecord(entry) {
if (entry === undefined)
return {};
if (typeof entry === "string")
return { default: entry };
if (Array.isArray(entry))
return { default: entry };
return entry;
}
}
exports.ConfigWrapper = ConfigWrapper;
//# sourceMappingURL=wrapper.js.map