Skip to content

MediaKitConfig — @gj-kit/expo-media

A public type from @gj-kit/expo-media. The signature below is taken directly from the 0.6.1 release declaration.

import { MediaKitConfig } from '@gj-kit/expo-media';
type MediaKitConfig<TAsset, TCollectionId extends string = string> = Omit<MediaUploadConfig<TAsset, TCollectionId>, 'platform'> & {
/**
* expo 기본 어댑터 위의 **선택 오버라이드**. 각 필드는 개별 교체이며 부분 객체가 아니다 —
* `platform`만 갈아끼우고 나머지는 기본값을 그대로 쓰는 조합이 정상이다.
*/
readonly platform?: PlatformAdapter | undefined;
readonly files?: FileSystemAdapter | undefined;
readonly localTransport?: LocalFileTransport | undefined;
readonly binaryTransport?: BinaryTransport | undefined;
readonly hasher?: HashAdapter | undefined;
/** 네이티브 경로(로컬 URI → 포스터). 보통 `expoVideoPoster()`(`"./video"`). */
readonly poster?: LocalPosterAdapter | undefined;
/**
* 바이너리 경로(Blob → 포스터). 보통 `webCanvasVideoPoster()`(`"./web"`).
*
* ⚠ `poster`와 **입력 타입이 달라 자리를 바꿔 끼우면 컴파일 에러**가 나는 것이 설계다(§6.1-⑥).
* 그래서 필드도 둘로 나뉜다 — 하나로 합치면 그 검출력이 사라진다.
* ⚠ 주지 않으면 **웹 동영상에 포스터가 붙지 않는다.** 전신 uploader.ts:566-569는
* `posterBlob === undefined`일 때 `createWebVideoPosterBlob(blob)`으로 자동 추출했으므로,
* 웹 업로드 경로가 있는 앱이 이 필드를 비우면 그 동작이 조용히 사라진다.
* (호출자가 `uploadBinary({ poster })`로 직접 주는 경로는 이 필드와 무관하게 항상 동작한다.)
*/
readonly binaryPoster?: BinaryPosterAdapter | undefined;
readonly posterAtMs?: number | undefined;
/** 스테이징 네임스페이스. 기본 `'gj-media'`. `/^[a-z0-9][a-z0-9-]{1,30}$/`(§5.3). */
readonly namespace?: string | undefined;
};

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