mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
import braces from "braces";
|
|
import { bench, group, run } from "../runner.mjs";
|
|
|
|
// const iterations = 1000;
|
|
const iterations = 100;
|
|
|
|
const simplePattern = "foo.{js,jsx,ts,tsx}";
|
|
const complexPattern = "{a,b,HI{c,e,LMAO{d,f}Q}} wow {a,b}";
|
|
const veryComplexPattern = "{a,b,HI{c,e,LMAO{d,f}Q}}{1,2,{3,4},5}";
|
|
|
|
console.log(braces(complexPattern, { expand: true }));
|
|
function benchPattern(pattern, name) {
|
|
const _name = `${name} pattern: "${pattern}"`;
|
|
group({ name: _name, summary: true }, () => {
|
|
if (typeof Bun !== "undefined")
|
|
bench(`Bun (${_name})`, () => {
|
|
for (let i = 0; i < iterations; i++) {
|
|
Bun.$.braces(pattern);
|
|
}
|
|
});
|
|
|
|
bench(`micromatch/braces ${_name}`, () => {
|
|
for (let i = 0; i < iterations; i++) {
|
|
braces(pattern, { expand: true });
|
|
}
|
|
});
|
|
});
|
|
}
|
|
|
|
benchPattern(simplePattern, "simple");
|
|
benchPattern(complexPattern, "complex");
|
|
benchPattern(veryComplexPattern, "very complex pattern");
|
|
|
|
await run({
|
|
avg: true,
|
|
min_max: true,
|
|
percentiles: true,
|
|
});
|