mirror of
https://github.com/S2-/minifyfromhtml.git
synced 2025-08-03 12:20:04 +02:00
36 lines
816 B
JavaScript
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
};
|
|
}; |