先日リリースされた「Tempo」が、全く新しいJavaScriptの日付/時刻ライブラリとして非常に注目を集めている。
JavaScriptの日付ライブラリにはmoment.js、day.js、date-fnsなどがあるが、これらと異なるのは、ネイティブのDateオブジェクトを直接対象としていることである。
従来の日付ライブラリは、独自の日付プリミティブを提供することが一般的であったが、TempoではネイティブのJavaScript Dateオブジェクトと直接連携し、Intl.DateTimeFormatを活用することで、タイムゾーンやロケールのファーストクラスサポートを提供するだけでなく、ライブラリのサイズ削減と高速性を実現している。
以下が実際のコード例だ。
import { format, parse } from "@formkit/tempo"
// Dateオブジェクトをフォーマット
let readable = format(new Date(), "full"); // 「2024年2月26日月曜日」のように表示される
readable = format(new Date(), {time: "full"}) // 「10時32分00秒 +0900」のように表示される
readable = format(new Date(), "YYYY-MM-DD") // 「2024-02-26」のように表示される
// 文字列からDateオブジェクトを復元
parse(readable, "full"); // Date: 2024-02-26T00:00:00.000Z
公開されて間もないにも関わらず、既に1,500近いGitHubスターを集めており、多くの注目を集めている。
JavaScript / TypeScript開発者にとっては、絶対注目すべきライブラリと言って良いだろう。
From hostile mobs to treacherous terrain, https://infinitecraftonline.io players must navigate obstacles and overcome adversaries to thrive in this dynamic environment.