94 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
 | |
| import { OpenAIError } from "../../core/error.mjs";
 | |
| // https://url.spec.whatwg.org/#url-scheme-string
 | |
| const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
 | |
| export const isAbsoluteURL = (url) => {
 | |
|     return startsWithSchemeRegexp.test(url);
 | |
| };
 | |
| export let isArray = (val) => ((isArray = Array.isArray), isArray(val));
 | |
| export let isReadonlyArray = isArray;
 | |
| /** Returns an object if the given value isn't an object, otherwise returns as-is */
 | |
| export function maybeObj(x) {
 | |
|     if (typeof x !== 'object') {
 | |
|         return {};
 | |
|     }
 | |
|     return x ?? {};
 | |
| }
 | |
| // https://stackoverflow.com/a/34491287
 | |
| export function isEmptyObj(obj) {
 | |
|     if (!obj)
 | |
|         return true;
 | |
|     for (const _k in obj)
 | |
|         return false;
 | |
|     return true;
 | |
| }
 | |
| // https://eslint.org/docs/latest/rules/no-prototype-builtins
 | |
| export function hasOwn(obj, key) {
 | |
|     return Object.prototype.hasOwnProperty.call(obj, key);
 | |
| }
 | |
| export function isObj(obj) {
 | |
|     return obj != null && typeof obj === 'object' && !Array.isArray(obj);
 | |
| }
 | |
| export const ensurePresent = (value) => {
 | |
|     if (value == null) {
 | |
|         throw new OpenAIError(`Expected a value to be given but received ${value} instead.`);
 | |
|     }
 | |
|     return value;
 | |
| };
 | |
| export const validatePositiveInteger = (name, n) => {
 | |
|     if (typeof n !== 'number' || !Number.isInteger(n)) {
 | |
|         throw new OpenAIError(`${name} must be an integer`);
 | |
|     }
 | |
|     if (n < 0) {
 | |
|         throw new OpenAIError(`${name} must be a positive integer`);
 | |
|     }
 | |
|     return n;
 | |
| };
 | |
| export const coerceInteger = (value) => {
 | |
|     if (typeof value === 'number')
 | |
|         return Math.round(value);
 | |
|     if (typeof value === 'string')
 | |
|         return parseInt(value, 10);
 | |
|     throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
 | |
| };
 | |
| export const coerceFloat = (value) => {
 | |
|     if (typeof value === 'number')
 | |
|         return value;
 | |
|     if (typeof value === 'string')
 | |
|         return parseFloat(value);
 | |
|     throw new OpenAIError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
 | |
| };
 | |
| export const coerceBoolean = (value) => {
 | |
|     if (typeof value === 'boolean')
 | |
|         return value;
 | |
|     if (typeof value === 'string')
 | |
|         return value === 'true';
 | |
|     return Boolean(value);
 | |
| };
 | |
| export const maybeCoerceInteger = (value) => {
 | |
|     if (value === undefined) {
 | |
|         return undefined;
 | |
|     }
 | |
|     return coerceInteger(value);
 | |
| };
 | |
| export const maybeCoerceFloat = (value) => {
 | |
|     if (value === undefined) {
 | |
|         return undefined;
 | |
|     }
 | |
|     return coerceFloat(value);
 | |
| };
 | |
| export const maybeCoerceBoolean = (value) => {
 | |
|     if (value === undefined) {
 | |
|         return undefined;
 | |
|     }
 | |
|     return coerceBoolean(value);
 | |
| };
 | |
| export const safeJSON = (text) => {
 | |
|     try {
 | |
|         return JSON.parse(text);
 | |
|     }
 | |
|     catch (err) {
 | |
|         return undefined;
 | |
|     }
 | |
| };
 | |
| //# sourceMappingURL=values.mjs.map
 |