Skip to content

Commit

Permalink
Fix emoji validation, fix lint
Browse files Browse the repository at this point in the history
  • Loading branch information
Colin McDonnell committed Feb 16, 2023
1 parent c244fb6 commit 39cbb69
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 72 deletions.
11 changes: 5 additions & 6 deletions deno/lib/__tests__/string.test.ts
Expand Up @@ -131,12 +131,11 @@ test("url error overrides", () => {

test("emoji validations", () => {
const emoji = z.string().emoji();
try {
emoji.parse("🍺👩‍🚀🫡");
emoji.parse("💚 💙 💜 💛 ❤️");
expect(() => emoji.parse(":-)")).toThrow();
expect(() => emoji.parse("😀 is an emoji")).toThrow()
} catch (err) {}

emoji.parse("🍺👩‍🚀🫡");
emoji.parse("💚 💙 💜 💛 ❤️");
expect(() => emoji.parse(":-)")).toThrow();
expect(() => emoji.parse("😀 is an emoji")).toThrow();
});

test("uuid", () => {
Expand Down
2 changes: 1 addition & 1 deletion deno/lib/types.ts
Expand Up @@ -530,7 +530,7 @@ const emailRegex =
// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression

const emojiRegex =
/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*/;
/^(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*$/;

// interface IsDateStringOptions extends StringDateOptions {
/**
Expand Down
60 changes: 2 additions & 58 deletions playground.ts
@@ -1,61 +1,5 @@
import { z } from "./src";

z.number().int();
const schema = z.string().emoji();

// const arg = z.enum(["a", "b"] as const);
// const arb = arg.exclude(["b"]);
// const arc = arg.extract(["a"]);

// const aaa = z.object({ a: z.string(), b: z.number() });
// const bbb = aaa.extend({ b: z.string() });

// const Type1 = z.object({ a: z.string() }).merge(z.object({ a: z.number() }));
// type test1 = z.infer<typeof Type1>;

// const Type2 = Type1.merge(z.object({ b: z.string() }));
// type test2 = z.infer<typeof Type2>;

// const Type3 = Type2.merge(z.object({ c: z.string() }));
// type test3 = z.infer<typeof Type3>;

// const Type4 = Type3.merge(z.object({ Type3: z.string() }));
// type test4 = z.infer<typeof Type4>;

// const Type5 = Type4.merge(z.object({ Type4: z.string() }));
// type test5 = z.infer<typeof Type5>;

// const Type6 = Type5.merge(z.object({ Type5: z.string() }));
// type test6 = z.infer<typeof Type6>;

// const Type7 = Type6.merge(z.object({ Type6: z.string() }));
// type test7 = z.infer<typeof Type7>;

// const Type8 = Type7.merge(z.object({ Type7: z.string() }));
// type test8 = z.infer<typeof Type8>;

// const Type9 = Type8.merge(z.object({ Type8: z.string() }));
// type test9 = z.infer<typeof Type9>;

// const Type10 = Type9.merge(z.object({ Type9: z.string() }));
// type test10 = z.infer<typeof Type10>;

// const Type11 = Type10.merge(z.object({ Type10: z.string() }));
// type test11 = z.infer<typeof Type11>;

// const Type12 = Type11.merge(z.object({ Type11: z.string() }));
// type test12 = z.infer<typeof Type12>;

// const Type13 = Type12.merge(z.object({ Type12: z.string() }));
// type test13 = z.infer<typeof Type13>;

// const Type14 = Type13.merge(z.object({ Type13: z.string() }));
// type test14 = z.infer<typeof Type14>;

// const Type15 = Type14.merge(z.object({ Type14: z.string() }));
// type test15 = z.infer<typeof Type15>;

// const Type16 = Type14.merge(z.object({ Type15: z.string() }));
// type test16 = z.infer<typeof Type16>;

// const arg = Type16.parse("asdf");
// arg;
schema.parse("😀 is an emoji");
11 changes: 5 additions & 6 deletions src/__tests__/string.test.ts
Expand Up @@ -130,12 +130,11 @@ test("url error overrides", () => {

test("emoji validations", () => {
const emoji = z.string().emoji();
try {
emoji.parse("🍺👩‍🚀🫡");
emoji.parse("💚 💙 💜 💛 ❤️");
expect(() => emoji.parse(":-)")).toThrow();
expect(() => emoji.parse("😀 is an emoji")).toThrow()
} catch (err) {}

emoji.parse("🍺👩‍🚀🫡");
emoji.parse("💚 💙 💜 💛 ❤️");
expect(() => emoji.parse(":-)")).toThrow();
expect(() => emoji.parse("😀 is an emoji")).toThrow();
});

test("uuid", () => {
Expand Down
2 changes: 1 addition & 1 deletion src/types.ts
Expand Up @@ -530,7 +530,7 @@ const emailRegex =
// from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression

const emojiRegex =
/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*/;
/^(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?(?:\u200d(?:[^\ud800-\udfff]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff])[\ufe0e\ufe0f]?(?:[\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0]|\ud83c[\udffb-\udfff])?)*$/;

// interface IsDateStringOptions extends StringDateOptions {
/**
Expand Down

0 comments on commit 39cbb69

Please sign in to comment.