From a9ea0bcaf50e2332682483accd4774a8e7f64c52 Mon Sep 17 00:00:00 2001 From: Benjamin Staneck Date: Tue, 14 Jul 2026 11:12:20 +0200 Subject: [PATCH 1/4] fix(react-docgen): support Babel 8 overrides --- .changeset/tidy-beans-smile.md | 5 + packages/react-docgen/package.json | 3 + .../react-docgen/src/__tests__/babel8-test.ts | 10 + packages/react-docgen/src/babelParser.ts | 48 +++-- pnpm-lock.yaml | 188 ++++++++++++++++-- 5 files changed, 228 insertions(+), 26 deletions(-) create mode 100644 .changeset/tidy-beans-smile.md create mode 100644 packages/react-docgen/src/__tests__/babel8-test.ts diff --git a/.changeset/tidy-beans-smile.md b/.changeset/tidy-beans-smile.md new file mode 100644 index 00000000000..78fc438aa03 --- /dev/null +++ b/.changeset/tidy-beans-smile.md @@ -0,0 +1,5 @@ +--- +'react-docgen': patch +--- + +Allow parsing with Babel 8 when it is supplied via an override, while preserving Babel 7's default parser behavior. diff --git a/packages/react-docgen/package.json b/packages/react-docgen/package.json index 7fce579d521..2e6abdc3087 100644 --- a/packages/react-docgen/package.json +++ b/packages/react-docgen/package.json @@ -53,5 +53,8 @@ "doctrine": "^3.0.0", "resolve": "^1.22.1", "strip-indent": "^4.0.0" + }, + "devDependencies": { + "babel-core-8": "npm:@babel/core@8.0.1" } } diff --git a/packages/react-docgen/src/__tests__/babel8-test.ts b/packages/react-docgen/src/__tests__/babel8-test.ts new file mode 100644 index 00000000000..7932b79fa4d --- /dev/null +++ b/packages/react-docgen/src/__tests__/babel8-test.ts @@ -0,0 +1,10 @@ +import { parse } from '../main.js'; +import { expect, test, vi } from 'vitest'; + +vi.mock('@babel/core', () => import('babel-core-8')); + +test('parses components with Babel 8', () => { + const result = parse('export function Button() { return