babel-plugin-remove-node-prefix
Version:
A Babel plugin to remove node prefix
1 lines • 2.1 kB
Source Map (JSON)
{"version":3,"file":"esm/index.mjs","sources":["webpack://babel-plugin-remove-node-prefix/./src/index.ts"],"sourcesContent":["import type Babel from \"@babel/core\";\nimport type { PluginObj } from \"@babel/core\";\n\nfunction babelPluginRemoveNodePrefix(babel: typeof Babel) {\n const { types: t } = babel;\n\n return {\n name: \"remove-node-prefix\",\n visitor: {\n StringLiteral(path) {\n const isImportOrRequire =\n t.isImportDeclaration(path.parent) ||\n t.isExportAllDeclaration(path.parent) ||\n t.isExportNamedDeclaration(path.parent) ||\n (t.isCallExpression(path.parent) &&\n ((t.isIdentifier(path.parent.callee) &&\n (path.parent.callee.name === \"require\" || path.parent.callee.name === \"import\")) ||\n t.isImport(path.parent.callee)));\n\n if (isImportOrRequire && path.node.value.startsWith(\"node:\")) {\n // Remove `node:` prefix from the path\n path.replaceWith(babel.types.stringLiteral(path.node.value.slice(5)));\n }\n },\n },\n } satisfies PluginObj<Babel.PluginPass>;\n}\n\nexport { babelPluginRemoveNodePrefix };\nexport default babelPluginRemoveNodePrefix;\n"],"names":["babelPluginRemoveNodePrefix","babel","t","path","isImportOrRequire"],"mappings":"AAGA,SAASA,4BAA4BC,KAAmB;IACpD,IAAeC,IAAMD,MAAb,KAAK;IAEb,OAAO;QACH,MAAM;QACN,SAAS;YACL,wBAAcE,IAAI;gBACd,IAAMC,oBACFF,EAAE,mBAAmB,CAACC,KAAK,MAAM,KACjCD,EAAE,sBAAsB,CAACC,KAAK,MAAM,KACpCD,EAAE,wBAAwB,CAACC,KAAK,MAAM,KACrCD,EAAE,gBAAgB,CAACC,KAAK,MAAM,KACzBD,CAAAA,EAAE,YAAY,CAACC,KAAK,MAAM,CAAC,MAAM,KAC9BA,CAAAA,AAA4B,cAA5BA,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,IAAkBA,AAA4B,aAA5BA,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,AAAY,KAC7ED,EAAE,QAAQ,CAACC,KAAK,MAAM,CAAC,MAAM;gBAEzC,IAAIC,qBAAqBD,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAEhDA,KAAK,WAAW,CAACF,MAAM,KAAK,CAAC,aAAa,CAACE,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAEzE;QACJ;IACJ;AACJ;AAGA,uBAAeH"}