createBrowserSaveTarget — @gj-kit/expo-media
@gj-kit/expo-media/web에서 공개하는 function입니다. package version 0.6.1의 release declaration을 그대로 표시합니다.
검증된 import 예제
섹션 제목: “검증된 import 예제”import { createBrowserSaveTarget } from '@gj-kit/expo-media/web';시그니처, 매개변수, 반환 타입
섹션 제목: “시그니처, 매개변수, 반환 타입”/** * 서빙 URL을 브라우저 다운로드로 저장하는 `BrowserSaveAdapter`(§5.6). * `createMediaSaver({ target: { kind: 'browser-download', browser } })`에 꽂는다. * * ⚠ `document`/`fetch`는 **필수 주입**이다(§5.6 시그니처 · §6.1-⑬ "런타임 + 생성 차단"). * 옵셔널로 두고 `globalThis`로 폴백하면 네이티브·SSR에서도 **생성이 조용히 성공**해 * "웹 전용 API를 네이티브에서" 조합이 타입에서 걸리지 않는다 — ⑬이 막으려던 바로 그 결말이다. * `dist/web.d.ts`의 DOM 각인(§2.4)이 무DOM 소비자에게서 이 두 필드를 지켜주는 것도 * **필드가 시그니처에 존재할 때만** 의미가 있다. * 호출 시점 판정(§8.5의 `platform-unsupported`)은 내부 `createDirectBrowserSave`가 계속 맡는다 — * 비네이티브 포크(`src/save/web.ts`)는 SSR에 `document`가 없어도 조립될 수 있어야 하기 때문이다. */declare function createBrowserSaveTarget(input: { readonly document: Document; readonly fetch: typeof fetch;}): BrowserSaveAdapter;이 선언은 매개변수, optionality, 제네릭, 반환값, 공개 union/type 계약의 정본입니다. 호출 전 필요한 환경·권한·오류 경계는 패키지 Golden path와 이 subpath의 import 조건을 함께 확인하세요.
Release context
섹션 제목: “Release context”- 패키지:
@gj-kit/expo-media - 버전:
0.6.1 - 공개 entry:
./web - 소스: GitHub
구현 주석
섹션 제목: “구현 주석”서빙 URL을 브라우저 다운로드로 저장하는 BrowserSaveAdapter(§5.6).
createMediaSaver({ target: { kind: 'browser-download', browser } })에 꽂는다.
⚠ document/fetch는 필수 주입이다(§5.6 시그니처 · §6.1-⑬ “런타임 + 생성 차단”).
옵셔널로 두고 globalThis로 폴백하면 네이티브·SSR에서도 생성이 조용히 성공해
“웹 전용 API를 네이티브에서” 조합이 타입에서 걸리지 않는다 — ⑬이 막으려던 바로 그 결말이다.
dist/web.d.ts의 DOM 각인(§2.4)이 무DOM 소비자에게서 이 두 필드를 지켜주는 것도
필드가 시그니처에 존재할 때만 의미가 있다.
호출 시점 판정(§8.5의 platform-unsupported)은 내부 createDirectBrowserSave가 계속 맡는다 —
비네이티브 포크(src/save/web.ts)는 SSR에 document가 없어도 조립될 수 있어야 하기 때문이다.