This commit is contained in:
Andras Schmelczer 2026-09-11 22:14:24 +01:00
commit 0c0f08b350
45 changed files with 1565 additions and 1579 deletions

View file

@ -1,7 +1,11 @@
import { readFile, writeFile } from 'node:fs/promises';
import { createServer } from 'vite';
const server = await createServer({ server: { middlewareMode: true }, appType: 'custom' });
const server = await createServer({
server: { middlewareMode: true },
appType: 'custom',
optimizeDeps: { noDiscovery: true, include: [] },
});
try {
const [{ planFlooring }, { planSkirting }, { plannerCases }, metrics] = await Promise.all([
server.ssrLoadModule('/src/lib/flooring.ts'),
@ -65,6 +69,22 @@ try {
if (regressions.length) console.log(`${kind} regressions: ${regressions.join(', ')}`);
}
console.table(summary);
for (const kind of ['flooring', 'skirting']) {
const wastePercent = (rows) => {
const purchased = rows.reduce((total, row) => {
const { project } = cases.find((c) => c.name === row.name);
const size =
kind === 'flooring'
? project.flooring.length * project.flooring.width
: project.skirting.stockLength;
return total + row[kind].boards * size;
}, 0);
return ((sum(rows, kind, 'waste') / purchased) * 100).toFixed(2);
};
console.log(
`${kind} waste: ${wastePercent(baseline)}% → ${wastePercent(results)}% (weighted by purchased stock)`,
);
}
console.table(
['shapingCuts', 'ripCuts', 'patternPenalty', 'repeats', 'similarSteps', 'staircases'].map(
(metric) => ({