Skip to content

Commit

Permalink
Add support for 'Indirect module export with a wrapping call at the e…
Browse files Browse the repository at this point in the history
…xport'
  • Loading branch information
James M. Greene authored and James M. Greene committed Nov 21, 2022
1 parent 76b6a82 commit 86f141f
Showing 1 changed file with 21 additions and 4 deletions.
25 changes: 21 additions & 4 deletions src/config-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -260,11 +260,28 @@ class ConfigParser {

// Indirect module export with a wrapping call at the export
else if (
false
// ...
allowWrappingCall &&
moduleExport &&
moduleExport.expression.right.type === 'CallExpression' &&
moduleExport.expression.right.arguments.length > 0 &&
moduleExport.expression.right.arguments[0] &&
moduleExport.expression.right.arguments[0].type === 'Identifier'
) {
core.info('Found configuration object in indirect module export with a wrapping call at the export')
return defaultExport.declaration.arguments[0]
const identifierName = moduleExport.expression.right.arguments[0].name
const identifierDefinition = ast.body.find(
node =>
node.type === 'VariableDeclaration' &&
node.declarations.length == 1 &&
node.declarations[0].type === 'VariableDeclarator' &&
node.declarations[0].id.type === 'Identifier' &&
node.declarations[0].id.name === identifierName &&
node.declarations[0].init
)
const identifierInitialization = identifierDefinition && identifierDefinition.declarations[0].init
if (identifierInitialization && identifierInitialization.type === 'ObjectExpression') {
core.info('Found configuration object in indirect module export declaration with a wrapping call at the export')
return identifierInitialization
}
}

// No configuration object found
Expand Down

0 comments on commit 86f141f

Please sign in to comment.