suguru.dev

バンクーバーで働くエンジニアの備忘録

Node.js

Node.js + Github Private Registry

概要 Github Private Registryにより、プライベートなモジュールを簡単に作成することができるようになりました。 今回はGithub Actionsを用いてNPMモジュールをGithub Private registryに登録・利用する方法を紹介します。 モジュール化したいリポジトリの…

AST + Prettierで快適にコードを一括変換しよう

概要 この記事はQiita Node.js Advent Calendar 2019 5日の記事です。 「Node.jsのプロジェクトにTypeScriptを導入したい」 ちょうど去年の12月に面接で聞かれたことでした。 あなたならどう答えますか? 今回は面接のネタとしても使える、ASTとPrettierを利…

VM moduleを利用してLambdaのような機能を提供する

概要 Express + VMモジュールを使用し、Lambdaのような機能を提供するサーバの構築方法、またVMの注意点についてまとめます。 vmとは VMとは同プロセス上で別のNodeスクリプトの実行をサポートするモジュールです。evalに似ていますが、Contextの値を外から…

Node.js with TypeScriptのCode Coverageを計測する

概要 Node.js with TypeScriptでcode coverageを計測できるようにしたので、その導入手順について書きます。 NYCのセットアップ はじめにNYCのセットアップします。 NYCとはIstanbulのコマンドラインツールで、Istanbulとはcode coverageを計測してくれるツ…

Async HooksとAsync Resourcesの導入

概要 この記事はNode.js Advent Calendar 2017 15日目の記事です。 カナダから非同期で失礼します。 Async hooksとはNode.jsの非同期イベントをトレースすることができるネイティブライブラリです。まだ試験段階なのでAPIが変わる可能性がありますが、Async …

classの継承についての考察

概要 ES6の継承が遅すぎると話題なので検証・最適化をしました。 どれくらい遅いのか こちらのベンチマークによると、少しずつ改善は見られるものの、2.3-17倍程度遅い様子です。 実際に検証しました。 Node v6.10.1 benchmark.js v2.1.4 継承 // classes fu…

Node.jsで内部変数・関数の取得

概要 テストやちょっとしたツールを作りたいときに内部変数・関数にアクセスしたい時がありますが、 そんなときに便利なのがvmモジュールです。しかしvmではvarの変数は取得できるものの、letやconstの変数は取得できません。 そこで色々試行錯誤して作った…

Benchmark: Async vs Neo-Async

What is Neo-Async? Neo-Async is meant to be used as a drop-in replacement for the Async library. It implements the same API, and adds extra functionality. I have been trying to make it faster and safer than Async. https://github.com/suguru…