archieve-projects/微信机器人/node_modules/cmd-ts/dist/esm/utils.js

74 lines
1.4 KiB
JavaScript
Executable File

import stripAnsi from 'strip-ansi';
/**
* @ignore
*/
export function padNoAnsi(str, length, place) {
const noAnsiStr = stripAnsi(str);
if (length < noAnsiStr.length)
return str;
const pad = Array(length - noAnsiStr.length + 1).join(' ');
if (place === 'end') {
return str + pad;
}
else {
return pad + str;
}
}
/**
* Group an array by a function that returns the key
*
* @ignore
*/
export function groupBy(objs, f) {
var _a;
const result = {};
for (const obj of objs) {
const key = f(obj);
result[key] = (_a = result[key]) !== null && _a !== void 0 ? _a : [];
result[key].push(obj);
}
return result;
}
/**
* A better typed version of `Object.entries`
*
* @ignore
*/
export function entries(obj) {
return Object.entries(obj);
}
/**
* Enumerate over a list, to get a pair of [index, value]
*
* @ignore
*/
export function* enumerate(arr) {
for (let i = 0; i < arr.length; i++) {
yield [i, arr[i]];
}
}
/**
* Array#flatMap polyfill
*
* @ignore
*/
export function flatMap(xs, fn) {
const results = [];
for (const x of xs) {
results.push(...fn(x));
}
return results;
}
/**
* Flatten an array
*
* @ignore
*/
export function flatten(xs) {
const results = [];
for (const x of xs) {
results.push(...x);
}
return results;
}
//# sourceMappingURL=utils.js.map