ccxt
Version:
231 lines (225 loc) • 7.75 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
// ----------------------------------------------------------------------------
// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
// EDIT THE CORRESPONDENT .ts FILE INSTEAD
/* ------------------------------------------------------------------------ */
const isNumber = Number.isFinite;
const isInteger = Number.isInteger;
const isArray = Array.isArray;
const hasProps = (o) => ((o !== undefined) && (o !== null));
const isString = (s) => (typeof s === 'string');
const isObject = (o) => ((o !== null) && (typeof o === 'object'));
const isRegExp = (o) => (o instanceof RegExp);
const isDictionary = (o) => (isObject(o) && (Object.getPrototypeOf(o) === Object.prototype) && !isArray(o) && !isRegExp(o));
const isStringCoercible = (x) => ((hasProps(x) && x.toString) || isNumber(x));
/* ............................................. */
const prop = (o, k) => {
if (k === undefined || k === null) {
return undefined;
}
return (isObject(o) && o[k] !== '' && o[k] !== null ? o[k] : undefined);
};
const prop2 = (o, k1, k2) => {
if (!isObject(o)) {
return undefined;
}
if (k1 !== undefined && k1 !== null) {
if (o[k1] !== undefined && o[k1] !== '' && o[k1] !== null) {
return o[k1];
}
}
if (k2 !== undefined && k2 !== null) {
if (o[k2] !== '' && o[k2] !== null) {
return o[k2];
}
}
return undefined;
};
const getValueFromKeysInArray = (object, array) => isObject(object) ? object[array.find((k) => prop(object, k) !== undefined)] : undefined;
/* ............................................. */
const asFloat = (x) => ((isNumber(x) || (isString(x) && x.length !== 0)) ? parseFloat(x) : NaN);
const asInteger = (x) => ((isNumber(x) || (isString(x) && x.length !== 0)) ? Math.trunc(Number(x)) : NaN);
/* ............................................. */
function safeFloat(o, k, $default) {
const n = asFloat(prop(o, k));
return isNumber(n) ? n : $default;
}
function safeInteger(o, k, $default) {
const n = asInteger(prop(o, k));
return isNumber(n) ? n : $default;
}
function safeIntegerProduct(o, k, $factor, $default) {
const n = asFloat(prop(o, k));
return isNumber(n) ? parseInt(n * $factor) : $default;
}
function safeTimestamp(o, k, $default) {
const n = asFloat(prop(o, k));
return isNumber(n) ? parseInt(n * 1000) : $default;
}
function safeValue(o, k, $default) {
const x = prop(o, k);
return hasProps(x) ? x : $default;
}
function safeString(o, k, $default) {
const x = prop(o, k);
if (typeof x === 'string')
return x;
if (Number.isFinite(x))
return String(x);
return $default;
}
function safeStringLower(o, k, $default) {
const x = prop(o, k);
if (typeof x === 'string')
return x.toLowerCase();
if (Number.isFinite(x))
return String(x).toLowerCase();
return $default;
}
function safeStringUpper(o, k, $default) {
const x = prop(o, k);
if (typeof x === 'string')
return x.toUpperCase();
if (Number.isFinite(x))
return String(x).toUpperCase();
return $default;
}
/* ............................................. */
function safeFloat2(o, k1, k2, $default) {
const n = asFloat(prop2(o, k1, k2));
return isNumber(n) ? n : $default;
}
function safeInteger2(o, k1, k2, $default) {
const n = asInteger(prop2(o, k1, k2));
return isNumber(n) ? n : $default;
}
function safeIntegerProduct2(o, k1, k2, $factor, $default) {
const n = asFloat(prop2(o, k1, k2));
return isNumber(n) ? parseInt(n * $factor) : $default;
}
function safeTimestamp2(o, k1, k2, $default) {
const n = asFloat(prop2(o, k1, k2));
return isNumber(n) ? parseInt(n * 1000) : $default;
}
function safeValue2(o, k1, k2, $default) {
const x = prop2(o, k1, k2);
return hasProps(x) ? x : $default;
}
function safeString2(o, k1, k2, $default) {
const x = prop2(o, k1, k2);
if (typeof x === 'string')
return x;
if (Number.isFinite(x))
return String(x);
return $default;
}
function safeStringLower2(o, k1, k2, $default) {
const x = prop2(o, k1, k2);
if (typeof x === 'string')
return x.toLowerCase();
if (Number.isFinite(x))
return String(x).toLowerCase();
return $default;
}
function safeStringUpper2(o, k1, k2, $default) {
const x = prop2(o, k1, k2);
if (typeof x === 'string')
return x.toUpperCase();
if (Number.isFinite(x))
return String(x).toUpperCase();
return $default;
}
function safeFloatN(o, k, $default) {
const n = asFloat(getValueFromKeysInArray(o, k));
return isNumber(n) ? n : $default;
}
function safeIntegerN(o, k, $default) {
if (o === undefined) {
return $default;
}
const n = asInteger(getValueFromKeysInArray(o, k));
return isNumber(n) ? n : $default;
}
function safeIntegerProductN(o, k, $factor, $default) {
const n = asFloat(getValueFromKeysInArray(o, k));
return isNumber(n) ? parseInt(n * $factor) : $default;
}
function safeTimestampN(o, k, $default) {
const n = asFloat(getValueFromKeysInArray(o, k));
return isNumber(n) ? parseInt(n * 1000) : $default;
}
function safeValueN(o, k, $default) {
if (o === undefined) {
return $default;
}
const x = getValueFromKeysInArray(o, k);
return hasProps(x) ? x : $default;
}
function safeStringN(o, k, $default) {
if (o === undefined)
return $default;
const x = getValueFromKeysInArray(o, k);
if (typeof x === 'string')
return x;
if (Number.isFinite(x))
return String(x);
return $default;
}
function safeStringLowerN(o, k, $default) {
if (o === undefined)
return $default;
const x = getValueFromKeysInArray(o, k);
if (typeof x === 'string')
return x.toLowerCase();
if (Number.isFinite(x))
return String(x).toLowerCase();
return $default;
}
function safeStringUpperN(o, k, $default) {
if (o === undefined)
return $default;
const x = getValueFromKeysInArray(o, k);
if (typeof x === 'string')
return x.toUpperCase();
if (Number.isFinite(x))
return String(x).toUpperCase();
return $default;
}
/* ------------------------------------------------------------------------ */
exports.asFloat = asFloat;
exports.asInteger = asInteger;
exports.hasProps = hasProps;
exports.isArray = isArray;
exports.isDict = isDictionary;
exports.isInteger = isInteger;
exports.isNumber = isNumber;
exports.isObject = isObject;
exports.isString = isString;
exports.isStringCoercible = isStringCoercible;
exports.prop = prop;
exports.safeFloat = safeFloat;
exports.safeFloat2 = safeFloat2;
exports.safeFloatN = safeFloatN;
exports.safeInteger = safeInteger;
exports.safeInteger2 = safeInteger2;
exports.safeIntegerN = safeIntegerN;
exports.safeIntegerProduct = safeIntegerProduct;
exports.safeIntegerProduct2 = safeIntegerProduct2;
exports.safeIntegerProductN = safeIntegerProductN;
exports.safeString = safeString;
exports.safeString2 = safeString2;
exports.safeStringLower = safeStringLower;
exports.safeStringLower2 = safeStringLower2;
exports.safeStringLowerN = safeStringLowerN;
exports.safeStringN = safeStringN;
exports.safeStringUpper = safeStringUpper;
exports.safeStringUpper2 = safeStringUpper2;
exports.safeStringUpperN = safeStringUpperN;
exports.safeTimestamp = safeTimestamp;
exports.safeTimestamp2 = safeTimestamp2;
exports.safeTimestampN = safeTimestampN;
exports.safeValue = safeValue;
exports.safeValue2 = safeValue2;
exports.safeValueN = safeValueN;