API reference › @evolu/common › Type › BooleanFromString
const BooleanFromString: transform(
"BooleanFromString",
String,
Boolean,
{
from: (value): Result<boolean, BooleanFromStringError> =>
value === "true"
? ok(true)
: value === "false"
? ok(false)
: err({ type: "BooleanFromString", value }),
to: (value) => (value ? "true" : "false"),
},
(error) =>
The value ${safelyStringifyUnknownValue(error.value)} is not a boolean. Use true or false.,
) ;
Defined in: packages/common/src/Type.ts:3259
Transforms a boolean spelled as text into a Boolean.
This is useful for inputs that carry booleans as text, such as environment
variables, URL query parameters, and form fields. Exactly true and false
are accepted, the spellings JSON and JavaScript use, so a boolean has one
representation in every source.
Example
import {
assertEqual,
assertErr,
assertOk,
BooleanFromString,
} from "@evolu/common";
assertOk(BooleanFromString.fromUnknown("true"), true);
assertOk(BooleanFromString.fromUnknown("false"), false);
assertEqual(BooleanFromString.to(true), "true");
const invalid = BooleanFromString.fromUnknown("yes");
assertErr(invalid, { type: "BooleanFromString", value: "yes" });
assertEqual(
BooleanFromString.formatError(invalid.error),
'The value "yes" is not a boolean. Use true or false.',
);