zappyzep/backend/src/utils/tValidTimezone.ts

14 lines
454 B
TypeScript
Raw Normal View History

import { either } from "fp-ts/lib/Either";
import * as t from "io-ts";
import { isValidTimezone } from "./isValidTimezone";
export const tValidTimezone = new t.Type<string, string>(
"tValidTimezone",
(s): s is string => typeof s === "string",
(from, to) =>
2021-09-11 19:06:51 +03:00
either.chain(t.string.validate(from, to), (input) => {
return isValidTimezone(input) ? t.success(input) : t.failure(from, to, `Invalid timezone: ${input}`);
}),
2021-09-11 19:06:51 +03:00
(s) => s,
);