/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { dlv } from "./dlv.js"; import * as z from "zod"; import { SDKOptions } from "./config.js"; export interface Env { APIDECK_API_KEY?: string | undefined; /** * Sets the consumerId parameter for all supported operations */ APIDECK_CONSUMER_ID?: string | undefined; /** * Sets the appId parameter for all supported operations */ APIDECK_APP_ID?: string | undefined; APIDECK_DEBUG?: boolean | undefined; } export const envSchema: z.ZodType = z.object({ APIDECK_API_KEY: z.string().optional(), APIDECK_CONSUMER_ID: z.string().optional(), APIDECK_APP_ID: z.string().optional(), APIDECK_DEBUG: z.coerce.boolean().optional(), }); let envMemo: Env | undefined = undefined; /** * Reads and validates environment variables. */ export function env(): Env { if (envMemo) { return envMemo; } envMemo = envSchema.parse( dlv(globalThis, "process.env") ?? dlv(globalThis, "Deno.env") ?? {}, ); return envMemo; } /** * Clears the cached env object. Useful for testing with a fresh environment. */ export function resetEnv() { envMemo = undefined; } /** * Populates global parameters with environment variables. */ export function fillGlobals(options: SDKOptions): SDKOptions { const clone = { ...options }; const envVars = env(); if (typeof envVars.APIDECK_CONSUMER_ID !== "undefined") { clone.consumerId ??= envVars.APIDECK_CONSUMER_ID; } if (typeof envVars.APIDECK_APP_ID !== "undefined") { clone.appId ??= envVars.APIDECK_APP_ID; } return clone; }