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