-
Notifications
You must be signed in to change notification settings - Fork 35
fix: adapt to new node:test module in node 18 #1069
Changes from 1 commit
7010a85
c75179f
cc12428
00cb408
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,7 @@ | ||
/* eslint-disable max-lines */ | ||
import { dirname, basename, normalize } from 'path' | ||
|
||
import isBuiltinModule from 'is-builtin-module' | ||
import { not as notJunk } from 'junk' | ||
import precinct from 'precinct' | ||
|
||
|
@@ -87,6 +88,19 @@ const getDependencies = async function ({ | |
} | ||
} | ||
|
||
const paperwork = async (path: string) => { | ||
const modules = await precinct.paperwork(path, { includeCore: true }) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If I understand correctly, by using Is there a risk this will cause regressions, with some modules suddenly being evaluated differently? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. that's a good point - we should stick to process.binding if possible. isBuiltinModule is using a similar mechanism under the hood, but there could be subtle differences ... There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. done in c75179f |
||
return modules.filter((moduleName) => { | ||
// only require("node:test") refers to the | ||
// builtin, require("test") doesn't | ||
if (moduleName === 'test') { | ||
return true | ||
} | ||
|
||
return !isBuiltinModule(moduleName) | ||
}) | ||
} | ||
|
||
const getFileDependencies = async function ({ | ||
featureFlags, | ||
functionName, | ||
|
@@ -111,9 +125,8 @@ const getFileDependencies = async function ({ | |
state.localFiles.add(path) | ||
|
||
const basedir = dirname(path) | ||
const dependencies = featureFlags.parseWithEsbuild | ||
? await listImports({ functionName, path }) | ||
: await precinct.paperwork(path, { includeCore: false }) | ||
const dependencies = featureFlags.parseWithEsbuild ? await listImports({ functionName, path }) : await paperwork(path) | ||
|
||
const depsPaths = await Promise.all( | ||
dependencies.filter(nonNullable).map((dependency) => | ||
getImportDependencies({ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we add a comment explaining that we're temporarily adding a step between us and precinct because of a specific issue?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done in c75179f