@@ -206,28 +206,33 @@ export function pitch(request) {
206
206
}
207
207
208
208
let locals ;
209
- let result = '' ;
209
+
210
+ const esModule =
211
+ typeof options . esModule !== 'undefined' ? options . esModule : false ;
212
+ const namedExport =
213
+ esModule && options . modules && options . modules . namedExport ;
210
214
211
215
try {
212
- let dependencies ;
213
- let exports = evalModuleCode ( this , source , request ) ;
214
-
215
- if (
216
- options . modules &&
217
- options . modules . namedExport &&
218
- // eslint-disable-next-line no-underscore-dangle
219
- exports . __esModule
220
- ) {
221
- Object . keys ( exports ) . forEach ( ( key ) => {
216
+ const originalExports = evalModuleCode ( this , source , request ) ;
217
+
218
+ // eslint-disable-next-line no-underscore-dangle
219
+ exports = originalExports . __esModule
220
+ ? originalExports . default
221
+ : originalExports ;
222
+
223
+ if ( namedExport ) {
224
+ locals = '' ;
225
+
226
+ Object . keys ( originalExports ) . forEach ( ( key ) => {
222
227
if ( key !== 'default' ) {
223
- result += `\nexport const ${ key } = "${ exports [ key ] } ";` ;
228
+ locals += `\nexport const ${ key } = "${ originalExports [ key ] } ";` ;
224
229
}
225
230
} ) ;
231
+ } else {
232
+ locals = exports && exports . locals ;
226
233
}
227
234
228
- // eslint-disable-next-line no-underscore-dangle
229
- exports = exports . __esModule ? exports . default : exports ;
230
- locals = exports && exports . locals ;
235
+ let dependencies ;
231
236
232
237
if ( ! Array . isArray ( exports ) ) {
233
238
dependencies = [ [ null , exports ] ] ;
@@ -244,23 +249,21 @@ export function pitch(request) {
244
249
} ;
245
250
} ) ;
246
251
}
252
+
247
253
addDependencies ( dependencies ) ;
248
254
} catch ( e ) {
249
255
return callback ( e ) ;
250
256
}
251
257
252
- const esModule =
253
- typeof options . esModule !== 'undefined' ? options . esModule : false ;
254
-
255
- if ( ! result ) {
256
- result += locals
257
- ? `\n${
258
+ const result = locals
259
+ ? namedExport
260
+ ? locals
261
+ : `\n${
258
262
esModule ? 'export default' : 'module.exports ='
259
263
} ${ JSON . stringify ( locals ) } ;`
260
- : esModule
261
- ? `\nexport {};`
262
- : '' ;
263
- }
264
+ : esModule
265
+ ? `\nexport {};`
266
+ : '' ;
264
267
265
268
let resultSource = `// extracted by ${ pluginName } ` ;
266
269
0 commit comments