Fork me on GitHub

2023-10-16のJS: Lit 3、Chrome 118、Zodの作り方

Edit on GitHub 編集履歴を見る

JSer.info #665 - Web ComponentsライブラリであるLit 3.0がリリースされました。

Lit 3では、IE11のサポート終了、最小の実行環境をES2021をサポートしてるブラウザへ変更が行われています。
Lit 2.0で非推奨となったAPIの削除、Stage 3のDecoratorの対応なども行われています。
また、新しいLitテンプレートコンパイラーの公開、Preact Signalsを統合するパッケージも公開されています。


Chrome 118がリリースされました。

Chrome 118ではCSSの@scopeルールのサポートされています。

また、Media QueryでJavaScriptが有効かを判定するscriptingの追加、DevToolsの"Sources"パネルの改善、zstdのContent-Encodingをサポートなども行われています。


Write your own Zodという記事では、Zodのようなスキーマベースのバリデーターをどのように作るかを解説しています。

mini Zodと呼ぶ小さなZodのクローンをながら、スキーマオブジェクトから型をInferする方法、バリデーションの実装方法について解説しています。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Lit Launch Day: Lit 3.0, Labs graduations, a compiler and more! – Lit

lit.dev/blog/2023-10-10-lit-3.0/

JavaScript UI library ReleaseNote

Lit 3.0リリース。
IE11のサポート終了、最小の実行環境をES2021をサポートしてるブラウザへ変更。
Lit 2.0で非推奨となったAPIの削除、Stage 3のDecoratorの対応など。
また、新しいLitテンプレートコンパイラーの公開、Preact Signalsを統合するパッケージも公開されている。


Bun v1.0.5 | Bun Blog

bun.sh/blog/bun-v1.0.5

Bun ReleaseNote

Bun v1.0.5リリース。
Fetchのメモリリークを修正、bun run --if-presentをサポート、package-lock.jsonbun.lockbへ変換できるbun pm migrateコマンドを追加。
peerDependenciesを自動でインストールするように変更など


Release v2.10.0 · parcel-bundler/parcel

github.com/parcel-bundler/parcel/releases/tag/v2.10.0

parcel ReleaseNote

Parcel v2.10.0リリース。
遅延コンパイルする対象を指定できる--lazy [glob]--lazy-excludesを追加。
Rustモジュールを一つのパッケージにマージすることで重複Cratesを削除してサイズの削減、また並列処理の効率化によるパフォーマンス改善など。


Fresh 1.5: Partials, client side navigation and more

deno.com/blog/fresh-1.5

deno ReleaseNote library

Fresh 1.5リリース。
ページ遷移に該当領域のフラグメントだけを取得更新できる<Partial>の追加。
現在のパスと一致する<a>要素にdata-currentを追加、カスタムビルドターゲットを指定できるbuild.targetオプションを追加。
esbuildを使ったbundleファイルの分析をするメタファイルの生成をサポート、エラーオーバーレイのサポートなど


Bun v1.0.6 | Bun Blog

bun.sh/blog/bun-v1.0.6

Bun yarn npm ReleaseNote

Bun v1.0.6リリース。
npmのoverridesフィールド、yarnのresolutionsフィールドをサポート。


Electron 27.0.0 | Electron

www.electronjs.org/blog/electron-27-0

Electron ReleaseNote

Electron 27.0.0リリース。
macOS 10.13/10.14のサポート終了、ipcRenderer.sendTo() APIを非推奨化など


Astro 3.3: Picture component | Astro

astro.build/blog/astro-330/

astro ReleaseNote

Astro 3.3リリース。
<picture />コンポーネントの追加、シンタックスハイライトに使うライブラリをshikiからshikijiに変更など


Vite (Unstable) (dev branch) | Remix

remix.run/docs/en/dev/future/vite

Remix vite document

RemixのViteサポート。
ViteのプラグインとしてRemixが動作するようになる。


Release v4.1.0 · rollup/rollup

github.com/rollup/rollup/releases/tag/v4.1.0

rollup ReleaseNote

Rollup v4.1.0リリース。
オブジェクトが持つオプションをビットフラグで管理しメモリ消費量を削減する改善が含まれる。


New in Chrome 118 - Chrome for Developers

developer.chrome.com/en/blog/new-in-chrome-118/

Chrome ReleaseNote

Chrome 118の変更点について。
CSSの@scopeルールのサポート、Media QueryでJavaScriptが有効かを判定するscriptingの追加。
DevToolsの"Sources"パネルの改善、zstdのContent-Encodingをサポートなど。


アーティクル


Limit the reach of your selectors with the CSS `@scope` at-rule - Chrome for Developers

developer.chrome.com/articles/at-scope/

CSS article

CSS @scopeについての記事。
@scopeによってセレクタの範囲を制限できるようになり、スコープは特異性には影響を与えない。
また、@scope { }とルートを指定せずに指定することscoped styleを扱うprelude-less @scopeについてなど


What's New in DevTools (Chrome 118) - Chrome for Developers

developer.chrome.com/blog/new-in-devtools-118/

Chrome debug article

Chrome 118の開発者ツールの変更点について。
local overridesの改善、コード検索の改善、Sourcesパネルの改善、Lighthouse 11へのアップデートなど


Write your own Zod

zackoverflow.dev/writing/write-your-own-zod

TypeScript article

Zodのようなスキーマバリデーターを作る方法について。
Zodのようなスキーマオブジェクトから型をInferする方法、バリデーションの実装などについて。


Flat config rollout plans - ESLint - Pluggable JavaScript Linter

eslint.org/blog/2023/10/flat-config-rollout-plans/

ESLint article

ESLintのConfigファイルの今後について。
ESLintでは、ESLint 9でeslint.config.jsのFlat Configがデフォルトとなり、.eslintrc.*の形式は非推奨となる。
.eslinrc.*のサポートはESLint 10で削除される予定となっている。


ソフトウェア、ツール、ライブラリ関係


react-hookz/web: React hooks done right, for browser and SSR.

github.com/react-hookz/web

React library

サーバサイドレンダリング時も動作するReact Hooksのコレクションライブラリ。
react-useの後継的なライブラリとなることを意識して作られている


elbywan/zap: Another [insert blazing fast synonyms] JavaScript package manager

github.com/elbywan/zap

npm package console Tools

Crystal言語で書かれたnpmパッケージマネージャー。


この記事へ修正リクエストをする
JSer.info Slackに参加する