UNPKG

ccxt

Version:

A cryptocurrency trading API with more than 100 exchanges in JavaScript / TypeScript / Python / C# / PHP / Go

231 lines (225 loc) • 7.75 kB
'use strict'; 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;