JSer.info #437 - Node.jsサーバフレームワークのexpress 4.17.0がリリースされました。
ビルトインmiddlewareとしてBodyをBufferへパースするexpress.raw
、Bodyをテキストにパースするexpress.text
の追加されています。
const app = express()
app.use(express.raw(options));
これはもともとbodyParserにあったものがexposeされてた形になっています。
- expose text middleware of bodyparser by ilyapx · Pull Request #3455 · expressjs/express
- Expose bodyParser.raw on express by amitzur · Pull Request #3708 · expressjs/express
ただし、これらのmiddlewareは現在開発中の5.0では別の場所に移動する可能もありそうです。
Firefox 67.0がリリースされました。
- Firefox 67.0, See All New Features, Updates and Fixes
- Firefox 67 for developers - Mozilla | MDN
- Firefox 67 サイト互換性情報 | Firefox サイト互換性情報
開発者ツールやブラウザのパフォーマンスが改善されています。
開発者ツールについては次のページで詳しく解説されています。
また、あまり利用されていなかったことを理由に開発者ツールからCanvas debugger、Web Audio Editor、Shader editorが削除されています。
代替ツールについても紹介されているので、詳しくは次のページをみてください。
その他にもCSSのprefers-color-scheme
のサポート、Cross-Origin-Opener-Policy
HTTPヘッダのサポート、private modeでlocalStorageへのアクセス時に例外が発生しなくするといった変更が含まれています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Node v12.3.0 (Current) | Node.js
nodejs.org/en/blog/release/v12.3.0/
Node.js v12.3.0リリース。
wasm
ファイルをimportできる--experimental-wasm-modules
オプションの追加、Readable.from
の追加など
Ember.js - Ember 3.10 Released
blog.emberjs.com/2019/05/21/ember-3-10-released.html
Ember 3.10リリース。
ネストしたコンポーネントやビルトインコンポーネントを<Input />
のようにAngle bracketで記述できるように、Decoratorのサポートなど
Release 4.17.0 · expressjs/express
github.com/expressjs/express/releases/tag/4.17.0
express 4.17.0リリース。 middlewareとしてBodyをBufferへパースするexpress.raw
、Bodyをテキストにパースするexpress.text
の追加。
X-Forwarded-Host
でカンマ区切りの複数Hostに対応など
Firefox 67.0, See All New Features, Updates and Fixes
www.mozilla.org/en-US/firefox/67.0/releasenotes/
Firefox 67.0リリース。
パフォーマンスや開発者ツールの改善、Cross-Origin-Opener-Policy
の実装。
開発者ツールからCanvas debugger、Web Audio Editor、Shader editorを削除など
- Firefox 67 for developers - Mozilla | MDN
- Deprecated tools - Firefox Developer Tools | MDN
- Firefox 67 サイト互換性情報 | Firefox サイト互換性情報
アーティクル
Folding the DOM - Josh W. Comeau's Blog
www.joshwcomeau.com/posts/folding-the-dom/
CSSを使って画像の折りたたみ表現を実装していくチュートリアル。
Position、Transform、Perspectiveを組み合わせて折りたたみのアニメーションを実装していく話
Strict null checking the Visual Studio Code codebase
code.visualstudio.com/blogs/2019/05/23/strict-null
VSCodeのコードベースでTypeScriptのstrict null checkを有効化した話。
strictNullCheck
がfalse
のときによく起きていた問題と1800ファイルあるコードをどのように修正していったかについて。
strictNullCheck
を有効化したtsconfig.json
を作り、files
に追加しながら修正していった
Graphics Team ships WebRender MVP! – Mozilla Gfx Team Blog
mozillagfx.wordpress.com/2019/05/21/graphics-team-ships-webrender-mvp/
Firefox 67でNVIDIAのグラフィックカードを利用してるユーザー(4%)向けて、GPUベースのレンダラであるWebRenderをロールアウトしていくリリーススケジュールについて
Handling Errors in Vue.js
www.raymondcamden.com/2019/05/01/handling-errors-in-vuejs
Vueでのエラーハンドリングについての記事。
Vue.config.errorHandler
、Vue.config.warnHandler
、renderError
、errorCaptured
について
Paint Holding - reducing the flash of white on same-origin navigations | Web | Google Developers
developers.google.com/web/updates/2019/05/paint-holding
Chrome 76でページ遷移時にページを真っ白にするのではなく、最後の描画を維持した状態で切り替わるようにするPaint Holdingという仕組みが入るという話
SPAにおける状態管理: 関数型のアプローチも取り入れるフロントエンド系アーキテクチャの変遷 - エンジニアHub|若手Webエンジニアのキャリアを考える!
employment.en-japan.com/engineerhub/entry/2019/05/23/103000
SPAにおける状態管理の変化について。
Backbone.jsでのModel/View/Controller、Two Way Data-Binding、Fluxなどの状態管理の問題と解決したことについて
WebAssembly at eBay: A Real-World Use Case
www.ebayinc.com/stories/blogs/tech/webassembly-at-ebay-a-real-world-use-case/
WebAssemblyのユースケースとしてバーコードリーダを実装した話。
C++からemscriptenでコンパイルしたwasmを使うことで、JavaScriptの実装よりもFPSが上がった。
しかし、カメラの特性により認識率がいまいち上がらず、C++の実装2つとJavaScriptの実装を組み合わせて利用した話
サイト、サービス、ドキュメント
wagerfield/parallax: Parallax Engine that reacts to the orientation of a smart device
github.com/wagerfield/parallax
ブラウザのViewportのサイズやスクロール、マウスの動きなどの変化を監視できるライブラリ。
ソフトウェア、ツール、ライブラリ関係
projectfluent/fluent.js: JavaScript implementation of Project Fluent
github.com/projectfluent/fluent.js
ローカライズフレームワーク。
FTLという構文で記述し、Intl
オブジェクトをベースにしたローカライズを行う。
yankouskia/hurried: ⚡️ JavaScript library for parallel code execution
worker_thread
モジュールを使ったNode.js向けのThreadライブラリ
azu/exponential-backoff-generator: Exponential backoff generator. Provide robust retry function.
github.com/azu/exponential-backoff-generator
Generatorを使ったExponential backoffライブラリ。
async/awaitと組み合わせて非同期処理のリトライをfor...of
で記述できる。
sghall/react-vertex: React Vertex | Hooks-based WebGL library for React
github.com/sghall/react-vertex
HooksベースなWebGLを扱うReactコンポーネント
Rocketseat/unform: ReactJS form library to create uncontrolled form structures with nested fields, validations and much more!
Uncontrolledなフォームを扱うReactコンポーネント。
バリデーション、構造的なデータ、リセットなどの機能を提供している
vitalets/await-timeout: A Promise-based API for setTimeout / clearTimeout
github.com/vitalets/await-timeout
PromiseベースのsetTimeout
、clearTimeout
のラッパーライブラリ。
既存のPromiseオブジェクトてもタイムアウトを設定できる