14 lines
679 B
TypeScript
14 lines
679 B
TypeScript
import path from "node:path";
|
|||
|
|
import { pathToFileURL } from "node:url";
|
||
|
|
import type { PackageQueryGenerator } from "./assembly.js";
|
||
|
|
|
||
|
|
/** The build invoker selects this executable explicitly. Never resolve a
|
||
|
|
* generator by a capability name or execute a module discovered in user QX. */
|
||
|
|
export async function loadQueryGenerator(filename?: string): Promise<PackageQueryGenerator | undefined> {
|
||
|
|
if (!filename) return undefined;
|
||
|
|
const module = await import(pathToFileURL(path.resolve(filename)).href);
|
||
|
|
if (typeof module.generatePackageQueries !== "function")
|
||
|
|
throw new Error("Query generator must export generatePackageQueries");
|
||
|
|
return module.generatePackageQueries;
|
||
|
|
}
|