API reference@evolu/commonType › 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.',
);