MediaKit — @gj-kit/expo-media
@gj-kit/expo-media에서 공개하는 interface입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.
검증된 import 예제
섹션 제목: “검증된 import 예제”import { MediaKit } from '@gj-kit/expo-media';시그니처, 매개변수, 반환 타입
섹션 제목: “시그니처, 매개변수, 반환 타입”/** * 골든패스 킷. expo 기본 어댑터(platform·files·localTransport·binaryTransport·hasher·staging)가 * 이미 채워져 있다. * * ⚠ 선택 능력은 **구체 킷을 반환하는 `with*`**로 부착한다(§3.1). `with*`는 자기 자신을 넓히지 * 않고 새 객체를 반환하므로 조건부 타입이 0이다 — V3가 실측한 "타입 애노테이션 한 번에 전 기능이 * 소멸하는" 붕괴가 **표현 불가능**하다. */interface MediaKit<TAsset, TCollectionId extends string = string> extends LocalUploads<TAsset, TCollectionId>, BinaryUploads<TAsset, TCollectionId> { readonly platform: PlatformAdapter; readonly files: FileSystemAdapter; readonly staging: StagingCache; /** * ⚠ **공개 필드다**(V9 요구). memorylog2 `src/sync/hashFile.ts`가 `hashLocalFile`을 재export하고 * `src/sync/uploadAsset.ts:14,22`가 그것을 쓴다. 이 필드가 없으면 앱 어댑터가 위임할 대상이 * 없어 동기화 엔진이 해시 함수를 잃는다(§5.7.2-⑦). */ readonly hasher: HashAdapter; withPicker(picker: PickerAdapter, /** * 웹에서 피커 자산을 업로드하는 앱은 `loader`만 주면 된다 — `uploads`는 킷 자신 * (`BinaryUploads`)이 채운다. 생략 시 웹 피커 업로드는 `platform-unsupported`다(§5.7.4). */ options?: { readonly web?: { readonly loader: BinarySourceLoader; } | undefined; } | undefined): PickerFlows<TAsset, TCollectionId>; withDeviceLibrary(adapter: DeviceLibraryAdapter): DeviceKit<TAsset, TCollectionId>; withDeviceSave(adapter: MediaLibrarySaveAdapter): MediaSaver;}이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.
Release context
섹션 제목: “Release context”- 패키지:
@gj-kit/expo-media - 버전:
0.6.1 - 공개 entry:
. - 소스: GitHub
구현 주석
섹션 제목: “구현 주석”골든패스 킷. expo 기본 어댑터(platform·files·localTransport·binaryTransport·hasher·staging)가 이미 채워져 있다.
⚠ 선택 능력은 **구체 킷을 반환하는 with***로 부착한다(§3.1). with*는 자기 자신을 넓히지
않고 새 객체를 반환하므로 조건부 타입이 0이다 — V3가 실측한 “타입 애노테이션 한 번에 전 기능이
소멸하는” 붕괴가 표현 불가능하다.