Frontend Weekly 2024-03-22
require(esm) in Node.js
--experimental-require-module
フラグで、CommonJS から ESM をrequire
できる仕組みが入った。 Top-Level await の非同期をスコープから外すことで実装が進んだ。「ESM は非同期で、CJS は同期であるため、CJS は ESM をロードできない」という神話があった。
おもしろポイント:“昨年、メモリ リークを修正するためにV8 コードを参照していたとき、ESM 自体が実際には無条件に非同期になるように設計されていないことが偶然わかりました。”
const esm = require("index.mjs")
Node.js に入る新しい CJS から ESM への読み込み方法の紹介 - hiroppy’s site
Best Practices for Writing Tests with React Testing Library
CSS から React コンポーネントを生成するライブラリ。data 属性や@scope を利用する仕組み。
エディター付きの React 開発環境をブラウザーだけで実装した話
- 型テスト:TypeScript Compiler API
- ユニットテスト:testing-library/react + jest-lite
- リント:BiomeJS on Worker + ComLink
- プレビュー:Service Worker をブラウザとサーバーのプロキシとして利用
- React などのインポートの省略:importmap
- サーバーを介さないトランスパイル:IndexedDB を使って SW 側でコードを取得、Wasm でトランスパイル
- SW 上での TS トランスパイル:swc/wasm-web
仲間
https://github.com/matsuri-tech/generate-release-notes-body-based-on-pull-requests
Conventional Commits と CHANGELOG の自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ
Next.js AI Chatbot 2.0
Next.js AI Chatbot 2.0 – Vercel
一般的なものが多いが、satisfies never は知らない人が多そう。Utility type を配布するパッケージを利用するならともかく ts-reset を使うのには懐疑的。
TypeScript で知ってコードの安全性が上がった tips 集
satisfies never 以外にも引数に never を取る関数などでも表現できる。
const assertNever = (x: never): never => { throw new Error("Unreachable : " + x);};
const selectType = (type: Type) => { switch (type) { case "File": return "file"; // ... default: return assertNever(type); //throw new Error(type satisfies never) }};
あまり目新しいものはないが、あまり CSS に興味がない人は見ておくと学びがあるかも。currentColor や aspect-ratio などはともかく inset や-inline/-margin などは linter に怒られて学んでいくといいと思う。
あなたが教わってるその CSS テクニックはもう古い | TAKLOG
商用利用無料のアイコンを VSCode 上で検索して SVG または JSX コードをはける拡張機能
Iconbuddy — 200K+ open source free svg icons
JavaScript の書き方による最適化
- 昔ながらの記述や Linter に怒られそうな記述の方がはやいことが多い。
- ただ実行環境側で新しい記述の最適化も随時行われており、必ずしも絶対的にそうではなく、当然実行環境にも拠る。
- またトランスパイルで記述を変更させるという手段も取られることがある。
- 現状だとコミュニティとしては、パフォーマンスより可読性などが優先されることが多い。
- 個人的にもパフォーマンスが気になるところだけ、チューニングとしてやれば良い派。
Introducing deployctl, the command line interface for Deno Deploy
Redis の次期ライセンスが BSD から SSPLv1 または RSALv2 に。商用利用に Redis 社とのライセンス契約が必要になる。
Redis、クラウドベンダなどによる商用サービスを制限するライセンス変更を発表。今後は Redis 社とのライセンス契約が必須に
理由として、Redis の商用的な売り上げの大半が、Redis 社の投資やオープンソースコミュニティをコモディティ化してしまった最大手のクラウドサービスプロバイダーを通じて行われていることを上げている。
合わせて読みたい。”RIP Redis:Garantia Data 社はいかにしてオープンソース史上最大の強盗を成功させたか?”
RIP Redis: How Garantia Data pulled off the biggest heist in open source history — Momento
各 JavaScript Runtime の WinterCG API 互換性テーブル
Runtime compatibility across JavaScript runtimes
COBOL が Android で動くぞ
GnuCOBOL がついに成熟。あらゆる環境でプロプライエタリな製品と争えるように | ソフトアンテナ
さくらで運用されている Publickey が DDoS 攻撃を受けどのような対策を行なったか