2025-12-26
#js 

特定のドメインにあるメールアドレスかどうかなどをチェックするシンプルなJavaScriptのライブラリ、IDCheckerをつくりました。

テストファースト、AIしあげなライブラリの作り方。

1. 使うイメージでテストコードをかく
import * as t from "https://deno.land/std/testing/asserts.ts"; import { IDChecker } from "./IDChecker.js"; Deno.test("simple", () => { const ts = new IDChecker([ "*@test.com", "abc@test2.com", "ghi@*", ]); t.assertEquals(ts.check("abc@test.com"), true); t.assertEquals(ts.check("def@test.com"), true); t.assertEquals(ts.check("@test.com"), true); t.assertEquals(ts.check("test.com"), false); t.assertEquals(ts.check("abc@test2.com"), true); t.assertEquals(ts.check("abc@test3.com"), false); t.assertEquals(ts.check("ghi@test3.com"), true); t.assertEquals(ts.check("ghi@test4.com"), true); }); 今回ほしいのは後方一致と完全一致でしたが、ついでに前方一致も作っておくことにします。(よくばりすぎに注意!)

2. テストが通るように実装する
export class IDChecker { constructor(list) { this.list = list; } check(s) { for (const item of this.list) { if (item.startsWith("*")) { if (s.endsWith(item.substring(1))) return true; } else if (item.endsWith("*")) { if (s.startsWith(item.substring(0, item.length - 1))) return true; } else if (item == s) { return true; } } return false; } } 割と簡単ですが、コンパクトにテストできるの大事!

3. AIにドキュメントやロゴを作ってもらいチェック!

「code4fukui/IDChecker」

できあがり!
ついでに英語ドキュメントもできちゃいます!

つくろう、OSS、オープンソースソフトウェア!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS