Fixup more broken geometries. (#2276)

This commit is contained in:
Belleve 2024-04-02 18:14:21 -10:00 committed by GitHub
parent 6923d74c0f
commit dd7d055302
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
10 changed files with 136 additions and 101 deletions

View file

@ -53,7 +53,7 @@ build.setJournal(`${BUILD}/.verda-build-journal`);
build.setSelfTracking();
///////////////////////////////////////////////////////////
////// Oracles //////
////// Environment //////
///////////////////////////////////////////////////////////
const Version = computed(`env::version`, async target => {
@ -71,16 +71,40 @@ const CheckTtfAutoHintExists = oracle(`oracle:check-ttfautohint-exists`, async t
});
const Dependencies = computed("env::dependencies", async target => {
const [pjf] = await target.need(sfu`package.json`);
const pj = JSON.parse(await FS.promises.readFile(pjf.full, "utf-8"));
let subGoals = [];
for (const pkgName in pj.dependencies) {
subGoals.push(InstalledVersion(pkgName, pj.dependencies[pkgName]));
const [packageJsons] = await target.need(AllPackageJsons);
const subGoals = [];
for (const pjf of packageJsons) {
subGoals.push(DependenciesFor(pjf));
}
const [actual] = await target.need(subGoals);
return actual;
return await target.need(subGoals);
});
const AllPackageJsons = computed("env::all-package-jsons", async target => {
const [ppj, tpj] = await target.need(PackagesPackagesJsons, ToolPackagesJsons);
return [`package.json`, ...ppj, ...tpj];
});
const PackagesPackagesJsons = computed("env::packages-packages-jsons", target =>
FileList({ under: "packages", pattern: "*/package.json" })(target),
);
const ToolPackagesJsons = computed("env::tool-packages-jsons", target =>
FileList({ under: "tools", pattern: "*/package.json" })(target),
);
const DependenciesFor = computed.make(
pakcageJsonPath => `env::dependencies-for::${pakcageJsonPath}`,
async (target, pakcageJsonPath) => {
const [pjf] = await target.need(sfu(pakcageJsonPath));
const pj = JSON.parse(await FS.promises.readFile(pjf.full, "utf-8"));
let subGoals = [];
for (const pkgName in pj.dependencies) {
if (/^@iosevka/.test(pkgName)) continue;
subGoals.push(InstalledVersion(pkgName, pj.dependencies[pkgName]));
}
const [actual] = await target.need(subGoals);
return actual;
},
);
const InstalledVersion = computed.make(
(pkg, required) => `env::installed-version::${pkg}::${required}`,
async (target, pkg, required) => {