콘텐츠로 이동

createPickerFlows — @gj-kit/expo-media

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

import { createPickerFlows } from '@gj-kit/expo-media/core';
declare function createPickerFlows<TAsset, TCollectionId extends string = string>(input: {
readonly picker: PickerAdapter;
readonly uploads: LocalUploads<TAsset, TCollectionId>;
readonly platform: PlatformAdapter;
readonly strings?: MediaStrings | undefined;
/**
* 웹 경로에서 `asset.fileName`이 없을 때 생성되는 폴백 파일명의 접두사.
* 전신은 uploader의 `fileNamePrefix`를 썼다(uploader.ts:701) — 생략하면 `mediaFileName`
* 기본값(`'media'`)이 되어 호스트 접두사가 웹 경로에서만 달라진다.
* 네이티브 경로는 `uploads`가 이미 자기 접두사를 갖고 있으므로 영향받지 않는다.
*/
readonly fileNamePrefix?: string | undefined;
/**
* ⚠ `platform.os === 'web'`에서 피커 자산을 업로드하려면 **필수**. 없으면
* `MediaError('platform-unsupported')`. 조건부 타입 0 — 런타임 분기다(§3.1).
*
* 실측 근거(§5.7.4/V9-d): memorylog2 `app/profile-edit.tsx:137`의 `pickAndUploadPhoto()`에는
* **플랫폼 게이트가 없다**. 웹에서 그 호출은 전신 uploader.ts:692-710으로 들어가
* `fetch(asset.uri)` → Blob → `uploadImageBlob({ fallbackExif: asset.exif })`를 탔다.
* 그 경로를 잃지 않으려면 변환 담당자(`loader`)와 업로더(`uploads`)가 여기 주입돼야 한다.
*/
readonly web?: {
readonly uploads: BinaryUploads<TAsset, TCollectionId>;
readonly loader: BinarySourceLoader;
} | undefined;
}): PickerFlows<TAsset, TCollectionId>;

이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.

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