diff --git a/src/v2/clips.ts b/src/v2/clips.ts index 6e47081..e5754bb 100644 --- a/src/v2/clips.ts +++ b/src/v2/clips.ts @@ -188,6 +188,7 @@ export default { stream: async function* ( streamInput: StreamInput, streamConfig?: StreamConfig, + csrfToken?: string, ): AsyncGenerator { const defaultStreamConfig = { bufferSize: DEFAULT_BUFFER_SIZE, @@ -210,6 +211,10 @@ export default { wav_encoded_timestamps: getTimeStamps, }, true, + csrfToken ? + { + 'X-CSRF-Token': csrfToken, + } : undefined, ) // check for error response diff --git a/src/v2/util.ts b/src/v2/util.ts index 03f5da9..fdb7bda 100644 --- a/src/v2/util.ts +++ b/src/v2/util.ts @@ -40,16 +40,23 @@ export interface ErrorResponseV2 { } export default { - get: (path: string, useSynthesisServer: boolean = false) => { + get: ( + path: string, + useSynthesisServer: boolean = false, + customHeaders?: Record, + ) => { return fetch( useSynthesisServer ? context.synServerUrl(path) : context.endpoint('v2', path), { method: 'GET', - headers: useSynthesisServer + headers: { + ...(useSynthesisServer ? context.synthesisServerHeaders() - : context.headers(), + : context.headers()), + ...customHeaders, + }, }, ) }, @@ -57,6 +64,7 @@ export default { path: string, data: Record = {}, useSynthesisServer: boolean = false, + customHeaders?: Record, ) => fetch( useSynthesisServer @@ -64,16 +72,21 @@ export default { : context.endpoint('v2', path), { method: 'POST', - headers: useSynthesisServer + headers: { + ...(useSynthesisServer ? context.synthesisServerHeaders() - : context.headers(), + : context.headers()), + ...customHeaders + }, body: JSON.stringify(data), + }, ), put: ( path: string, data: Record = {}, useSynthesisServer: boolean = false, + customHeaders?: Record, ) => fetch( useSynthesisServer @@ -81,22 +94,33 @@ export default { : context.endpoint('v2', path), { method: 'PUT', - headers: useSynthesisServer + headers: { + ...(useSynthesisServer ? context.synthesisServerHeaders() - : context.headers(), + : context.headers()), + ...customHeaders, + }, body: JSON.stringify(data), }, ), - delete: (path: string, useSynthesisServer: boolean = false) => + delete: ( + path: string, + useSynthesisServer: boolean = false, + customHeaders?: Record, + ) => fetch( useSynthesisServer ? context.synServerUrl(path) : context.endpoint('v2', path), { method: 'DELETE', - headers: useSynthesisServer + headers: { + ...(useSynthesisServer ? context.synthesisServerHeaders() - : context.headers(), + : context.headers()), + ...customHeaders, + }, + }, ),