babel-plugin-transform-negative-indices
Version:
Turn negative array indices into offsets from the end of the array
25 lines (20 loc) • 500 B
JavaScript
;
function index ({
types: t
}) {
return {
visitor: {
MemberExpression: {
enter({
node
}) {
const prop = node.property;
if (node.computed && prop.type === 'UnaryExpression' && prop.operator === '-' && prop.prefix === true) {
node.property = t.binaryExpression('-', t.memberExpression(node.object, t.identifier('length'), false), prop.argument);
}
}
}
}
};
}
module.exports = index;