mirror of
https://github.com/github/codeql-action.git
synced 2025-12-27 17:50:07 +08:00
38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
function getNodeName(node, options) {
|
|
const op = options || []
|
|
|
|
if (node.type === 'Identifier') {
|
|
return node.name
|
|
}
|
|
|
|
if (node.id && node.id.type === 'Identifier') {
|
|
return node.id.name
|
|
}
|
|
|
|
if (op[2] && node.type === 'CallExpression' && node.callee.type === 'Identifier') {
|
|
return node.callee.name
|
|
}
|
|
}
|
|
|
|
module.exports = function getExportedName(programNode, options) {
|
|
for (let i = 0; i < programNode.body.length; i += 1) {
|
|
const node = programNode.body[i]
|
|
|
|
if (node.type === 'ExportDefaultDeclaration') {
|
|
return getNodeName(node.declaration, options)
|
|
}
|
|
|
|
if (
|
|
node.type === 'ExpressionStatement' &&
|
|
node.expression.type === 'AssignmentExpression' &&
|
|
node.expression.left.type === 'MemberExpression' &&
|
|
node.expression.left.object.type === 'Identifier' &&
|
|
node.expression.left.object.name === 'module' &&
|
|
node.expression.left.property.type === 'Identifier' &&
|
|
node.expression.left.property.name === 'exports'
|
|
) {
|
|
return getNodeName(node.expression.right, options)
|
|
}
|
|
}
|
|
}
|