cspell
Version:
A Spelling Checker for Code!
45 lines • 1.13 kB
JavaScript
// alias for uniqueFilterFnGenerator
export const uniqueFn = uniqueFilterFnGenerator;
export function uniqueFilterFnGenerator(extractFn) {
const values = new Set();
const extractor = extractFn || ((a) => a);
return (v) => {
const vv = extractor(v);
const ret = !values.has(vv);
values.add(vv);
return ret;
};
}
export function unique(src) {
return [...new Set(src)];
}
export function clean(src) {
const r = src;
for (const key of Object.keys(r)) {
if (r[key] === undefined) {
delete r[key];
}
}
return r;
}
export function padWidth(s, target) {
const sWidth = width(s);
return Math.max(target - sWidth, 0);
}
export function pad(s, w) {
const p = padWidth(s, w);
if (!p)
return s;
return s + ' '.repeat(p);
}
export function padLeft(s, w) {
const p = padWidth(s, w);
if (!p)
return s;
return ' '.repeat(p) + s;
}
export function width(s) {
// eslint-disable-next-line no-control-regex
return s.replace(/[\u0300-\u036f\x00-\x1f]/g, '').length;
}
//# sourceMappingURL=util.mjs.map