JSer.info #627 - Flow v0.197.0がリリースされました。
Flow v0.197.0ではLocal Type Inferenceという機能がopt-inで導入されています。
Flowは、強い型推論エンジンを持っていましたが、Type-Firstなアーキテクチャへと移行しています。
そのため、依然と比べると明示的な型付けが必要となるケースは増えますが、安全性やバグが減ります。
- Clarity on Flow’s Direction and Open Source Engagement | by Vladan Djeric | Flow | Medium
- Types-First: A Scalable New Architecture for Flow | by Panagiotis Vekris | Flow | Medium
Local Type Inferenceもこのアーキテクチャの変更の一環のようです。
Safe Data Fetching in Modern JavaScriptという記事では、Fetch APIを安全に使う場合に考慮するべきことについて書かれています。
Fetch APIでは4xx系のエラーが発生しても、結果のPromiseがRejectされるわけではありません。
この記事では、Axiosライクなエラーハンドリング、JSONをPOSTするときのハマりどころ、Fetchのラッパーについて書かれています。
JSer.info を始めてから12年が経ちました 🎉
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
rimraf/CHANGELOG.md at main · isaacs/rimraf
github.com/isaacs/rimraf/blob/main/CHANGELOG.md#v40
rimraf 4.0リリース。
globサポートを削除、Promiseを返すように変更、Node 14未満のサポート終了、TypeScriptでの書き直し。
またCJSとESMの両方に対応し、Windowsでのパフォーマンスの改善など
Release v0.17.0 · evanw/esbuild
github.com/evanw/esbuild/releases/tag/v0.17.0
esbuild v0.17.0リリース。
incremental buildに関する処理をcontext
APIに移動。
watch
とserve
を同時に利用できるように、またServer Send Eventを使ったLive Reloadに対応、開発サーバがHTTPSに対応など
Release v0.197.0 · facebook/flow
github.com/facebook/flow/releases/tag/v0.197.0
Flow v0.197.0リリース。
Local Type Inferenceをopt-inで利用できるように。
moon v0.22 - New pipeline, hashing, and caching, with Turborepo migration | moon
monorepo管理ツールのmoon 0.22リリース。
パイプラインの並列性を制御できるように、プロジェクトグラフのキャッシュと依存のインストールミスが減るように。
Turborepoからのマイグレーションコマンドを追加、Bunのサポートなど
Firefox 109.0, See All New Features, Updates and Fixes
www.mozilla.org/en-US/firefox/109.0/releasenotes/
Firefox 109リリース。
拡張機能がManifest V3に対応、scrolled
イベントのサポートなど
アーティクル
Safe Data Fetching in Modern JavaScript
www.builder.io/blog/safe-data-fetching
Fetch APIについての記事。
Fetch APIのエラーハンドリング、Axiosライクなエラーハンドリング、JSONをPOSTするときのハマりどころ、Fetchのラッパーについて
`*.d.ts` ファイルをコミットする前に知ってほしい4つのこと
zenn.dev/qnighy/articles/9a6a0041f2a1aa
TypeScriptの.d.ts
をソースコードとして含める必要がないケースについて。
また、含める場合にtsconfigのtypeRoot
やtypes
は使わずに、コードからimportする方法やincludes
を使う方法について
ソフトウェア、ツール、ライブラリ関係
giusepperaso/structura.js: A very fast and lightweight Typescript library to create immutable states with a mutable syntax
github.com/GiuseppeRaso/structura.js
ImmerライクなImmutable処理のAPIを提供するライブラリ。
FreezeをTypeScriptの型で表現することによって、オーバヘッドを減らしている。
LyraSearch/lyra: 🌌 Fast, in-memory, typo-tolerant, full-text search engine written in TypeScript.
TypeScriptで書かれた全文検索エンジン
azu/eslint-cjs-to-esm: ESLint wrapper for migration from CJS to ESM.
github.com/azu/eslint-cjs-to-esm
CommonJSからESMへのマイグレーションを補助するツール。
ESLintをラップしていて、CJS to ESMを扱うルールをビルトインしている。
importしてるパスへの.js
の追加やrequire
/exports
などのCJSでしか使えない機能の禁止など
tsmodule/tsmodule: TypeScript to ES Module loader and compiler.
TypeScriptでESMなパッケージを開発するツールキット
shuding/react-wrap-balancer: Simple React Component That Makes Titles More Readable
github.com/shuding/react-wrap-balancer
タイトル文字列の折り返しを読みやすくするためのReactコンポーネント
azu/tsconfig-to-dual-package: Node.js dual package tool that add package.json to tsconfig's `outDir`
github.com/azu/tsconfig-to-dual-package
TypeScriptでCJSとESMのDual packageを作成するためのツール。
tsc
のビルド結果があるディレクトリに対して、CJSとESMに対応したpackage.json
を追加することでDual packageを作成する
書籍関係
改訂3版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで:書籍案内|技術評論社
gihyo.jp/book/2023/978-4-297-13288-0
2023年2月13日発売
JavaScriptの入門書