JSer.info #438 - 非同期処理のフローを扱うライブラリであるAsync 3がリリースされました。
Async 3.0.0ではasync.mapLimit
などのAsyncのメソッドがPromiseを返すように変更されています。
これにより、async.mapLimit
などのメソッドがasync
/await
と組み合わせて利用できるようになっています。
2.3.0で引数にAsync Functionを渡せるようになっていました。さらに今回のリリースでasync.*
のメソッドにコールバック関数を渡さなかった場合は、Promiseを返すようになっています。
比較してみると次のようになると思います。
// DUMMY CODES
const async = require("async");
const urls = ["https://example.com", ...];
(async function(){
// 2.3.0 <
async.mapLimit(urls, 10, async.asyncify(async (url) => {
const res = await fetch(url);
return res.json();
}), (err, results) => {
if (err) throw err;
console.log(results)
});
// 2.3.0 >=
async.mapLimit(urls, 10, async (url) => {
const res = await fetch(url);
return res.json();
}, (err, results) => {
if (err) throw err;
console.log(results)
});
// 3.0.0 >=
try {
const results = await async.mapLimit(urls, 10, async (url) => {
const res = await fetch(url);
return res.json();
});
console.log(results);
} catch (err) {
console.log(err);
}
})();
また3.0でコードベースもES2015ベースとなったため、ES2015をサポートしていない実行環境はサポート外となっています。
Node.jsのテストフレームワークであるAVA 2.0.0がリリースされました。
Node.js 8.9.4以降のサポートのみとなっています。
破壊的な変更としては、snapshotが作られていない場合はCIで失敗するように、assertionメッセージが文字列ではない場合は例外を投げるようになるといった変更が含まれています。
OSSなnpm package registry serverの実装であるVerdaccio 4がリリースされました。
Verdaccioはもともとsinopiaというnpm registry serverをforkしたもので、
今回のリリースでsinopia時代の実装やウェブUIを刷新しています。
検索UI、Register情報、パッケージの詳細画面などのUIが変更されています。
同じくnpm package registryの話題として、npm incの元CTOである@ceejbotがEntropicというFederatedなnpm package registryを作成するという発表がJSConf EU 2019でありました。
なぜ新しいnpm package registryを作ろうとしているかについてはJSConf EUの動画とスライドが上がっているので見てみるとよさそうです。
- The economics of open source by C J Silverio | JSConf EU 2019 - YouTube
- ceejbot/economics-of-package-management: ceejbot's talk from JSConfEU 2019
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
async/CHANGELOG.md at master · caolan/async
github.com/caolan/async/blob/master/CHANGELOG.md#v300
async 3.0.0リリース。
async
モジュールのメソッドがcallbackを指定していない場合に、Promiseを返すように、コレクションメソッドでAsync Generatorのサポート、cargoQueue
の追加など。
また、ES2015のコードベースになったため、古いブラウザやNode 4以下のサポート終了。
Node v10.16.0 (LTS) | Node.js
nodejs.org/en/blog/release/v10.16.0/
Node v10.16.0(LTS)リリース。
npm 6.9.0への更新、zlib
モジュールのbrotliサポートのバックポート、events
モジュールのonce
メソッドのバックポートなど
W3C and WHATWG to work together to advance the open Web platform | W3C Blog
www.w3.org/blog/2019/05/w3c-and-whatwg-to-work-together-to-advance-the-open-web-platform/
W3CはHTMLとDOMに関する標準策定をやめ、WHATWGが策定しているLiving Standardを共同で策定していくことに合意した。
また、WHATWGはレビュードラフトと呼ばれる定期的なスナップショットをだし、これをW3Cプロセスに従う形で勧告まで進めるなどのプロセスの変更について書かれている。
Version 8 of Angular — Smaller bundles, CLI APIs, and alignment with the ecosystem
Angular 8.0.0リリース。
modern build(es2015)とlegacy build(es5)を出し分けロードするDifferential Loadingの有効化。
Route ConfigでDynamic Importsを使うように、CLI向けにBuilders APIの追加。
IvyをenableIvy
で試せるようになるなど
Release Notes for Safari Technology Preview 83 | WebKit
webkit.org/blog/8967/release-notes-for-safari-technology-preview-83/
Safari Technology Preview 83リリース。
WebAuthNのデフォルト有効化、CSSのline-break: anywhere
、display: flow-root
のサポートなど
Release v0.19.0 · axios/axios
github.com/axios/axios/releases/tag/v0.19.0
axios 0.19.0リリース。
Node.jsでレスポンスがgzipなどでかつ204の場合に例外が発生する問題を修正、maxContentLength
の設定を無視してリクエストを継続するDosにつながる問題を修正など。
- Release v0.18.1 · axios/axios
- Destroy stream on exceeding maxContentLength (fixes #1098) by resure · Pull Request #1485 · axios/axios
Announcing TypeScript 3.5 | TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-3-5/
TypeScript 3.5リリース。
型チェックのパフォーマンス改善、--incremental
ビルドのパフォーマンス改善、Omit
ヘルパー型の追加など。
破壊的な変更として型パラメータの型が不明な場合の型が{}
からunknown
へ変更など
- What's new in TypeScript · microsoft/TypeScript Wiki
- Breaking Changes · microsoft/TypeScript Wiki
- TypeScript v3.5.1 変更点 - Qiita
Release v2.8.0 · nuxt/nuxt.js
github.com/nuxt/nuxt.js/releases/tag/v2.8.0
Nuxt.js 2.8.0リリース。
SSRログの表示を改善、ビルド中のインジケータ表示の改善など
Release 2.0.0 · avajs/ava
github.com/avajs/ava/releases/tag/v2.0.0
AVA 2.0.0リリース。
Node.js 8.9.4以降のサポート、snapshotが作られていない場合はCIで失敗するように、assertionメッセージが文字列ではない場合は例外を投げるようになるなど。
Verdaccio 4 released !!! · Verdaccio
verdaccio.org/blog/2019/05/19/15-verdaccio-4-release.html
npm registry serverのOSS実装であるVerdaccio 4リリース。
UIの刷新、npm star
/npm profile
のサポート、JWTサポート、Pluginsサポートの改善など
アーティクル
What's New In DevTools (Chrome 76) | Web | Google Developers
developers.google.com/web/updates/2019/05/devtools
Chrome 76の開発者ツールの変更点について。
ネットワークパネル設定のUIの変更、WebSocketメッセージをHARファイルとしてエクスポートできるように、合計メモリ消費量のリアルタイム表示、Background Fetchのデバッグ機能など。
イメージで伝われ!図解JavaScriptの非同期処理 - メモを揉め
memowomome.hatenablog.com/entry/js_async_viz
JavaScriptの同期処理と非同期処理の動作の違い、非同期処理の実装方法や考え方について
スライド、動画関係
JSConf EU 2019 - YouTube
www.youtube.com/playlist?list=PL37ZVnwpeshHwJPVBqEnZild7QHWhdufu
JSConf EU 2019の動画まとめ
ソフトウェア、ツール、ライブラリ関係
Zdog · Round, flat, designer-friendly pseudo-3D engine for canvas and SVG
擬似的な3D描画を行うCanvas、SVGライブラリ。
atomicojs/atomico: Small library for the creation of interfaces based on web-components, only using functions and hooks.
Web ComponentsベースのJSXでのDOM定義とReact HooksライクなAPIを提供するライブラリ
mholt/PapaParse: Fast and powerful CSV (delimited text) parser that gracefully handles large files and malformed input
CSVパーサライブラリ