@kontent-ai/core-sdk
Version:
Core package with shared / common functionality for Kontent.ai SDKs
39 lines (30 loc) • 1.06 kB
text/typescript
import type { CommonHeaderNames, Header, SDKInfo } from "../models/core.models.js";
export function getSdkIdHeader(info: SDKInfo): Header {
return {
name: "X-KC-SDKID" satisfies CommonHeaderNames,
value: `${info.host};${info.name};${info.version}`,
};
}
export function getRetryAfterHeaderValue(headers: readonly Header[]): number | undefined {
const retryAfterHeader = headers.find((header) => header.name.toLowerCase() === ("Retry-After" satisfies CommonHeaderNames).toLowerCase());
if (!retryAfterHeader) {
return undefined;
}
const numberValue = +retryAfterHeader.value;
if (!Number.isSafeInteger(numberValue)) {
return undefined;
}
return numberValue;
}
export function toSdkHeaders(headers: Headers): readonly Header[] {
return Array.from(headers.entries()).map(([key, value]) => ({
name: key,
value: value,
}));
}
export function toFetchHeaders(headers: readonly Header[]): Headers {
return headers.reduce<Headers>((headers, header) => {
headers.append(header.name, header.value);
return headers;
}, new Headers());
}