1
0
mirror of https://github.com/S2-/minifyfromhtml.git synced 2025-08-03 12:20:04 +02:00
Files
minifyfromhtml/node_modules/babel-plugin-transform-member-expression-literals/lib/index.js
2018-05-05 13:54:07 +02:00

36 lines
816 B
JavaScript

"use strict";
module.exports = function ({
types: t
}) {
return {
name: "transform-member-expression-literals",
visitor: {
// foo['bar'] -> foo.bar
MemberExpression: {
exit({
node
}) {
const prop = node.property;
if (!node.computed || !t.isStringLiteral(prop)) {
return;
}
if (prop.value.match(/^\d+$/)) {
const newProp = parseInt(prop.value, 10);
if (newProp.toString() === prop.value) {
node.property = t.numericLiteral(newProp);
node.computed = false;
}
} else if (t.isValidIdentifier(prop.value)) {
node.property = t.identifier(prop.value);
node.computed = false;
}
}
}
}
};
};