luhn-generator
Version:
A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm
36 lines (31 loc) • 816 B
JavaScript
;
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;
}
}
}
}
};
};