Skip to content

Posts

JZZ-gui-Player

magenta-jsがうまく動いてくれなくて、他に似たもの探して jazz-soft/JZZ-gui-Player: MIDI Player for browsersを使ってみた。 readmeのサンプルの通りだと音が出なかったけど、デモページのソースを参考にJZZ.synth.Tiny.register('Web Audio');を追加したらできた。 あとはエディタ部分をマークダ Read more

TypeScriptのexport

MDMMLのTypeScript移植が大体できたので、HTMLから呼び出せるようにしたい。 先日はexportしてるはずなのに見つからないというエラーでどうしたら良いかわからず。 HTMLから外部のJavascriptファイルのfunctionを呼びたいはやりたいこととあっているように思える。 interface Window { Hello(): void; Read more

TypeScriptでTable Driven Test

もともとGoで書いていたテストがこんな感じだったのだけど、 こんな風に移植してて面倒だと感じていた。 TS と Jest で Table Driven Test をする · tblogを参考に書き換えて、こうなった。

TypeScriptで標準出力

マークダウンから変換したSMFデータを標準出力に書き出したいのだけれど、バイナリをそのまま出力する方法がわからず。。 console.logだと型情報とかついた普通のテキストになってしまう。 $ node dist/main.js Uint8Array(45) [ 77, 84, 104, 100, 0, 0, 0, 6, 0, 1, 0, 1, 3, 192, 77, 84, 114, 107, 0, 0, 0, 23, 0, 255, 3, 0, 0, 255, 81, 3, 7, 161, 32, 0, 255, 88, 4, 4, 2, 24, 8, 0, 255, 47, 0 ] fsパッケ Read more

TextEncoderのエラー

replaceAllを使いたくて、tsconfig.jsonに以下設定を追加した。 "lib": [ "ES2021.String" ] replaceAllが使えるようになったが、TextEncoderを使っているところでエラーになるようになってしまった。 error TS2304: Cannot find name 'TextEncoder'. 定義がないのか?と思って@types/text-encoding - npmにある Read more

Jestの導入

ブラウザからの動作確認はいったん置いておいて、コマンドライン実行で動くものを目指す。 どうせなら自動テストも動かしながらやっていきたい。 JavaScriptのテストフレームワークは、Jest · 🃏 Delightful JavaScript Testingが主流らしいので、それに乗っかる。 Typescriptでの単体テストの書き方(Jest) | Read more

node.jsバージョン管理

Jest実行しようとしたらnode.jsのバージョンが低いらしく、エラーになったのでバージョンを上げる方法を検索したらnというものがあると知ったので試してみた。 Node.jsとnpmをアップデートする方法 | Rriver $ node -v v10.19.0 $ sudo npm install -g n $ sudo n stable $ node -v v10.19.0 $ hash -r $ node -v v16.15.0

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