mirror of
https://github.com/morluto/rea.git
synced 2026-11-15 19:23:24 +00:00
test(verify): resolve the copied verifier's relative helpers from the repository verifier (#11274)
This commit is contained in:
1 parent
8f8683544e
commit
38cd72ee8a
1 file changed
+8
-13
@@ -73,21 +73,12 @@ const prepare = async () => {
|
||||
await symlink(resolve("node_modules"), join(controller, "node_modules"));
|
||||
const prerequisites = join(root, "prerequisites.mjs");
|
||||
await writeFile(prerequisites, prerequisiteProgram);
|
||||
// The two prerequisites above are replaced; every other relative import of
|
||||
// the copied verifier resolves from the repository verifier, so new helper
|
||||
// modules need no entry here.
|
||||
const replacements = new Map([
|
||||
["./lib/release-package-canary.mjs", pathToFileURL(prerequisites).href],
|
||||
["./ci/npm-release.mjs", pathToFileURL(prerequisites).href],
|
||||
...[
|
||||
"verify-package-commands.mjs",
|
||||
"verifier-cleanup.mjs",
|
||||
"verifier-fixture.mjs",
|
||||
"verifier-run.mjs",
|
||||
].map(
|
||||
(name) =>
|
||||
[
|
||||
`./lib/${name}`,
|
||||
pathToFileURL(resolve("scripts/lib", name)).href,
|
||||
] as const,
|
||||
),
|
||||
]);
|
||||
const hook = join(root, "selected-dependencies.mjs");
|
||||
await writeFile(
|
||||
@@ -95,8 +86,12 @@ const prepare = async () => {
|
||||
`import { registerHooks } from "node:module";
|
||||
const selected = new Map(${JSON.stringify([...replacements])});
|
||||
const owner = ${JSON.stringify(pathToFileURL(join(controller, "scripts/verify-published-package.mjs")).href)};
|
||||
const repositoryOwner = ${JSON.stringify(pathToFileURL(resolve("scripts/verify-published-package.mjs")).href)};
|
||||
const relative = (specifier) => specifier.startsWith("./") || specifier.startsWith("../");
|
||||
registerHooks({ resolve(specifier, context, next) {
|
||||
return next(context.parentURL === owner ? selected.get(specifier) ?? specifier : specifier, context);
|
||||
if (context.parentURL !== owner) return next(specifier, context);
|
||||
const replacement = selected.get(specifier) ?? (relative(specifier) ? new URL(specifier, repositoryOwner).href : specifier);
|
||||
return next(replacement, context);
|
||||
} });
|
||||
`,
|
||||
);
|
||||
|
||||
Reference in new issue
Block a user