diff --git a/src/analyze.ts b/src/analyze.ts index bf8728f..0a6217f 100644 --- a/src/analyze.ts +++ b/src/analyze.ts @@ -59,8 +59,8 @@ export const ESM_STATIC_IMPORT_RE = /(?<=\s|^|;)import\s*(["'\s]*(?[\w* export const DYNAMIC_IMPORT_RE = /import\s*\((?(?:[^)(]+|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gm export const EXPORT_DECAL_RE = /\bexport\s+(?(async function|function|let|const enum|const|enum|var|class))\s+(?[\w$_]+)/g -const EXPORT_NAMED_RE = /\bexport\s+{(?[^}]+?)(?:[,\s]*)}(\s*from\s*["']\s*(?(?<="\s*)[^"]*[^"\s](?=\s*")|(?<='\s*)[^']*[^'\s](?=\s*'))\s*["'][^\n]*)?/g -const EXPORT_STAR_RE = /\bexport\s*(\*)(\s*as\s+(?[\w$_]+)\s+)?\s*(\s*from\s*["']\s*(?(?<="\s*)[^"]*[^"\s](?=\s*")|(?<='\s*)[^']*[^'\s](?=\s*'))\s*["'][^\n]*)?/g +const EXPORT_NAMED_RE = /\bexport\s+{(?[^}]+?)(?:[,\s]*)}(\s*from\s*["']\s*(?(?<="\s*)[^"]*[^"\s](?=\s*")|(?<='\s*)[^']*[^'\s](?=\s*'))\s*["'][^\n;]*)?/g +const EXPORT_STAR_RE = /\bexport\s*(\*)(\s*as\s+(?[\w$_]+)\s+)?\s*(\s*from\s*["']\s*(?(?<="\s*)[^"]*[^"\s](?=\s*")|(?<='\s*)[^']*[^'\s](?=\s*'))\s*["'][^\n;]*)?/g const EXPORT_DEFAULT_RE = /\bexport\s+default\s+/g export function findStaticImports (code: string): StaticImport[] { diff --git a/test/exports.test.ts b/test/exports.test.ts index d638867..6fb3dd1 100644 --- a/test/exports.test.ts +++ b/test/exports.test.ts @@ -182,4 +182,12 @@ describe('resolveModuleExportNames', () => { ] `) }) + + it('multiple inline', () => { + const code = ` +export { foo } from 'foo1';export { bar } from 'foo2';export * as foobar from 'foo2'; +` + const matches = findExports(code) + expect(matches).to.have.lengthOf(3) + }) })