API reference › @evolu/common › Type › BooleanFromString
const BooleanFromString: transform(
"BooleanFromString",
String,
Boolean,
{
from: (value: string): Result<boolean, BooleanFromStringError> =>
value === "true"
? ok(true)
: value === "false"
? ok(false)
: err({ type: "BooleanFromString", value }),
to: (value: boolean) => (value ? "true" : "false"),
},
formatBooleanFromStringError,
);
Defined in: packages/common/src/Type.ts:3750
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.',
);