JavaScript Primer v6.0.0をリリースしました 🎉
jsprimer v6では、ECMAScript 2024の対応とNode.jsのユースケースを新たに増えたnode:util
のparseArgs
関数やnode:test
を使うように書き直しています。
変更のサマリ
- ErrorCause への対応 by @himanoa
- 改訂 2 版の電子版へのリンクを追加 by @azu
- Map.groupBy 静的メソッドの追加 by @azu
- Object.groupBy 静的メソッドを追加 by @azu
- Stage 2.7 を追加 by @azu
- mocha を node:test に変更する by @windchime-yk
- update to marked@14 by @azu
JavaScript Primer Sponsors
JavaScript Primer(jsprimer)では、Open Collectiveを通じてプロジェクトの更新に関わる資金を募っています。
今回のv6リリースにおいては、次の方々にご支援いただきました!
株式会社コクチョウさんは、Yearly Gold Sponsorとしてご支援いただいています。
ご支援ありがとうございます!
JavaScript Primerスポンサーについては、次のページを参照してください。
また、ご支援いただいた資金は、jsprimerにcontributionしてくれた方へ還元できるような仕組みを設計しました。
次回からは、この仕組みを回していけるようにしたいです。
JavaScript Primer v6.0.0の変更点
JavaScript Primer v6.0.0の変更点について紹介します。
ErrorCauseへの対応 by himanoa · Pull Request #1732
概要
ES2022で追加されたError
のcause
オプションは、エラーのスタックトレースを改善するために追加されました。
cause
オプションを使うことで、エラーを再度投げ直す場合に、元のエラーのスタックトレースを維持しながら新しいエラーを投げることができます。
変更されたページ
変更内容
ErrorCause
オブジェクトの説明を追加- ウェブ版のREPLをErrorCauseに対応
改訂2版の電子版へのリンクを追加 by azu · Pull Request #1755
電子版の改訂2版が公開されたので、リンクを追加しました。
Map.groupBy
静的メソッドの追加 by azu · Pull Request #1751
概要
ES2024では、配列の要素をグループ分けしたマップを作成するMap.groupBy
静的メソッドが追加されています。
Map.groupBy
静的メソッドはObject.groupBy
静的メソッドとよく似たメソッドです。
Object.groupBy
静的メソッドは配列からオブジェクトを作成するのに対して、Map.groupBy
静的メソッドは配列からマップを作成します。
Map.groupBy
静的メソッドも元々は、Array.prototype.groupToMap
メソッドという配列のメソッドとして提案されていましたが、Object.groupBy
静的メソッドに合わせる形でMap.groupBy
静的メソッドに変更されました。
変更されたページ
変更内容
Map.groupBy
静的メソッドの説明を追加
関連
Object.groupBy
静的メソッドを追加 by azu · Pull Request #1749
概要
ES2024では、配列の要素をグループ分けしたオブジェクトを作成するObject.groupBy
静的メソッドが追加されています。
配列の要素をグループ化を簡潔に書けるようになっています。
Array.prototype.groupBy
のようなArrayのメソッドではないのは、既存のprototype拡張をしていたライブラリとの競合を避けるためです。
最初は、Array.prototype.groupBy
メソッドとして提案されていましたが、既存のウェブサイトとの互換性の問題が見つかったため、Object.groupBy
静的メソッドに変更されました。
変更されたページ
変更内容
Object.groupBy
静的メソッドの説明を追加
関連
Stage 2.7を追加 by azu · Pull Request #1743
概要
ECMAScript ProposalのStage 2.7を追加しました
ブラウザが実装しはじめて見つかる問題などによりステージ2と3を行き来してしまうことがあったためです。
そのため、実装の前のテストと検証のためのステージとして2.7
が追加されました。
変更されたページ
関連
Node.js CLIのアップデート
Node.jsの標準パッケージがカバーする範囲が広がったため、Node.jsのユースケースを大幅に書き換えました。
commanderパッケージ を node:util
の parseArg
に変更 by azu · Pull Request #1757
概要
commander
パッケージは使わずに、Node.jsの標準モジュールであるnode:util
のparseArg
関数を使うように変更しています。
変更されたページ
変更内容
- Node.jsでHello World
- "Node.jsプロジェクトのセットアップ "を追加 (
package.json
の作成)
- "Node.jsプロジェクトのセットアップ "を追加 (
- コマンドライン引数を処理する
commander
をnode:util
のparseArgs
関数に変更デフォルト設定を定義する {#declare-default}
セクションは削除(defaultオプションでいいため)--gfm
の呼び方をフラグに統一(オプションと呼んでる場所があった)
- MarkdownをHTMLに変換する
npm install
の説明を移動- [コラム] node: prefix を追加
- 本文は
node:
に統一したので、逆に本文にはいらなくなった
- 本文は
関連
mochaをnode:test
に変更する by windchime-yk · Pull Request #1737
概要
テストをMochaから標準モジュールのnode:test
に変更しました
変更されたページ
変更内容
- Mochaから
node:test
に変更 - Test runnerでは、デフォルトで
test
フォルダが指定されていることも加味してnode --test
でテストを実行するように変更
update to marked@14 by azu · Pull Request #1760
概要
marked
パッケージを14
にアップデートしました。
変更されたページ
変更内容
marked@4
からmarked@14
にアップデート<h1 id=xxx>
は付与されなくなったので出力から削除- auto linkについては言及してるが、idについては言及してないのでコードのみの変更
おわりに
jsprimerでは毎年更新していけるような仕組み作りの一貫としてJavaScript Primer - Open Collectiveでの支援を募集しはじめました。サイト上へのロゴの掲載やリリースノートへのロゴの掲載などの特典を含んでいます。
また、文章の修正やコード的なコミットはいつでも歓迎しています!