@codedoc/core
Version:
Create beautiful modern documentation websites.
53 lines • 3.41 kB
JavaScript
export function plug(config, plugin) {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
const res = Object.assign({}, config);
const override = plugin(config);
if (override.src)
res.src = Object.assign({}, override.src, config.src);
if (override.dest)
res.dest = Object.assign({}, override.dest, config.dest);
if (override.bundle) {
res.bundle = res.bundle || {};
res.bundle.init = [...((_a = config.bundle) === null || _a === void 0 ? void 0 : _a.init) || [], ...override.bundle.init || []];
}
if (override.afterBuild) {
res.afterBuild = [...config.afterBuild || [], ...override.afterBuild];
}
if (override.page) {
res.page = res.page || {};
if (override.page.title)
res.page.title = Object.assign({}, override.page.title, (_b = config.page) === null || _b === void 0 ? void 0 : _b.title);
if (override.page.favicon)
res.page.favicon = ((_c = config.page) === null || _c === void 0 ? void 0 : _c.favicon) || override.page.favicon;
if (override.page.meta)
res.page.meta = Object.assign({}, override.page.meta, (_d = config.page) === null || _d === void 0 ? void 0 : _d.meta, {
keywords: [...((_f = (_e = config.page) === null || _e === void 0 ? void 0 : _e.meta) === null || _f === void 0 ? void 0 : _f.keywords) || [], ...override.page.meta.keywords || []]
});
if (override.page.fonts)
res.page.fonts = Object.assign({}, override.page.fonts, (_g = config.page) === null || _g === void 0 ? void 0 : _g.fonts);
if (override.page.scripts)
res.page.scripts = (((_h = config.page) === null || _h === void 0 ? void 0 : _h.scripts) || []).concat(override.page.scripts);
if (override.page.stylesheets)
res.page.stylesheets = (((_j = config.page) === null || _j === void 0 ? void 0 : _j.stylesheets) || []).concat(override.page.stylesheets);
if (override.page.post)
res.page.post = (((_k = config.page) === null || _k === void 0 ? void 0 : _k.post) || []).concat(override.page.post);
}
if (override.dev)
config.dev = Object.assign({}, override.dev, config.dev);
if (override.markdown) {
res.markdown = Object.assign({}, override.markdown, config.markdown, {
customComponents: Object.assign(Object.assign({}, override.markdown.customComponents), (_l = config.markdown) === null || _l === void 0 ? void 0 : _l.customComponents),
customInlineComponents: Object.assign(Object.assign({}, override.markdown.customInlineComponents), (_m = config.markdown) === null || _m === void 0 ? void 0 : _m.customInlineComponents),
});
}
if (override.tocMarkdown) {
res.tocMarkdown = Object.assign({}, override.tocMarkdown, config.tocMarkdown, {
customComponents: Object.assign(Object.assign({}, override.tocMarkdown.customComponents), (_o = config.tocMarkdown) === null || _o === void 0 ? void 0 : _o.customComponents),
customInlineComponents: Object.assign(Object.assign({}, override.tocMarkdown.customInlineComponents), (_p = config.tocMarkdown) === null || _p === void 0 ? void 0 : _p.customInlineComponents),
});
}
if (override.misc)
res.misc = Object.assign({}, override.misc, config.misc);
return res;
}
//# sourceMappingURL=plugin.js.map