From 492eed322302afcfeaa41c3dfe1a51a58d6ee023 Mon Sep 17 00:00:00 2001 From: tim Date: Thu, 13 Jun 2024 16:19:21 +0200 Subject: [PATCH 1/3] passes 'sourceFileName' option to the babel parser --- lib/parser.ts | 1 + parsers/_babel_options.ts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/lib/parser.ts b/lib/parser.ts index 4e5f22f4..0b492216 100644 --- a/lib/parser.ts +++ b/lib/parser.ts @@ -31,6 +31,7 @@ export function parse(source: string, options?: Partial) { tolerant: util.getOption(options, "tolerant", true), ecmaVersion: 6, sourceType: util.getOption(options, "sourceType", "module"), + sourceFileName: util.getOption(options, "sourceFileName", null), }); // Use ast.tokens if possible, and otherwise fall back to the Esprima diff --git a/parsers/_babel_options.ts b/parsers/_babel_options.ts index 60d50ac5..4100594e 100644 --- a/parsers/_babel_options.ts +++ b/parsers/_babel_options.ts @@ -4,6 +4,7 @@ import { getOption } from "../lib/util"; export type Overrides = Partial<{ sourceType: ParserOptions["sourceType"]; strictMode: ParserOptions["strictMode"]; + sourceFileName: string; }>; export default function getBabelOptions( @@ -16,6 +17,7 @@ export default function getBabelOptions( return { sourceType: getOption(options, "sourceType", "module"), strictMode: getOption(options, "strictMode", false), + sourceFilename: getOption(options, "sourceFileName", undefined), allowImportExportEverywhere: true, allowReturnOutsideFunction: true, startLine: 1, From a4285bcde5109942522c6279944a5d1924db463a Mon Sep 17 00:00:00 2001 From: tim Date: Mon, 17 Jun 2024 21:25:20 +0200 Subject: [PATCH 2/3] adds babel sourceFilename test --- test/babel.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/babel.ts b/test/babel.ts index e560d3ca..18fbd81f 100644 --- a/test/babel.ts +++ b/test/babel.ts @@ -497,4 +497,12 @@ describe("Babel", function () { assert.strictEqual(recast.prettyPrint(ast).code, code.join(eol)); }); + + it("adds the sourceFilename to location", function () { + const code = "const a = 1;"; + const filename = "testfile.js" + const ast = recast.parse(code, {...parseOptions, sourceFileName: filename}); + + assert.strictEqual(ast.program.body[0].loc.filename, filename); + }); }); From d111ca8e6c656d678a096ceb59a9caef9294ef35 Mon Sep 17 00:00:00 2001 From: tim Date: Tue, 18 Jun 2024 18:58:25 +0200 Subject: [PATCH 3/3] fix formatting --- test/babel.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/babel.ts b/test/babel.ts index 18fbd81f..e27be286 100644 --- a/test/babel.ts +++ b/test/babel.ts @@ -500,8 +500,11 @@ describe("Babel", function () { it("adds the sourceFilename to location", function () { const code = "const a = 1;"; - const filename = "testfile.js" - const ast = recast.parse(code, {...parseOptions, sourceFileName: filename}); + const filename = "testfile.js"; + const ast = recast.parse(code, { + ...parseOptions, + sourceFileName: filename, + }); assert.strictEqual(ast.program.body[0].loc.filename, filename); });