From 790baedd2018d740f4c2d9ae8c5e4e6d2e7db3a2 Mon Sep 17 00:00:00 2001 From: hyemimi Date: Thu, 1 Oct 2026 22:26:15 +0900 Subject: [PATCH] docs: add contribution note for PR #65815 --- contributions/65815.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 contributions/65815.md diff --git a/contributions/65815.md b/contributions/65815.md new file mode 100644 index 00000000..776016fa --- /dev/null +++ b/contributions/65815.md @@ -0,0 +1,25 @@ +--- +pr-url: https://github.com/nodejs/node/pull/65815 +--- + +## 문제 내용 + +SEA의 네이티브 바인딩에는 `getAssetKeys()`, `isVfsEnabled()`, `mainCodePath`가 제공되지만, 내부 TypeScript 선언에는 이 속성들이 빠져 있었습니다. + +내부 JavaScript 코드에서는 이미 사용하고 있어, 실제 구현과 타입 선언을 일치시킬 필요가 있었습니다. + +별도로 연결된 Issue 없이 이 선언 누락을 수정한 PR입니다. + +## 해결 과정과 검증 + +`src/node_sea.cc`에서 속성이 등록되는 부분과 이를 사용하는 내부 코드를 확인했습니다. 그 결과를 바탕으로 `typings/internalBinding/sea.d.ts`에 세 속성을 추가했습니다. `mainCodePath`는 VFS가 활성화된 SEA에서만 제공되므로 선택적 속성(?)으로 선언했습니다. + +런타임 동작은 변경하지 않고 타입 선언만 보완했습니다. + +## 기여 회고 + +타입 선언을 수정할 때도 이름과 반환 타입만 살펴보면 부족하다는 점을 배웠습니다. + +특히 mainCodePath처럼 특정 조건에서만 존재하는 값은 네이티브 구현과 사용처를 함께 확인해야 정확하게 선언할 수 있었습니다. + +선언과 실제 구현을 나란히 비교해보며 누락을 찾아보아야 할 것 같습니다.