From 66f612d0eabe2e3cbce2dd13a8aa5074a66912e7 Mon Sep 17 00:00:00 2001 From: westhide Date: Wed, 20 Jul 2022 09:54:13 +0800 Subject: [PATCH] fix(findExports): export with trailing comma --- src/analyze.ts | 2 +- test/exports.test.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/analyze.ts b/src/analyze.ts index 2172a57..d1bc2bc 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -99,7 +99,7 @@ export function findExports (code: string): ESMExport[] { // Find named exports const namedExports = matchAll(EXPORT_NAMED_RE, code, { type: 'named' }) for (const namedExport of namedExports) { - namedExport.names = namedExport.exports.split(/\s*,\s*/g).map(name => name.replace(/^.*?\sas\s/, '').trim()) + namedExport.names = namedExport.exports.split(/\s*,\s*/g).map(name => name.replace(/^.*?\sas\s/, '').trim()).filter(name => !!name) } // Find export default diff --git a/test/exports.test.ts b/test/exports.test.ts index c74a21d..e12ec93 100644 --- a/test/exports.test.ts +++ b/test/exports.test.ts @@ -8,6 +8,7 @@ describe('findExports', () => { 'export { useB, _useC as useC }': { names: ['useB', 'useC'], type: 'named' }, 'export default foo': { type: 'default', name: 'default', names: ['default'] }, 'export { default } from "./other"': { type: 'default', name: 'default', names: ['default'], specifier: './other' }, + 'export { default , } from "./other"': { type: 'default', name: 'default', names: ['default'], specifier: './other' }, 'export async function foo ()': { type: 'declaration', names: ['foo'] }, 'export const $foo = () => {}': { type: 'declaration', names: ['$foo'] }, 'export { foo as default }': { type: 'default', name: 'default', names: ['default'] },