Files
JiboViteDocs/node_modules/@lando/vitepress-theme-default-plus/vite/patch-vp-use-sidebar-control.js
Your Name 38652eb9b5 Initalize
2026-05-03 12:12:57 -04:00

40 lines
1.4 KiB
JavaScript

import Debug from 'debug';
import {EOL} from 'node:os';
export default function({debug = Debug('@lando/vite-plugin')}) { // eslint-disable-line
return {
name: 'vp-use-sidebar-control',
enforce: 'pre',
transform: (code, id) => {
const supportfile = 'dist/client/theme-default/composables/sidebar.js';
if (id.includes(supportfile)) {
// prepend our mvb normalizer
code = `import { getItemNormalizedLink } from '@lando/vitepress-theme-default-plus';${EOL}${code}`;
code = `import { normalizeItems } from '@lando/vitepress-theme-default-plus';${EOL}${code}`;
// make sure we get "site" as well
code = code.replace(
'const { page, hash } = useData()',
'const { site, page, hash } = useData()',
);
// and then use getItemNormalizedLink
code = code.replace(
'isActive(page.value.relativePath, item.value.link)',
'isActive(page.value.relativePath, getItemNormalizedLink(item.value, site.value))',
);
// and also use normalizeItems
code = code.replace(
'containsActiveLink(page.value.relativePath, item.value.items)',
'containsActiveLink(page.value.relativePath, normalizeItems(item.value.items, site.value))',
);
// log
debug('patched %o to use getItemNormalizedLink', supportfile);
return code;
}
},
};
};