Sha256: e0e359499b35054bd09d8a33076be077783dffbae54ab04a37ea0b9e446cb77a
Contents?: true
Size: 1.03 KB
Versions: 5
Compression:
Stored size: 1.03 KB
Contents
function isReference(node, parent) { if (node.type === 'MemberExpression') { return !node.computed && isReference(node.object, node); } if (node.type === 'Identifier') { // the only time we could have an identifier node without a parent is // if it's the entire body of a function without a block statement – // i.e. an arrow function expression like `a => a` if (!parent) return true; // TODO is this right? if (parent.type === 'MemberExpression' || parent.type === 'MethodDefinition') { return parent.computed || node === parent.object; } // disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }` if (parent.type === 'Property') return parent.computed || node === parent.value; // disregard the `bar` in `export { foo as bar }` if (parent.type === 'ExportSpecifier' && node !== parent.local) return false; return true; } return false; } export default isReference;
Version data entries
5 entries across 5 versions & 2 rubygems