32 lines
697 B
JavaScript
32 lines
697 B
JavaScript
import syntaxNumericSeparator from "babel-plugin-syntax-numeric-separator";
|
|
|
|
export default function({ types: t }) {
|
|
function replaceNumberArg({ node }) {
|
|
if (node.callee.name !== "Number") {
|
|
return;
|
|
}
|
|
|
|
const arg = node.arguments[0];
|
|
if (!t.isStringLiteral(arg)) {
|
|
return;
|
|
}
|
|
|
|
arg.value = arg.value.replace(/_/g, "");
|
|
}
|
|
|
|
return {
|
|
inherits: syntaxNumericSeparator,
|
|
|
|
visitor: {
|
|
CallExpression: replaceNumberArg,
|
|
NewExpression: replaceNumberArg,
|
|
NumericLiteral({ node }) {
|
|
const { extra } = node;
|
|
if (extra && /_/.test(extra.raw)) {
|
|
extra.raw = extra.raw.replace(/_/g, "");
|
|
}
|
|
},
|
|
},
|
|
};
|
|
}
|