2019-11-23 bouzuya/beater-matcher 0.1.0 をつくった / 相楽園に行った
bouzuya/beater-matcher 0.1.0 をつくった。
テスト用の matcher を提供する npm package 。たとえば { abc: anyNumber() }
という matcher が { abc: 123 }
に match する。そういうもの。 chancancode/json_expressions かな。ああいうのが TypeScript でほしくて試しにつくってみた。既にありそうだけどあまり探していない。
match(value: unknown, matcher: unknown): boolean
を提供している。基本的に値がそのまま matcher として機能するようにしている。なので↓がなりたつ。
import assert from 'assert';
import { match } from 'beater-matcher';
const value = /* ... */;
assert(match(value, value));
↑で挙げた anyNumber()
のような事前に定義している matcher のほか defineMatcher()
で独自に定義できる。
import assert from 'assert';
import { defineMatcher, match } from 'beater-matcher';
const matcher = defineMatcher(
(value: unknown): boolean => {
return typeof value === 'string' && value.startsWith('ABC');
}
);
assert(match('ABCDEF', matcher));
使いやすいかどうかはまだ使っていないので分からない。
相楽園に行った。 2017-05-27 にも行った。前回は緑だったが今回は赤だった。紅葉の季節だ。菊の展示をしていた。相変わらず狭い空間にぎゅっと詰め込んであった。体力がないので助かる。
『 IT 』を観た。