Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions contributions/65815.md
Original file line number Diff line number Diff line change
@@ -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처럼 특정 조건에서만 존재하는 값은 네이티브 구현과 사용처를 함께 확인해야 정확하게 선언할 수 있었습니다.

선언과 실제 구현을 나란히 비교해보며 누락을 찾아보아야 할 것 같습니다.
Loading