fix(cli): clear lint warnings
This commit is contained in:
@@ -10,6 +10,20 @@ type BannerOptions = TaglineOptions & {
|
|||||||
|
|
||||||
let bannerEmitted = false;
|
let bannerEmitted = false;
|
||||||
|
|
||||||
|
const graphemeSegmenter =
|
||||||
|
typeof Intl !== "undefined" && "Segmenter" in Intl
|
||||||
|
? new Intl.Segmenter(undefined, { granularity: "grapheme" })
|
||||||
|
: null;
|
||||||
|
|
||||||
|
function splitGraphemes(value: string): string[] {
|
||||||
|
if (!graphemeSegmenter) return Array.from(value);
|
||||||
|
try {
|
||||||
|
return Array.from(graphemeSegmenter.segment(value), (seg) => seg.segment);
|
||||||
|
} catch {
|
||||||
|
return Array.from(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const hasJsonFlag = (argv: string[]) =>
|
const hasJsonFlag = (argv: string[]) =>
|
||||||
argv.some((arg) => arg === "--json" || arg.startsWith("--json="));
|
argv.some((arg) => arg === "--json" || arg.startsWith("--json="));
|
||||||
|
|
||||||
@@ -62,7 +76,7 @@ export function formatCliBannerArt(options: BannerOptions = {}): string {
|
|||||||
theme.accent("🦞")
|
theme.accent("🦞")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return [...line].map(colorChar).join("");
|
return splitGraphemes(line).map(colorChar).join("");
|
||||||
});
|
});
|
||||||
|
|
||||||
return colored.join("\n");
|
return colored.join("\n");
|
||||||
|
|||||||
@@ -98,7 +98,15 @@ type GatewayDiscoverOpts = {
|
|||||||
|
|
||||||
function parseDiscoverTimeoutMs(raw: unknown, fallbackMs: number): number {
|
function parseDiscoverTimeoutMs(raw: unknown, fallbackMs: number): number {
|
||||||
if (raw === undefined || raw === null) return fallbackMs;
|
if (raw === undefined || raw === null) return fallbackMs;
|
||||||
const value = typeof raw === "string" ? raw.trim() : String(raw);
|
const value =
|
||||||
|
typeof raw === "string"
|
||||||
|
? raw.trim()
|
||||||
|
: typeof raw === "number" || typeof raw === "bigint"
|
||||||
|
? String(raw)
|
||||||
|
: null;
|
||||||
|
if (value === null) {
|
||||||
|
throw new Error("invalid --timeout");
|
||||||
|
}
|
||||||
if (!value) return fallbackMs;
|
if (!value) return fallbackMs;
|
||||||
const parsed = Number.parseInt(value, 10);
|
const parsed = Number.parseInt(value, 10);
|
||||||
if (!Number.isFinite(parsed) || parsed <= 0) {
|
if (!Number.isFinite(parsed) || parsed <= 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user