Skip to content

Posts

マークダウンエディター選び

マークダウン部分の入力に使うライブラリを探す。 markdown WYSIWYGをキーワードにnpmを検索した結果、 outline/rich-markdown-editor: The open source React and Prosemirror based markdown editor that powers Outline. Want to try it out? Create an account: 良さそうだけどArchivedになっててメンテナンスされてない? nhn/tui.editor: 🍞📝 Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible. プレビュー形式ではなくて、直接編集したい codex-team/editor.js: A block-styled editor with clean JSON output 良さそう Saul-Mirone/milkdown: 🍼 Plugin Read more

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