feat: enhance order handling in LighterGateway and introduce order identity normalization for improved precision and consistency

This commit is contained in:
discountry
2025-11-12 19:17:04 +08:00
parent 1baee3a207
commit e7f6341961
11 changed files with 318 additions and 40 deletions
+30
View File
@@ -0,0 +1,30 @@
const TRUE_VALUES = new Set(["1", "true", "yes", "y", "on"]);
const FALSE_VALUES = new Set(["0", "false", "no", "n", "off"]);
export function normalizeBooleanFlag(value: unknown): boolean | null {
if (typeof value === "boolean") return value;
if (typeof value === "number") {
if (value === 1) return true;
if (value === 0) return false;
return null;
}
if (typeof value === "string") {
const normalized = value.trim().toLowerCase();
if (!normalized) return null;
if (TRUE_VALUES.has(normalized)) return true;
if (FALSE_VALUES.has(normalized)) return false;
return null;
}
if (typeof value === "bigint") {
if (value === 1n) return true;
if (value === 0n) return false;
return null;
}
return null;
}
export function coerceBooleanFlag(value: unknown, fallback = false): boolean {
const normalized = normalizeBooleanFlag(value);
if (normalized == null) return fallback;
return normalized;
}