23 lines
569 B
TypeScript
23 lines
569 B
TypeScript
/**
|
|
* Parse un booléen JSON strict (rejette les chaînes truthy comme `"false"`).
|
|
* Si la clé est absente, retourne `defaultIfAbsent`.
|
|
*/
|
|
export function parseStrictBoolean(
|
|
value: unknown,
|
|
fieldName: string,
|
|
defaultIfAbsent: boolean
|
|
):
|
|
| { ok: true; value: boolean }
|
|
| { ok: false; error: string } {
|
|
if (value === undefined) {
|
|
return { ok: true, value: defaultIfAbsent };
|
|
}
|
|
if (typeof value === "boolean") {
|
|
return { ok: true, value };
|
|
}
|
|
return {
|
|
ok: false,
|
|
error: `${fieldName} doit être un booléen (true ou false)`,
|
|
};
|
|
}
|