- 헬퍼 동작 그대로(풀이 함수 본문은 옮겨 담음) · 제품 코드 안 고침 - 확인: 이 묶음 헬퍼를 쓰는 시험 233 개 전 233 통과 → 후 233 통과 (시험별 junit 대조 · 어긋남 0) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
30 lines
1.2 KiB
JavaScript
30 lines
1.2 KiB
JavaScript
/* 476-1 추천 [적용] 초안 — 화면 `flattenServerPlan`(logic/B05_Profile_UI_RouteEdit_Edits.ts) +
|
|
* `routeDraftOf` 칸 꼴(곡선 켬 = !== false · R ?? null)을 Node 로 돌려 JSON 한 줄
|
|
* (`test_476_1_recommend_initial.py` 가 파이썬 `draft_nodes` 와 견줌).
|
|
* node helper_476_1_flatten.cjs <후보 {nodes, curves} JSON 파일>
|
|
*/
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const { makeLoader } = require("./helper_ts_stub_loader.cjs");
|
|
|
|
const ROOT = path.join(__dirname, "..", "..");
|
|
|
|
const { loadTs } = makeLoader({
|
|
root: ROOT,
|
|
requireFor: (full) => (request) =>
|
|
request.startsWith(".")
|
|
? loadTs(path.join(path.dirname(full), `${request}.ts`))
|
|
: require(request),
|
|
});
|
|
|
|
const edits = loadTs(path.join(ROOT, "B05_Profile", "logic", "B05_Profile_UI_RouteEdit_Edits.ts"));
|
|
const body = JSON.parse(fs.readFileSync(process.argv[2], "utf8"));
|
|
const flat = edits.flattenServerPlan(body.nodes, body.curves);
|
|
process.stdout.write(
|
|
JSON.stringify({
|
|
nodes: flat.planned.map(([x, y]) => [x, y]),
|
|
curveOn: flat.planned.map((_, i) => flat.curveOn[i] !== false),
|
|
curveRadius: flat.planned.map((_, i) => flat.curveRadius[i] ?? null),
|
|
}),
|
|
);
|