UNPKG

@vkontakte/api-schema-typescript-generator

Version:

VK API TypeScript generator

75 lines (74 loc) 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.trimArray = exports.quoteJavaScriptValue = exports.trimStringDoubleSpaces = exports.arrayToMap = exports.sortArrayAlphabetically = exports.uniqueArray = exports.capitalizeFirstLetter = exports.isObject = exports.isString = exports.flatten = void 0; function flatten(input) { const stack = [...input]; const result = []; while (stack.length) { const next = stack.pop(); if (next) { if (Array.isArray(next)) { stack.push(...next); } else { result.push(next); } } } return result.reverse(); } exports.flatten = flatten; function isString(object) { return typeof object === 'string'; } exports.isString = isString; function isObject(object) { return Object.prototype.toString.call(object) === '[object Object]'; } exports.isObject = isObject; function capitalizeFirstLetter(string) { return string.charAt(0).toUpperCase() + string.slice(1); } exports.capitalizeFirstLetter = capitalizeFirstLetter; function uniqueArray(array) { return array.filter((v, i, a) => a.indexOf(v) === i); } exports.uniqueArray = uniqueArray; function sortArrayAlphabetically(array) { return array.sort((a, b) => a.localeCompare(b)); } exports.sortArrayAlphabetically = sortArrayAlphabetically; function arrayToMap(array) { if (!array) { return {}; } return array.reduce((acc, value) => { acc[value] = true; return acc; }, {}); } exports.arrayToMap = arrayToMap; function trimStringDoubleSpaces(string) { return string.trim().replace(/\s\s+/g, ' '); } exports.trimStringDoubleSpaces = trimStringDoubleSpaces; function quoteJavaScriptValue(value) { return isString(value) ? `'${value}'` : value; } exports.quoteJavaScriptValue = quoteJavaScriptValue; /** * Removes empty string array elements from start and end of array, trim array elements and returns the new array * * @example trimArray(['', 'First', '', 'Second', '', '']) => ['First', '', 'Second'] */ function trimArray(array) { let trimmedArray = array.map((v) => v.trim()); while (trimmedArray[0] === '') { trimmedArray.shift(); } while (trimmedArray[trimmedArray.length - 1] === '') { trimmedArray.pop(); } return trimmedArray; } exports.trimArray = trimArray;