@jill64/ts-cli
Advanced tools
Comparing version 1.0.3 to 1.1.0
@@ -36,3 +36,6 @@ import { transform } from '@jill64/transform'; | ||
lookup(args) { | ||
const input = args.join(' ').trim(); | ||
const input = args | ||
.filter((x) => !x.startsWith('-')) | ||
.join(' ') | ||
.trim(); | ||
if (!input) { | ||
@@ -48,5 +51,50 @@ return undefined; | ||
const routed = route ? args.slice(routeDepth) : args; | ||
const stringOptions = Object.keys(options ?? {}) | ||
.filter((k) => (options ?? {})[k]?.type === 'string') | ||
.map((k) => ({ | ||
short: (options ?? {})[k]?.short, | ||
long: k | ||
})); | ||
const sort = (str) => { | ||
const { sorted } = str.reduce((prev, curr) => { | ||
if (prev.next_skip) { | ||
return { | ||
sorted: [...prev.sorted, curr], | ||
next_skip: false, | ||
index: prev.index | ||
}; | ||
} | ||
if (stringOptions.some((o) => `-${o.short}` === curr || `--${o.long}` === curr)) { | ||
return { | ||
sorted: [...prev.sorted, curr], | ||
next_skip: true, | ||
index: prev.index | ||
}; | ||
} | ||
if (curr.startsWith('-')) { | ||
return { | ||
sorted: [...prev.sorted, curr], | ||
next_skip: false, | ||
index: prev.index | ||
}; | ||
} | ||
return { | ||
sorted: [ | ||
...prev.sorted.slice(0, prev.index), | ||
curr, | ||
...prev.sorted.slice(prev.index) | ||
], | ||
next_skip: false, | ||
index: prev.index + 1 | ||
}; | ||
}, { | ||
sorted: [], | ||
next_skip: false, | ||
index: 0 | ||
}); | ||
return sorted; | ||
}; | ||
if (!config.rest?.description) { | ||
return { | ||
truncated: routed, | ||
truncated: sort(routed), | ||
rest: [] | ||
@@ -72,5 +120,6 @@ }; | ||
const truncated = routed.slice(0, index); | ||
const sorted = sort(truncated); | ||
const rest = routed.slice(index); | ||
return { | ||
truncated, | ||
truncated: sorted, | ||
rest | ||
@@ -77,0 +126,0 @@ }; |
{ | ||
"name": "@jill64/ts-cli", | ||
"version": "1.0.3", | ||
"version": "1.1.0", | ||
"type": "module", | ||
@@ -31,5 +31,5 @@ "files": [ | ||
"@jill64/prettier-config": "1.0.0", | ||
"@types/node": "20.12.8", | ||
"@types/node": "20.12.10", | ||
"typescript": "5.4.5", | ||
"vitest": "1.5.3" | ||
"vitest": "1.6.0" | ||
}, | ||
@@ -51,3 +51,3 @@ "dependencies": { | ||
"url": "https://github.com/jill64/ts-cli.git", | ||
"image": "https://opengraph.githubassets.com/dbdc4d083fa2ae231d41cfbc7df6500f87f2ce5d2b75139a3dfdb674bbfc3590/jill64/ts-cli" | ||
"image": "https://opengraph.githubassets.com/d91e49e6c7752eeee476d80690a4cdb34119af69bd4fffc852af9e9e6081fb32/jill64/ts-cli" | ||
}, | ||
@@ -54,0 +54,0 @@ "description": "> Solidly-Typed CLI Router", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19182
386