From 24270f0ccab29d076dde46c9f3b7f16c5c0c146c Mon Sep 17 00:00:00 2001 From: "James M. Greene" Date: Mon, 21 Nov 2022 11:04:42 -0600 Subject: [PATCH] Add support for 'Indirect default export with a wrapping call at the definition' --- src/config-parser.js | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/config-parser.js b/src/config-parser.js index 11b39b9..b51b5a1 100644 --- a/src/config-parser.js +++ b/src/config-parser.js @@ -146,23 +146,26 @@ class ConfigParser { node.declarations[0].type === 'VariableDeclarator' && node.declarations[0].id.type === 'Identifier' && node.declarations[0].id.name === identifierName && - node.declarations[0].init.type === 'ObjectExpression' + node.declarations[0].init ) - if (identifierDefinition) { + const identifierInitialization = identifierDefinition && identifierDefinition.declarations[0].init + if (identifierInitialization && identifierInitialization.type === 'ObjectExpression') { core.info('Found configuration object in indirect default export declaration') - return identifierDefinition.declarations[0].init + return identifierInitialization + } + // Indirect default export with a wrapping call at the definition + else if ( + identifierInitialization && + identifierInitialization.type === 'CallExpression' && + identifierInitialization.arguments.length > 0 && + identifierInitialization.arguments[0] && + identifierInitialization.arguments[0].type === 'ObjectExpression' + ) { + core.info( + 'Found configuration object in indirect default export declaration with a wrapping call at the definition' + ) + return identifierInitialization.arguments[0] } - } - - // Indirect default export with a wrapping call at the definition - else if ( - false - // ... - ) { - core.info( - 'Found configuration object in indirect default export declaration with a wrapping call at the definition' - ) - return defaultExport.declaration.arguments[0] } // Indirect default export with a wrapping call at the export