_shims/registry.ts (70 lines of code) (raw):

/** * Disclaimer: modules in _shims aren't intended to be imported by SDK users. */ import { type RequestOptions } from "../core.ts"; export interface Shims { kind: string; fetch: any; Request: any; Response: any; Headers: any; FormData: any; Blob: any; File: any; ReadableStream: any; getMultipartRequestOptions: <T = Record<string, unknown>>( form: Shims["FormData"], opts: RequestOptions<T>, ) => Promise<RequestOptions<T>>; getDefaultAgent: (url: string) => any; fileFromPath: | (( path: string, filename?: string, options?: {}, ) => Promise<Shims["File"]>) | ((path: string, options?: {}) => Promise<Shims["File"]>); isFsReadStream: (value: any) => boolean; } export let auto = false; export let kind: Shims["kind"] | undefined = undefined; export let fetch: Shims["fetch"] | undefined = undefined; export let Request: Shims["Request"] | undefined = undefined; export let Response: Shims["Response"] | undefined = undefined; export let Headers: Shims["Headers"] | undefined = undefined; export let FormData: Shims["FormData"] | undefined = undefined; export let Blob: Shims["Blob"] | undefined = undefined; export let File: Shims["File"] | undefined = undefined; export let ReadableStream: Shims["ReadableStream"] | undefined = undefined; export let getMultipartRequestOptions: | Shims["getMultipartRequestOptions"] | undefined = undefined; export let getDefaultAgent: Shims["getDefaultAgent"] | undefined = undefined; export let fileFromPath: Shims["fileFromPath"] | undefined = undefined; export let isFsReadStream: Shims["isFsReadStream"] | undefined = undefined; export function setShims( shims: Shims, options: { auto: boolean } = { auto: false }, ) { if (auto) { throw new Error( `you must \`import 'openai/shims/${shims.kind}'\` before importing anything else from openai`, ); } if (kind) { throw new Error( `can't \`import 'openai/shims/${shims.kind}'\` after \`import 'openai/shims/${kind}'\``, ); } auto = options.auto; kind = shims.kind; fetch = shims.fetch; Request = shims.Request; Response = shims.Response; Headers = shims.Headers; FormData = shims.FormData; Blob = shims.Blob; File = shims.File; ReadableStream = shims.ReadableStream; getMultipartRequestOptions = shims.getMultipartRequestOptions; getDefaultAgent = shims.getDefaultAgent; fileFromPath = shims.fileFromPath; isFsReadStream = shims.isFsReadStream; }