JSer.info #651 - ORMであるPrisma 5.0.0がリリースされました。
実験的な機能だったjsonProtocol
/fieldReference
/extendedWhereUnique
をStableに変更しています。
Wire ProtocolをJSON Protocolに変更することで、Cold Startの時間が大きく改善されています。
破壊的な変更としてNode.js 14のサポート終了、暗黙的に配列とみなす"array shortcuts"のサポートを削除、非推奨のオプションの削除なども含まれています。
次のページで、アップデート方法が公開されています。
Prettier 3.0がリリースされました。
Markdownで日本語/中国語 ⇔ 英語の間にスペースを入れないように変更、CJKの禁則処理に対応などの変更が含まれています。
trailingComma
のデフォルト値をall
に変更やbabel
パーサーでのFlow構文のサポートを削除するといった変更も含まれています。
その他にも内部的にESMにも対応するためにAPIの変更、プラグインで非同期パーサをサポート、設定ファイルでESMをサポートなども追加されています。
CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップかという記事では、SecretlintのESM移行を例にどのようにパッケージをCommonJSからES Modulesへ移行するかについて書かれています。
Node.jsではESMからCJSは読み込める互換レイヤーがあるため、依存関係の根本からトップダウンでESMへと移行することで、パッケージを少しずつ移行できることについて書かれています。
この記事ではいわゆるPure ESM package(ESMのみのサポート)の方針についてでしたが、CJSとESMを両方サポートするDual Packageという手法もあります。
Dual Packageの主な手法については次のIssueにまとめてあります。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Node v20.4.0 (Current) | Node.js
nodejs.org/en/blog/release/v20.4.0
Node.js v20.4.0リリース。
node:test
がTimerのMockをサポート、ECMAScript Stage 3のExplicit Resource Management(using
)のサポートなど
Bun v0.6.13 | Bun Blog
Bun v0.6.13リリース。
bun:test
がDateのmockに対応、Buffer.toString("base64")
のパフォーマンス改善、node:tls
とnode:net
の互換性の改善。
Buffer.isUtf8()
とisAcii()
の実装、WebSocket
クライアントのバグ修正など
Prettier 3.0: Hello, ECMAScript Modules! · Prettier
prettier.io/blog/2023/07/05/3.0.0.html
Prettier 3.0リリース。
Markdownで日本語/中国語と英語の間にスペースを入れないように変更、CJKの禁則処理に対応。
プラグインで非同期パーサをサポート、設定ファイルでESMをサポート、trailingComma
のデフォルト値をall
に変更など
Announcing typescript-eslint v6 | typescript-eslint
typescript-eslint.io/blog/announcing-typescript-eslint-v6/
typescript-eslint 6.0.0リリース。
プリセットルールをグループに分けて、strict-type-checked
/stylistic
/stylistic-type-checked
を追加、プリセットを組み合わせて設定するように変更。
非推奨となったルールの削除、Node.js 14のサポート終了、ルールの設定変更など。
開発者向けのAPIやASTの変更も含まれる。
Boa release v0.17 - Boa
boajs.dev/posts/2023-07-08-boa-release-17/
Rustで書かれたJavaScriptパーサ/コンパイラーのBoa 0.17リリース。
ECMAScript Modulesに対応、test262のダッシュボードを追加。
定数畳み込み、Hidden Classの最適化に対応。
--debug-object
フラグの追加、組み込みオブジェクトラッパーの追加、Intlのサポートなど
Release 5.0.0 · prisma/prisma
github.com/prisma/prisma/releases/tag/5.0.0
Prisma 5.0.0リリース。
実験的な機能だったjsonProtocol
/fieldReference
/extendedWhereUnique
をStableに変更。
Node.js 14のサポート終了、暗黙的に配列とみなす"array shortcuts"のサポートを削除、非推奨のオプションの削除など
Release v6.0.0 · styled-components/styled-components
github.com/styled-components/styled-components/releases/tag/v6.0.0
styled-components v6.0.0リリース。
Node.js 14のサポート終了、TypeScriptでの書き直し、ベンダープレフィックスをデフォルトでは省略するように変更、stylis v4へアップデートなど
Deno 1.35: A fast and convenient way to build web servers
Deno v1.35リリース。
Deno.serve()
をStableに変更、Noe.jsとの互換性改善。
標準モジュールのsemver
の書き直し、html
モジュールの追加、http/user_agent
の追加など
Bytecode Alliance — Welcoming Javy: A new hosted project
bytecodealliance.org/articles/javy-hosted-project
Shopifyによって作成されたJavaScriptを WebAssembly(JS + QuickJS)にコンパイルするJavyがBytecode Allianceのホストプロジェクトとなった。
アーティクル
Breaking Up with SVG-in-JS in 2023 | Jacob Groß | kurtextrem.de
SVGをJSのbundleに含める問題とパフォーマンスについて
アニメーションの実装が劇的に簡単になるFLIPテクニック
katashin.info/posts/flip-animation/
FLIP(First, Last, Invert, Play)というアニメーションのテクニックについて。
複雑な座標計算をせずにアニメーションを実装する方法。
DevTools Tips: Record and replay user flows with the Recorder - Chrome Developers
developer.chrome.com/en/blog/devtools-tips-4/
Chrome DevToolsのRecord and Replay機能について。
操作を記録して再生できる。再生に対してブレークポイントを設定したり、内容を編集、拡張機能を使ってCypressなどのテストフレームワーク向けに出力したりできる。
CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか | Web Scratch
efcl.info/2023/07/05/convert-to-esm/
Node.jsにおけるESMへの移行は、依存関係の読み込み側に影響を与えるため、ボトムアップではなくトップダウンで段階的な移行ができるという話。
依存ツリーの作成や段階的な移行をするための境界線の見つけ方、CJSからESMをインポートする回避策などについて
ソフトウェア、ツール、ライブラリ関係
Scroll-driven Animations
scroll-driven-animations.style/
Scroll-driven animationsのデモやユースケースについてまとめたサイト
mdx-editor/editor: An open source rich text React component for markdown editing
MarkdownリッチエディタのReactコンポーネント。
書籍関係
gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.
github.com/gibbok/typescript-book
TypeScriptの入門書