콘텐츠로 이동

MediaKit — @gj-kit/expo-media

@gj-kit/expo-media에서 공개하는 interface입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.

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 조건을 함께 확인하세요.

  • 패키지: @gj-kit/expo-media
  • 버전: 0.6.1
  • 공개 entry: .
  • 소스: GitHub

골든패스 킷. expo 기본 어댑터(platform·files·localTransport·binaryTransport·hasher·staging)가 이미 채워져 있다.

⚠ 선택 능력은 **구체 킷을 반환하는 with***로 부착한다(§3.1). with*는 자기 자신을 넓히지 않고 새 객체를 반환하므로 조건부 타입이 0이다 — V3가 실측한 “타입 애노테이션 한 번에 전 기능이 소멸하는” 붕괴가 표현 불가능하다.