JSer.info #566 - Node.jsの開発版である17.1.0がリリースされました。
現在ECMAScript ProposalのStage 3であるImport Assertionsを使ったJSONのimportがサポートされています。
import fooData from './foo.json' assert { type: 'json' };
Lighthouse 9.0.0がリリースされました。
Node 12のサポート終了、意味がなくなったauditが削除されています。
また、ページ遷移を含むAuditをとるAudit User Flowsをプレビュー機能としてサポートしています。
Reconstructing TypeScript, part 0: intro and backgroundという記事では、TypeScriptを使ってTypeScriptのような言語の型チェッカーを実装していく連載となっています。
Union types, Intersection types, narrowingなどTypeScript同じような型の仕様に対する型チェッカーを実装していく内容となっています。
実装としては、Babelを使ったTypeScriptのコードをパースして得たASTと型情報をもとに、その型情報をチェックしていく実装を書いていく流れになっています。
実際に動く型チェッカーを実装していく内容になっているので、型の実装に興味がある人は読むと良さそうです。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Node v17.1.0 (Current) | Node.js
nodejs.org/uk/blog/release/v17.1.0/
Node.js 17.1.0リリース。
ES ModulesのImport AssertionによるJSONのimportができるように。
import fooData from './foo.json' assert { type: 'json' };
Release eslint-config-airbnb-v19.0.0 · airbnb/javascript
github.com/airbnb/javascript/releases/tag/eslint-config-airbnb-v19.0.0
eslint-config-airbnb 19.0.0リリース。
ESLint 8のサポート
Release Notes for Safari Technology Preview 135 | WebKit
webkit.org/blog/12040/release-notes-for-safari-technology-preview-135/
Safari Technology Preview 135リリース。
CSSのaccent-color
のサポート、flex-basis: content
のサポート。
loading
属性を使った画像の遅延ロードをサポート。
120Hzのディスプレイでは120Hzでスクロールアニメーションが動くように
wrangler 2.0 — a new developer experience for Cloudflare Workers
blog.cloudflare.com/wrangler-v2-beta/
Cloudflare WorkersのCLIであるwrangler 2.0リリース。
wrangler dev <filename>
で設定なしでデプロイ、開発できるように、--public <path>
での静的アセットの指定をサポート。
--local
でMiniflareベースのオフラインで動くローカルモードをサポート
Release 0.6.0 – Info sections, bailouts, state change locations, open in editor and more · lahmatiy/react-render-tracker
github.com/lahmatiy/react-render-tracker/releases/v0.6.0
Reactの意図しないレンダリングを見つけるデバッグツールのreact-render-tracker 0.6.0リリース。
Electron 16.0.0 | Electron
www.electronjs.org/blog/electron-16-0
Electron 16.0.0リリース。
Chromium 96、Node.js 16.9.1、V8 9.6へアップデート。
WebHID APIのサポート、native modulesをビルドするためにnode-gypを使っているプロジェクトでは--force-process-config
が必要となる変更になど
Announcing Serverless Framework v3 Beta
www.serverless.com/blog/serverless-framework-v3-beta
Serverless Framework v3 Betaリリース。
serverless
コマンドの出力の改善、--verbose
のサポート、非推奨だったAPIの削除など
Release v9.0.0 · GoogleChrome/lighthouse
github.com/GoogleChrome/lighthouse/releases/tag/v9.0.0
Lighthouse v9.0.0リリース。
Node 12のサポート終了、いくつかのauditを削除。
ページ遷移を含むAuditをとるAudit User Flowsをサポートなど
アーティクル
Reconstructing TypeScript, part 0: intro and background
jaked.org/blog/2021-09-07-Reconstructing-TypeScript-part-0
TypeScriptの型チェッカーを実装しながら、TypeScriptの型について学ぶ連載記事。
パーサにはBabelを使い、パースしたASTと型情報をチェックする型チェッカーを実装していく
Mastering TypeScript Template Literal Types | by Jose Granja | Nov, 2021 | Better Programming
betterprogramming.pub/mastering-typescript-template-literal-types-f4131a94ffb1
Typescript 4.1 で追加されたTemplate Literal Typeについての解説記事。
基本的な使い方、制限、Utility Type、infer
と組み合わせた型を推論する書き方やMapped Typesとの組み合わせについてなど
SharedArrayBuffer と過渡期な cross-origin isolation の話
blog.agektmr.com/2021/11/cross-origin-isolation.html
SharedArrayBuffer
や高分解能Timerを利用するためにはcross origin isolationな状態が必要となる。
cross origin isolationな状態にするための条件であるHTTPヘッダについての解説。
Copy CSS as JavaScript - Chrome DevTools - Dev Tips
umaar.com/dev-tips/249-copy-css-as-js/
Chromeの開発者ツールでCSSプロパティをJavaScriptのCamelCaseなプロパティをもつオブジェクトとしてコピーできるようになった。
CSSパネルからCSS in JSのObejct Stylesでコピーできる
Less Absolute Positioning With Modern CSS - Ahmad Shadeed
ishadeed.com/article/less-absolute-positioning-modern-css/
CSSのposition: absolute
を使わなくても同等の表現ができるという紹介。
Gridを使った要素の重ね、order
を使った表示順の変更、aspect-ratio
を使った画像のアスペクト比の指定など。
またposition: absolute
を使った方が良いユースケースについて
サイト、サービス、ドキュメント
Bundle Scanner - Identify NPM libraries included in Javascript files
指定したURLでどのようなJavaScriptファイルがあり、そのJavaScriptファイルから利用されているnpmモジュールを抽出するツール。
ソフトウェア、ツール、ライブラリ関係
niksy/node-stdlib-browser: Node standard library for browser.
github.com/niksy/node-stdlib-browser
Node.js Core Modulesのブラウザ向けpolyfillをまとめたライブラリ。
koskimas/kysely: A type-safe typescript SQL query builder
TypeScriptで書かれたSQLクエリビルダー。
PostgreSQLとMySQLに対応したクエリの作成と実行ができる。
Schemaを型として定義し、その型を元にクエリを構築できる。
gajus/liqe: Lightweight and performant Lucene-like parser and search engine.
検索演算子のパーサライブラリ