Fork me on GitHub

2020-08-25のJS: TypeScript 4.0、Cypress 5.0、Electron 10.0

Edit on GitHub 編集履歴を見る

JSer.info #502 - TypeScript 4.0が正式にリリースされました。

Variadic Tuple Types、Labeled Tuple Elements、Class Propertyの型がConstructorから推論されるようになるなどの型機能の改善がされています。
また、ES2021で入る予定のLogical Operators and Assignment Expressionsがサポートされています。
その他にはcatch節のデフォルトがunknownとなるように変更され、jsxFragmentFactoryオプションのサポート、--incremental--noEmitの組み合わせをサポートが追加されています。

Babel、PreitterはTypeScript 4.0に対応したバージョンがそれぞれリリースされています。

TypeScript-ESLintについては次のIssueを参照してください。


E2EテストフレームワークのCypress 5.0がリリースされました。

cypress-plugin-retriesが非推奨化され、Cypress自体でリトライの設定できるようになっています。
詳しくは次の記事で解説されています。

サポート対象をTypeScript 3.4+、Node.js 10+に変更、テストファイル内に書かれた__dirname__filenameの末尾に/が含まれなくなるなどの変更も含まれています。


Electron 10.0がリリースされました。

Release electron v10.0.0 · electron/electron

Chromium 85、V8 8.5、Node.js 12.16へアップデートされています。
またenableRemoteModulefalseに変更、app.allowRendererProcessReusetrueに変更されています。

remoteモジュールはユーザーランドに移行するため、そのための段階的な変更としてenableRemoteModuleオプションが導入され、デフォルト値がfalse(無効)となりました。
詳しくは次のIssueや予定されている破壊的変更のドキュメントを参照してください。

その他には、contents.backgroundThrottlingプロパティの追加、CsameSite情報を取得できるように、worldSafeExecuteJavaScriptオプションが追加されています。


ヘッドライン


Release 2.8.0 · pikapkg/snowpack

github.com/pikapkg/snowpack/releases/tag/snowpack%402.8.0

JavaScript Tools ReleaseNote

snowpack 2.8.0リリース。
snowpack build --watchの追加、--polyfill-nodeでNodeコアモジュールのpolyfillを追加できるようになるなど


Release v1.3.0 · Polymer/lit-html

github.com/Polymer/lit-html/releases/tag/v1.3.0

JavaScript DOM library ReleaseNote

lit-html 1.3.0リリース。
Trusted Typesのサポートなど


Announcing TypeScript 4.0 | TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-4-0/

TypeScript ReleaseNote

TypeScript 4.0リリース。
Variadic Tuple Types、Labeled Tuple Elements、Class Propertyの型がConstructorから推論されるように。
ES2021で入る予定のLogical Operators and Assignment Expressionsのサポート。
catch節のデフォルトがunknownとなるように、jsxFragmentFactoryオプションのサポート、--incremental--noEmitの組み合わせをサポート


axios/CHANGELOG.md at master · axios/axios

github.com/axios/axios/blob/master/CHANGELOG.md#0200-august-20-2020

HTTP JavaScript library ReleaseNote

Axios 0.20.0リリース。
BOMを含むJSONに対応、maxBodyLengthオプションの追加、decompressオプションの追加など


Release 5.0.0 · cypress-io/cypress

github.com/cypress-io/cypress/releases/tag/v5.0.0

JavaScript browser ReleaseNote testing

Cypress 5.0.0リリース。
cypress-plugin-retriesが非推奨化され、Cypress自体でリトライの設定できるように。
サポート対象をTypeScript 3.4+、Node.js 10+に変更、__dirname__filenameの末尾に/が含まれなくなるなど


Release electron v10.0.0 · electron/electron

github.com/electron/electron/releases/tag/v10.0.0

Electron ReleaseNote

Electron 10.0.0リリース。
Chromium 85、V8 8.5、Node.js 12.16へアップデート。
enableRemoteModulefalseに変更、app.allowRendererProcessReusetrueに変更。
contents.backgroundThrottlingプロパティの追加、sameSite情報を取得できるように、worldSafeExecuteJavaScriptオプションの追加など


Prettier 2.1: new --embedded-language-formatting option and new JavaScript/TypeScript features! · Prettier

prettier.io/blog/2020/08/24/2.1.0.html

JavaScript TypeScript ReleaseNote

Prettier 2.1リリース。
--embedded-language-formattingフラグの追加、--ignore-unknownフラグの追加、TypeScript 4.0のサポート。
ES ProposalのPipeline operator、Record and Tuple構文のサポートなど


アーティクル


ts-migrate: A Tool for Migrating to TypeScript at Scale | by Sergii Rudenko | Airbnb Engineering & Data Science | Aug, 2020 | Medium

medium.com/airbnb-engineering/ts-migrate-a-tool-for-migrating-to-typescript-at-scale-cd23bfeb5cc

JavaScript TypeScript article

JavaScriptからTypeScriptへのマイグレーションを補助するts-migrateについて。
.js.tsにリネーム、codemodベースでのanyなどの型付け、コンパイルエラーになる部分を// @ts-expect-errorコメントで抑制していきマイグレーションする。


What's New In DevTools (Chrome 86)  |  Web  |  Google Developers

developers.google.com/web/updates/2020/08/devtools

Chrome article

Chrome 86のDevToolsの変更点について。
Mediaパネルの追加、コンテキストメニューから要素のスクリーンショットを撮影できるように。
WebFontでlocal()がない場合をエミュレート、Idle Detectionのエミュレート、prefers-reduced-dataのエミュレート機能の追加。
Lighthouse 6.2へアップデート、ApplicationパネルにFrameの情報を追加、X-Client-Dataのデコードをサポートなど


Protect your resources from web attacks with Fetch Metadata

web.dev/fetch-metadata/

Chrome article security

Fetch MetadataのSec-Fetch-*ヘッダの解説。
Same-OriginとCross-Siteの区別、それぞれのSec-Fetch-*ヘッダの解説、クロスサイトリクエストを使った攻撃の判定と対策などについて


サイト、サービス、ドキュメント


HexEd.it - Browser-based Online and Offline Hex Editing

hexed.it/

browser editor Tools

ブラウザベースのバイナリエディタ


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


azu/kvs: Key-Value storage library for Browser, Node.js, and In-Memory.

github.com/azu/kvs

JavaScript library

ブラウザとNode.jsで動作するUniversalなKey-ValueなStorageライブラリ。
同じインターフェイスをもつIndexedDBやファイルベースなどの実装があり、マイグレーションをサポートしている。
それぞれの実装は個別に分かれていて、それぞれのパッケージは1kb(gzip)程度のサイズとなっている。


Elderjs/elderjs: Elder.js is an opinionated static site generator and web framework for Svelte built with SEO in mind.

github.com/elderjs/elderjs

JavaScript Svelte library

Svelteを使った静的サイトジェネレーター。
規約ではなくroute.jsによる柔軟なパーマネントリンクの生成、data.jsでビルドに必要なものをまとめて取得して、静的なサイトを生成するためのツール。


keiya01/react-performance-testing: A library to test runtime performance in React

github.com/keiya01/react-performance-testing

React testing library

Reactコンポーネントのレンダリング回数やレンダリング時間を計測できるライブラリ。
Reactにmonkey patchを当てて計測している。


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