Skip to content

Posts

rewireでjest

テストのために関数exportしないといけないの、チョット気持ち悪いので、解決策を探ってみる。 jhnns/rewire: Easy monkey-patching for node.js unit testsが一般的らしい。 $ npm install -D rewire @types/rewire テストコードのimportを修正 import rewire from 'rewire'; const __local__ = rewire('./mdmml.ts'); const atoi = __local__.__get__('atoi') テスト実行 $ npm test > mdmml_js@1.0.0 test > jest FAIL src/mdmml.test.ts ● Test suite failed to run /home/umemak/workspace/mdmml_js/src/mdmml.ts:8 Tracks: Track[] = []; SyntaxError: Unexpected identifier at Object.load (node_modules/rewire/lib/moduleEnv.js:57:18) at internalRewire (node_modules/rewire/lib/rewire.js:49:15) at rewire (node_modules/rewire/lib/index.js:11:12) Test Suites: 1 failed, 1 total Tests: 0 total Snapshots: 0 total Read more

http-serverメモ

ローカルでチョット確認するためのhttpサーバー立てるのに便利なhttp-party/http-server: a simple zero-configuration command-line http server。 最近、起動はするもののリクエストを送ると終了してしまう現象が起きていて、ググったらissueがあった。 Server Crashing with “Cannot set headers after they are sent to the client” · Issue #634 · http-party/http-server バージョン13.0.2だと大 Read more

webpackで構築

昨日は、TypeScript環境構築に手間をかけたくないという想いでParcelを試してみたところ、エラーで途方に暮れていた。 今日は、古き良きwebpackを試した。 参考にしたページはこちら 最新版TypeScript+webpack 5の環境構築まとめ(React, Vue.js, Three.jsのサンプル付き) - Read more

Parcelを使ってみる

久しぶりにJavaScript(TypeScript)を書こうとしたら、何から始めてよいかわからなくなっていた。 あまり環境構築に手間をかけたくなかったので、parcel-bundler/parcel: The zero configuration build tool for the web. 📦🚀を使ってみた。 Building a web app with Parcelを見ながら npm init npm install --save-dev parcel src/index.h Read more

Magenta.js

昨日のcifkao/html-midi-player: 🎹 Play and display MIDI files on the webの使い方見ようとして、magenta-js/music at master · magenta/magenta-jsを使っているのを知った。 Magentaは出始めのときにそんなのがあるのか、って思って深くは見ていなかったのだけど、今度はちゃんと Read more

MDMMLのJavaScript移植

Rust移植は未完だけれどもいい勉強になった。 今度はJavaScript(TypeScript)に移植しようと思う。 というのもcifkao/html-midi-player: 🎹 Play and display MIDI files on the webと連携してブラウザで完結出来たら良さそうなので。 もともとのGoの実装でも、サーバー立てるなりローカルにバ Read more

GitHub Actionsのmatrix

GitHub Actionsのワークフロー構文 - GitHub Docs このjobs.<job_id>.strategy.matrixは、jobに含まれるstepsをmatrixの組み合わせでループ実行するという理解。 同じようなことを、step単位でやりたいときにうまい方法がないかなぁ、と。 jobs: example: steps: - name: example begin run: echo "begin" - name: example A Read more

オーディオインターフェース選び

Amazonのタイムセール祭りでオーディオインターフェース買おうと思っていたけれど、特に安くなってなかったので見送った。 候補はこの辺り Focusrite フォーカスライト オーディオインターフェース 2イン/2アウト 24bit/192kHz Scarlett Solo (3rd Gen) ステッカー付きセット 【国内正規品】 : 楽器・音響機器 Amazon | audient 「EVO4」2in/2out オーディオ・ Read more

ginkgoの特殊機能とは?

昨日の調べもので出てきた、 Ginkgo has several capabilities that can only be accessed via ginkgo. (Ginkgoには、ginkgoを経由してしかアクセスできない機能がいくつかあります。) そのいくつかの機能を知りたい。 https://onsi.github.io/ginkgo/#ginkgo-cli-overview には、コマンドライン引数について書かれているが、むしろginkgoでサポートしていないものがあるという記述なので、思っていたのとは違 Read more

ginkgoとgo test

GinkgoのV1とV2のテストケースが混在しているときに、V2のCLIでV1用のコードをテストしようとすると、ginkgo.timeoutが定義されてい内的なエラーになってしまう(うろ覚え)。 importをv2にすれば多分良いのだけれど、そうしなくても、テストの実行をgo testに任せれば、imp Read more