From 51c81b82b8ffc0aef9a1cf3ffbe4c2ef4f429c69 Mon Sep 17 00:00:00 2001 From: westhide <100348231+westhide@users.noreply.github.com> Date: Wed, 20 Jul 2022 23:49:32 +0800 Subject: [PATCH] fix(findExports): export with trailing comma (#59) --- 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'] },