UNPKG

jka-core

Version:

Library for working with Jedi Academy servers

51 lines (50 loc) 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parseBooleanOtherwiseNull = exports.parseFloatOtherwiseNull = exports.parseIntOtherwiseNull = exports.parseIntOtherwiseZero = exports.kebabToCamel = exports.snakeToCamel = exports.executeOrTimeout = void 0; /** * * @param promise Promise to execute * @param timeout Time in secs after which execution is interrupted (default: 1) * @param errorMessage Message for error in case of timeout * @returns promise or throws error */ function executeOrTimeout(promise, timeout = 1, errorMessage) { return Promise.race([ promise, new Promise((_, reject) => setTimeout(() => { reject(new Error(errorMessage || 'Timeout!')); }, 1000 * timeout)) ]); } exports.executeOrTimeout = executeOrTimeout; function snakeToCamel(str) { return str .replace(/[_][a-z]/g, (group) => group.slice(-1).toUpperCase()); } exports.snakeToCamel = snakeToCamel; function kebabToCamel(str) { return str .replace(/[-][a-z]/g, (group) => group.slice(-1).toUpperCase()); } exports.kebabToCamel = kebabToCamel; const parseIntOtherwiseZero = (str) => { return isNaN(parseInt(str)) ? 0 : parseInt(str); }; exports.parseIntOtherwiseZero = parseIntOtherwiseZero; const parseIntOtherwiseNull = (str) => { return isNaN(parseInt(str)) ? null : parseInt(str); }; exports.parseIntOtherwiseNull = parseIntOtherwiseNull; const parseFloatOtherwiseNull = (str) => { return isNaN(parseFloat(str)) ? null : parseFloat(str); }; exports.parseFloatOtherwiseNull = parseFloatOtherwiseNull; const parseBooleanOtherwiseNull = (str) => { const num = (0, exports.parseIntOtherwiseNull)(str); // TODO: Check if negative values can be the case and how they work if (num !== null) return num > 0 ? true : false; else return null; }; exports.parseBooleanOtherwiseNull = parseBooleanOtherwiseNull;