Fork me on GitHub

2023-07-13のJS: Prisma 5.0.0、Prettier 3.0、Convert to ESM

Edit on GitHub 編集履歴を見る

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 Sponsors

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


ヘッドライン


Node v20.4.0 (Current) | Node.js

nodejs.org/en/blog/release/v20.4.0

node.js ReleaseNote

Node.js v20.4.0リリース。
node:testがTimerのMockをサポート、ECMAScript Stage 3のExplicit Resource Management(using)のサポートなど


Bun v0.6.13 | Bun Blog

bun.sh/blog/bun-v0.6.13

Bun ReleaseNote

Bun v0.6.13リリース。
bun:testがDateのmockに対応、Buffer.toString("base64")のパフォーマンス改善、node:tlsnode:netの互換性の改善。
Buffer.isUtf8()isAcii()の実装、WebSocketクライアントのバグ修正など


Prettier 3.0: Hello, ECMAScript Modules! · Prettier

prettier.io/blog/2023/07/05/3.0.0.html

JavaScript Tools ReleaseNote

Prettier 3.0リリース。
Markdownで日本語/中国語と英語の間にスペースを入れないように変更、CJKの禁則処理に対応。
プラグインで非同期パーサをサポート、設定ファイルでESMをサポート、trailingCommaのデフォルト値をallに変更など


Announcing typescript-eslint v6 | typescript-eslint

typescript-eslint.io/blog/announcing-typescript-eslint-v6/

TypeScript ESLint ReleaseNote

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/

JavaScript Rust ReleaseNote

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

JavaScript node.js database library ReleaseNote

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

CSS JavaScript alib ReleaseNote

styled-components v6.0.0リリース。
Node.js 14のサポート終了、TypeScriptでの書き直し、ベンダープレフィックスをデフォルトでは省略するように変更、stylis v4へアップデートなど


Deno 1.35: A fast and convenient way to build web servers

deno.com/blog/v1.35

deno ReleaseNote

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

JavaScript WebAssembly news

Shopifyによって作成されたJavaScriptを WebAssembly(JS + QuickJS)にコンパイルするJavyがBytecode Allianceのホストプロジェクトとなった。


アーティクル


Breaking Up with SVG-in-JS in 2023 | Jacob Groß | kurtextrem.de

kurtextrem.de/posts/svg-in-js

JavaScript SVG article performance

SVGをJSのbundleに含める問題とパフォーマンスについて


アニメーションの実装が劇的に簡単になるFLIPテクニック

katashin.info/posts/flip-animation/

JavaScript CSS animation article

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 debug testing Tools article

Chrome DevToolsのRecord and Replay機能について。
操作を記録して再生できる。再生に対してブレークポイントを設定したり、内容を編集、拡張機能を使ってCypressなどのテストフレームワーク向けに出力したりできる。


CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか | Web Scratch

efcl.info/2023/07/05/convert-to-esm/

JavaScript node.js ECMAScript CommonJS article

Node.jsにおけるESMへの移行は、依存関係の読み込み側に影響を与えるため、ボトムアップではなくトップダウンで段階的な移行ができるという話。
依存ツリーの作成や段階的な移行をするための境界線の見つけ方、CJSからESMをインポートする回避策などについて


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


Scroll-driven Animations

scroll-driven-animations.style/

JavaScript CSS animation document

Scroll-driven animationsのデモやユースケースについてまとめたサイト


mdx-editor/editor: An open source rich text React component for markdown editing

github.com/mdx-editor/editor

Markdown JavaScript library

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 book OpenSource

TypeScriptの入門書


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