콘텐츠로 이동

mediaFileName — @gj-kit/expo-media

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

import { mediaFileName } from '@gj-kit/expo-media/core';
/**
* 전신의 `defaultMediaFileName`·`inferFileName`·`inferWebFileName` **3종을 하나로 통합**(§5.7.2-③).
*
* `fileName`이 있으면 그대로 쓰고, 없으면 `${prefix}-${now}.${ext}`(전신 규칙 보존).
* ⚠ `now`는 결정론적 테스트를 위한 주입구다 — 생략 시 `Date.now()`로 전신과 동일하게 동작한다
* (§5.4.1-15). 전신은 `Date.now()`를 직접 호출해 파일명 규칙에 테스트가 없었다.
* ⚠ `prefix` 기본값은 `'media'`다 — 전신 `'photo'`에서 바꿨다(§5.4.1-13). 호스트는 항상 자기
* 프리픽스를 주입하므로 이관 영향이 0이며, 라이브러리 이름과의 일관성을 택했다.
*/
declare function mediaFileName(input: {
readonly fileName?: string | null | undefined;
readonly contentType: MediaContentType;
readonly prefix?: string | undefined;
readonly now?: number | undefined;
}): string;

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

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

전신의 defaultMediaFileName·inferFileName·inferWebFileName 3종을 하나로 통합(§5.7.2-③).

fileName이 있으면 그대로 쓰고, 없으면 ${prefix}-${now}.${ext}(전신 규칙 보존). ⚠ now는 결정론적 테스트를 위한 주입구다 — 생략 시 Date.now()로 전신과 동일하게 동작한다 (§5.4.1-15). 전신은 Date.now()를 직접 호출해 파일명 규칙에 테스트가 없었다. ⚠ prefix 기본값은 'media'다 — 전신 'photo'에서 바꿨다(§5.4.1-13). 호스트는 항상 자기 프리픽스를 주입하므로 이관 영향이 0이며, 라이브러리 이름과의 일관성을 택했다.