[READ-ONLY] Mirror of https://github.com/bombshell-dev/args. <1kB CLI flag parser
args args-parser cli command-line command-line-parser node
5

Configure Feed

Select the types of activity you want to include in your feed.

add bench

Nate Moore (Feb 4, 2023, 6:17 PM -0600) 015b0330 739a7e94

+71 -4
+5
.changeset/perfect-coats-rhyme.md
··· 1 + --- 2 + "ultraflag": patch 3 + --- 4 + 5 + add benchmarks
+6 -1
package.json
··· 14 14 "scripts": { 15 15 "build": "node scripts/build.js && tsc -p .", 16 16 "lint": "prettier \"**/*.{js,ts,md}\"", 17 + "bench": "node scripts/bench.js", 17 18 "dev": "vitest", 18 19 "test": "vitest run" 19 20 }, ··· 46 47 "packageManager": "pnpm@7.6.0", 47 48 "devDependencies": { 48 49 "@changesets/cli": "^2.18.1", 50 + "arg": "^5.0.2", 51 + "benchmark": "^2.1.4", 49 52 "chalk": "^5.1.2", 50 53 "esbuild": "^0.14.51", 51 54 "globby": "^13.1.2", 52 55 "gzip-size": "^7.0.0", 56 + "minimist": "^1.2.7", 53 57 "npm-run-all": "^4.1.5", 54 58 "prettier": "^2.5.1", 55 59 "pretty-bytes": "^6.0.0", 56 60 "typescript": "^4.7.4", 57 - "vitest": "^0.20.2" 61 + "vitest": "^0.20.2", 62 + "yargs-parser": "^21.1.1" 58 63 } 59 64 }
+34 -3
pnpm-lock.yaml
··· 2 2 3 3 specifiers: 4 4 '@changesets/cli': ^2.18.1 5 + arg: ^5.0.2 6 + benchmark: ^2.1.4 5 7 chalk: ^5.1.2 6 8 esbuild: ^0.14.51 7 9 globby: ^13.1.2 8 10 gzip-size: ^7.0.0 11 + minimist: ^1.2.7 9 12 npm-run-all: ^4.1.5 10 13 prettier: ^2.5.1 11 14 pretty-bytes: ^6.0.0 12 15 typescript: ^4.7.4 13 16 vitest: ^0.20.2 17 + yargs-parser: ^21.1.1 14 18 15 19 devDependencies: 16 20 '@changesets/cli': 2.24.1 21 + arg: 5.0.2 22 + benchmark: 2.1.4 17 23 chalk: 5.1.2 18 24 esbuild: 0.14.51 19 25 globby: 13.1.2 20 26 gzip-size: 7.0.0 27 + minimist: 1.2.7 21 28 npm-run-all: 4.1.5 22 29 prettier: 2.7.1 23 30 pretty-bytes: 6.0.0 24 31 typescript: 4.7.4 25 32 vitest: 0.20.2 33 + yargs-parser: 21.1.1 26 34 27 35 packages: 28 36 ··· 338 346 color-convert: 2.0.1 339 347 dev: true 340 348 349 + /arg/5.0.2: 350 + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 351 + dev: true 352 + 341 353 /argparse/1.0.10: 342 354 resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} 343 355 dependencies: ··· 370 382 371 383 /balanced-match/1.0.2: 372 384 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 385 + dev: true 386 + 387 + /benchmark/2.1.4: 388 + resolution: {integrity: sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==} 389 + dependencies: 390 + lodash: 4.17.21 391 + platform: 1.3.6 373 392 dev: true 374 393 375 394 /better-path-resolve/1.0.0: ··· 1368 1387 resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} 1369 1388 dev: true 1370 1389 1390 + /lodash/4.17.21: 1391 + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} 1392 + dev: true 1393 + 1371 1394 /loupe/2.3.4: 1372 1395 resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} 1373 1396 dependencies: ··· 1444 1467 arrify: 1.0.1 1445 1468 is-plain-obj: 1.1.0 1446 1469 kind-of: 6.0.3 1470 + dev: true 1471 + 1472 + /minimist/1.2.7: 1473 + resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==} 1447 1474 dev: true 1448 1475 1449 1476 /mixme/0.5.4: ··· 1641 1668 engines: {node: '>=8'} 1642 1669 dependencies: 1643 1670 find-up: 4.1.0 1671 + dev: true 1672 + 1673 + /platform/1.3.6: 1674 + resolution: {integrity: sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==} 1644 1675 dev: true 1645 1676 1646 1677 /postcss/8.4.14: ··· 2211 2242 decamelize: 1.2.0 2212 2243 dev: true 2213 2244 2214 - /yargs-parser/21.0.1: 2215 - resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} 2245 + /yargs-parser/21.1.1: 2246 + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} 2216 2247 engines: {node: '>=12'} 2217 2248 dev: true 2218 2249 ··· 2243 2274 require-directory: 2.1.1 2244 2275 string-width: 4.2.3 2245 2276 y18n: 5.0.8 2246 - yargs-parser: 21.0.1 2277 + yargs-parser: 21.1.1 2247 2278 dev: true 2248 2279 2249 2280 /yocto-queue/0.1.0:
+25
scripts/bench.js
··· 1 + import benchmark from "benchmark"; 2 + import { parse as ultraflag } from "../dist/index.js"; 3 + import minimist from 'minimist'; 4 + import yargs from 'yargs-parser'; 5 + 6 + // @ts-ignore 7 + const suite = new benchmark.Suite(); 8 + 9 + const args = `--a=1 --b=2 -c 3 -xyz -c 4`.split(' '); 10 + 11 + suite 12 + .add("ultraflag", () => { 13 + ultraflag(args); 14 + }) 15 + .add("minimist", () => { 16 + minimist(args); 17 + }) 18 + .add("yargs-parser", () => { 19 + yargs(args) 20 + }) 21 + .on("cycle", (event) => { 22 + console.log(String(event.target)); 23 + }); 24 + 25 + suite.run();
+1
src/index.ts
··· 6 6 BooleanType, 7 7 StringType, 8 8 Collectable, 9 + 9 10 Aliases, 10 11 } from "./types.js"; 11 12 export { ParseOptions, Args } from "./types.js";