콘텐츠로 이동

FakeDeviceLibraryOptions — @gj-kit/expo-media

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

import { FakeDeviceLibraryOptions } from '@gj-kit/expo-media/testing';
type FakeDeviceLibraryOptions = {
/** 열거 대상. ⚠ **주어진 순서를 그대로 유지한다** — 정렬 계약의 주인은 어댑터다(§3.3). */
readonly assets?: readonly DeviceAsset[] | undefined;
/** ⚠ `count: 0` 앨범과 뒤섞인 순서를 일부러 줄 수 있어야 한다(§7.1 unit 2케이스). */
readonly albums?: readonly DeviceAlbum[] | undefined;
/** albumId → 그 앨범에 속한 자산 id. 없으면 `albumId` 필터는 무시된다. */
readonly albumAssets?: Readonly<Record<string, readonly string[]>> | undefined;
/** `getPermission()` 결과. 기본 허용. */
readonly permission?: MediaPermission | undefined;
/** `requestPermission()` 결과. 기본은 `permission`과 동일. */
readonly requestedPermission?: MediaPermission | undefined;
/**
* true면 원본이 iCloud에만 있다고 보고한다 — 단, `downloadFromNetwork: true`로 조회하면
* 해소된다. 그래야 §7 하드닝 6의 "옵트인 → 60s 데드라인 → 재조회" 흐름이 실제로 돈다.
*/
readonly networkOnly?: boolean | undefined;
/** assetId별 EXIF. 기기 경로의 EXIF가 `PickedAsset.exif`까지 흐르는지 검증한다. */
readonly assetExif?: Readonly<Record<string, Readonly<Record<string, unknown>>>> | undefined;
/** assetId별 `DeviceAssetInfo` 전체 치환. 후보 순서(localUri → uri)를 직접 조작할 때 쓴다. */
readonly assetInfo?: Readonly<Record<string, DeviceAssetInfo>> | undefined;
/**
* `getAssetInfo`가 **영영 응답하지 않는다**. §7 하드닝 6의 15s/60s 데드라인이 core에 있음을
* 가짜 타이머로 검증하는 유일한 수단이다.
*/
readonly hangInfo?: boolean | undefined;
/**
* `getAssetInfo`가 이 값을 throw한다.
* ⚠ §7.1 「정보 조회 실패 2조건」의 ②(어댑터 raw 예외)를 만드는 주입구다. `MediaError`를 주면
* ①(후보 유무와 무관하게 항상 재throw)도 같은 손잡이로 검증된다.
*/
readonly failInfoWith?: unknown;
};

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

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