From e5d777dfe66a87aa8c6b3f74d47e6aa2e06005a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Tue, 3 Sep 2024 23:56:00 +0200 Subject: [PATCH] Email refinement --- src/Schema/Email.ts | 12 ++++++++++++ src/Schema/index.ts | 1 + 2 files changed, 13 insertions(+) create mode 100644 src/Schema/Email.ts diff --git a/src/Schema/Email.ts b/src/Schema/Email.ts new file mode 100644 index 0000000..7762efd --- /dev/null +++ b/src/Schema/Email.ts @@ -0,0 +1,12 @@ +import { Schema } from "@effect/schema" + + +export const Email = Schema.pattern( + /^(?!\.)(?!.*\.\.)([A-Z0-9_+-.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9-]*\.)+[A-Z]{2,}$/i, + + { + identifier: "Email", + title: "email", + message: () => "Not an email address", + }, +) diff --git a/src/Schema/index.ts b/src/Schema/index.ts index b047a9e..a66cc17 100644 --- a/src/Schema/index.ts +++ b/src/Schema/index.ts @@ -1,5 +1,6 @@ export * from "./Class" export * from "./DateTime" +export * from "./Email" export * from "./encodedAsPrismaJsonValue" export * from "./Kind" export * as MobX from "./MobX"