Skip to content

MediaKit — @gj-kit/expo-media

A public interface from @gj-kit/expo-media. The signature below is taken directly from the 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;
}

This declaration is the source of truth for parameters, optionality, generics, return values, and public union/type contracts. Check the package golden path and this subpath’s import conditions for required environment, permission, and error boundaries before calling it.

  • Package: @gj-kit/expo-media
  • Version: 0.6.1
  • Public entry: .
  • Source: GitHub