JSer.info #581 - Redux Toolkit 1.8.0がリリースされました。
1.8.0では、新しい非同期MiddlewareとしてcreateListenerMiddleware
が追加されています。
createListenerMiddleware
はredux-sagaやredux-observableなど同じく非同期処理を扱うためのMiddlewareです。
シンプルなdispatch
やgetState
などのAPIや、redux-sagaをインスパイアしたtake
やTemporalをインスパイアしたcondition
など複雑なタスクを扱うAPIも持っています。
次の動画で、このcreateListenerMiddleware
がどのように作られたのかを紹介しています。
- Redux Insights: the Redux Toolkit "action listener" middleware - YouTube
- New experimental "action listener middleware" package available · Discussion #1648 · reduxjs/redux-toolkit
Node.js 17.6.0がリリースされました。
Node v17.5.0でStreamに対して現在Stage 2のECMAScript ProposalであるIterator Helpersが実装されていました。
しかし、仕様に準拠した実装をした場合にmongooseなどのモジュールが動かなくなるリグレッションが発生したため、仕様への準拠を一部revertしています。
具体的にはIterator Helperの仕様では、map
などのメソッドは{ [[Writable]]: false, [[Enumerable]]: false, [[Configurable]]: false }
で実装されることなっています。
この場合、次のようにStreamのprototype.map
を上書きしようとする、Writable
がfalse
であるため、例外が発生してできません。
// [Writable]]: falseでは書き込めない
ReadableStream.prototype.map = function(fn) { // 例外が発生する
// ..
};
mongooseなどで、このような代入が存在したため、[[Writable]]: false
を[[Writable]]: true
にする変更(revert)がNode.js 17.6.0に含まれています。(BREAKING CHANGEとなってしまったため)
- fix Node.js 17.5 compatibility by benjamingr · Pull Request #11381 · Automattic/mongoose
- mongoose側での修正
A Complete Guide to CSS Cascade Layers | CSS-Tricks - CSS-Tricksという記事では、Chrome/Edge 99+、Firefox 97+、Safari Technology Preview 133で実装されている CSS Cascade Layers について紹介されています。
CSSでは、UA、!important
、詳細度などによってどのスタイルが当たるかのCascadingの仕様があります。
この仕様にCascade Layersというものが追加され、各ブラウザでの実装が進んでいます。
この記事では、Cascade Layersの基本的な使い方、Important layers、Layerの優先度、sub layerについてなど書かれています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Release v6.32.0 · pnpm/pnpm
github.com/pnpm/pnpm/releases/tag/v6.32.0
pnpm 6.32.0リリース。
インストールスクリプトを実行できるパッケージを指定するonlyBuiltDependencies
の追加、overrides
フィールドがpnpm add
に対して反映されるようになるなど
Astro 0.23 Release Notes | Astro
Astro 0.23リリース。
HTML以外のビルドに対応、set:html
とset:text
ディレクティブの追加、PUBLIC_
prefixの環境変数はフロントエンドへ公開するように変更。
また、次のバージョンではコンポーネント内のテキストを自動的にHTMLエスケープするよう変更予定。
Node v17.6.0 (Current) | Node.js
nodejs.org/en/blog/release/v17.6.0/
Node.js 17.6.0リリース。
StreamにIterator helperのmap
などをメソッドを追加すると壊れるモジュールがあったため、仕様への準拠を一時的にrevert。
--experimental-https-modules
のフラグ付きでHTTP URLをESMモジュールとしてロードできるように。
またprocess.on("multipleResolves", ...)
がDeprecatedとなった。
Release v1.8.0 · reduxjs/redux-toolkit
reduxjs/redux-toolkit/releases/tag/v1.8.0
Redux Toolkit v1.8.0-rc.0リリース。
新しい非同期MiddlewareとしてcreateListenerMiddleware
を追加、configureStore
の型定義の改善など
アーティクル
What's New In DevTools (Chrome 99) - Chrome Developers
developer.chrome.com/blog/new-in-devtools-99/
Chrome 99の開発者ツールの変更点について。
WebSocketsのThrottilingに対応、Reporting APIのパネルを追加、ANSI escape codeを使ったコンソールログのスタイリングをサポートなど
How to publish Deno modules to NPM
Denoで書かれたライブラリをNode.js向けにnpmへ公開する方法について。
HTTPフレームワークであるoakをdntを使ってNode.jsでも動かすように変換して公開した方法について
- denoland/dnt: Deno to npm package build tool.
- feat: add experimental support for Node.js by kitsonk · Pull Request #479 · oakserver/oak
A Complete Guide to CSS Cascade Layers | CSS-Tricks - CSS-Tricks
css-tricks.com/css-cascade-layers/
CSS Cascade Layersの解説記事。
Cascade Layersの基本的な使い方、Important layers、Layerの優先度、sub layerについてなど
サイト、サービス、ドキュメント
microsoft/TypeScript-Compiler-Notes: A repo containing notes about the TypeScript Compiler codebase
github.com/microsoft/TypeScript-Compiler-Notes
TypeScriptのコンパイラーについてのメモをまとめたリポジトリ。
重要な変更のPRのまとめ、コンパイルプロセスの解説やContributeする方法ついてなど書かれている
ソフトウェア、ツール、ライブラリ関係
JoshuaKGoldberg/TypeStat: Converts JavaScript to TypeScript and TypeScript to better TypeScript.
github.com/JoshuaKGoldberg/TypeStat
JavaScriptのコードにTypeScriptの型をつけてTypeScriptのコードベースに変換するツール
xataio/screenshot: A zero-dependency browser-native way to take screenshots powered by the native web MediaDevices API.
MediaDevices.getDisplayMedia
を使ったスクリーンショットライブラリ。
画面の表示そのものをキャプチャ画像として取得できる
leafac/caxa: 📦 Package Node.js applications into executable binaries 📦
Node.jsアプリケーションを単一の実行バイナリにパッケージングするツール。
Node.jsとアプリを含む自己解凍型アーカイブとして扱うことで、fs
などへのpatchをせずにパッケージングしている
書籍関係
vinodotdev/node-to-rust
github.com/vinodotdev/node-to-rust/
JavaScriptユーザ向けのRust入門書