@vkontakte/api-schema-typescript-generator
Version:
VK API TypeScript generator
75 lines (74 loc) • 2.41 kB
JavaScript
;
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;