vite-plugin-react18-pages
Version:
<p> <a href="https://www.npmjs.com/package/vite-plugin-react-pages" target="_blank" rel="noopener"><img src="https://img.shields.io/npm/v/vite-plugin-react-pages.svg" alt="npm package" /></a> </p>
32 lines • 1.19 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TsInfoMdxPlugin = void 0;
function TsInfoMdxPlugin() {
return transformer;
function transformer(tree, file) {
const children = tree.children;
const addImports = [];
children.forEach((child) => {
if (child.type === 'jsx') {
const regexp = /<TsInfo\s+src=["'](.*?)["']\s+name=["'](.*?)["']/;
const match = child.value.match(regexp);
if (match) {
const src = match[1];
const name = match[2];
const nextIndex = addImports.length;
const varName = `_tsInfo${nextIndex}`;
addImports.push(`import * as ${varName} from "${src}?tsInfo=${name}";`);
child.value = `<TsInfo {...${varName}} />`;
}
}
});
children.unshift(...addImports.map((importStr) => {
return {
type: 'import',
value: importStr,
};
}));
}
}
exports.TsInfoMdxPlugin = TsInfoMdxPlugin;
//# sourceMappingURL=mdx-plugin.js.map