mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 07:47:41 +09:00 
			
		
		
		
	feat: add support for custom headers to TS SDK (#21205)
* Add support for custom headers * fix: added assertNoApiKey function
This commit is contained in:
		| @@ -6,11 +6,15 @@ export * from './fetch-errors.js'; | |||||||
| export interface InitOptions { | export interface InitOptions { | ||||||
|   baseUrl: string; |   baseUrl: string; | ||||||
|   apiKey: string; |   apiKey: string; | ||||||
|  |   headers?: Record<string, string>; | ||||||
| } | } | ||||||
|  |  | ||||||
| export const init = ({ baseUrl, apiKey }: InitOptions) => { | export const init = ({ baseUrl, apiKey, headers }: InitOptions) => { | ||||||
|   setBaseUrl(baseUrl); |   setBaseUrl(baseUrl); | ||||||
|   setApiKey(apiKey); |   setApiKey(apiKey); | ||||||
|  |   if (headers) { | ||||||
|  |     setHeaders(headers); | ||||||
|  |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| export const getBaseUrl = () => defaults.baseUrl; | export const getBaseUrl = () => defaults.baseUrl; | ||||||
| @@ -24,6 +28,26 @@ export const setApiKey = (apiKey: string) => { | |||||||
|   defaults.headers['x-api-key'] = apiKey; |   defaults.headers['x-api-key'] = apiKey; | ||||||
| }; | }; | ||||||
|  |  | ||||||
|  | export const setHeader = (key: string, value: string) => { | ||||||
|  |   assertNoApiKey(key); | ||||||
|  |   defaults.headers = defaults.headers || {}; | ||||||
|  |   defaults.headers[key] = value; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | export const setHeaders = (headers: Record<string, string>) => { | ||||||
|  |   defaults.headers = defaults.headers || {}; | ||||||
|  |   for (const [key, value] of Object.entries(headers)) { | ||||||
|  |     assertNoApiKey(key); | ||||||
|  |     defaults.headers[key] = value; | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | const assertNoApiKey = (headerKey: string) => { | ||||||
|  |   if (headerKey.toLowerCase() === 'x-api-key') { | ||||||
|  |     throw new Error('The API key header can only be set using setApiKey().'); | ||||||
|  |   } | ||||||
|  | }; | ||||||
|  |  | ||||||
| export const getAssetOriginalPath = (id: string) => `/assets/${id}/original`; | export const getAssetOriginalPath = (id: string) => `/assets/${id}/original`; | ||||||
|  |  | ||||||
| export const getAssetThumbnailPath = (id: string) => `/assets/${id}/thumbnail`; | export const getAssetThumbnailPath = (id: string) => `/assets/${id}/thumbnail`; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user