16 lines
740 B
JavaScript
16 lines
740 B
JavaScript
import fs from "node:fs/promises";
|
|||
|
|
import { pathToFileURL } from "node:url";
|
||
|
|
const compiler = await import(pathToFileURL(process.argv[2]));
|
||
|
|
const input = JSON.parse(await fs.readFile(process.argv[3], "utf8"));
|
||
|
|
const revision = process.argv[4];
|
||
|
|
const schema = input.definition?.bindingSchema ?? input;
|
||
|
|
if (input.definition && compiler.hexDigest(input.definition) !== input.digest) throw Error("Invalid execution plan");
|
||
|
|
const pkg = schema.packages.find((entry) => entry.revisionId === revision);
|
||
|
|
if (!pkg) throw Error("Unknown build package " + revision);
|
||
|
|
process.stdout.write(
|
||
|
|
JSON.stringify({
|
||
|
|
contract: compiler.packageBuildContract(schema, revision),
|
||
|
|
sourceDigest: compiler.hexDigest({ revision, source: pkg.source }),
|
||
|
|
}),
|
||
|
|
);
|