#!/usr/bin/env node "use strict"; const path = require("path"); const { readAreaConfig, toRoadCompilerInput } = require("./lib/area-config"); const { compileInput } = require("../packages/road-compiler/src/compile/compiler"); const repoRoot = path.resolve(__dirname, ".."); function parseArgs(argv) { const result = {}; for (let index = 0; index < argv.length; index += 1) { if (!argv[index].startsWith("--")) continue; const key = argv[index].slice(2).replace(/-([a-z])/g, (_, letter) => letter.toUpperCase()); result[key] = argv[index + 1] && !argv[index + 1].startsWith("--") ? argv[++index] : "true"; } return result; } function compileArea(configPath) { const area = readAreaConfig(configPath, { repoRoot }); const compiled = compileInput(toRoadCompilerInput(area)); return { ...compiled, area }; } function main() { const args = parseArgs(process.argv.slice(2)); const configPath = path.resolve(args.config || path.join(repoRoot, "config", "areas", "nantaizi-lake-innovation-valley.json")); const { area, result, comparison } = compileArea(configPath); console.log(`NATIVE_ROAD_COMPILE_DONE ${JSON.stringify({ areaId: area.id, roads: result.model.roads.length, endpoints: result.model.endpoints.length, diagnostics: result.diagnostics.length, output: area.outputs.nativeRoadDir, comparison })}`); } if (require.main === module) main(); module.exports = { compileArea, parseArgs };