TypeScript + create-react-app で eject せずツールを導入する

create-react-appv2.1.0 で TypeScript を公式サポートしました!

ということで、悪名高き “eject” をせずにどこまで外部ツールを設定できるか挑戦してみました。
npm run eject をせず、また、 react-app-rewired / craco は使わないようにします。

もう一つの動機としては、私は Webpack が好きなので手で設定をしてしまうことが多いですが、他のメンバーが管理できる範囲に収めたほうが喜ばれそう、というのもあります。

サンプルプロジェクトはこちら

Read More

TypeScript FSA での非同期処理

この記事では、 TypeScript FSA で非同期処理するときの知見を忘備録として載せます。

TypeScript FSA 自体は他の方の投稿のほうが詳しく紹介されているので、この記事ではニッチな部分をメインに取り上げて載せています。
サンプルプロジェクトはこちら

Read More

TypeScript で React Redux connect を使うときの忘備録

この記事では、 TypeScript で React Reduxconnect を使う際の知見を忘備録として載せます。

React Redux 自体は他の方の投稿のほうが詳しく紹介されているので、この記事では connect を使うときに型を何度も書かない方法と、 connect されたコンポーネントのテストについて書きます。
Preact Redux でも、型定義のバグが無ければ多分同じように使えます。

Read More

Python で gRPC の Metadata と Interceptor を使う

この記事では、前回( Python で gRPC の単体テスト)に引き続き、 Python で gRPC を使う際の知見をご紹介します。

主に、メタデータとインターセプターの実装法と、そのテスト方法がメインになっています。
まだ experimental API だったり非 public クラスだったりしているので、公式のアナウンスがあるまではプロダクション利用は難しいようにも思いました。

Read More

WebAssembly 関数に JavaScript のクロージャを擬似的に渡す in Rust

現状の WebAssembly の仕様では JavaScript の関数は Rust へと直接渡せないということなので、効率は悪いですが一つの回避策を考えてみました。
仲介役を JavaScript 側に立たせ、 JavaScript 側ではほぼ任意なインターフェース、 Rust 側では固定的なインターフェースにします。
現状では実用的ではないレベルですが、どうしても避けられない場合はこうしてみるのがいいかもしれません。

もっと使いやすいやり方ができるようになるといいのですが。。。

サンプルプロジェクトはこちら

Read More

wasm-bindgen で hyperapp を実装しようとした (墓標)

勉強を兼ねて hyperapp の関数を Rust + wasm-bindgen で実装して、 hyperapp の動作高速化を狙ったが、 WebAssembly の制約があり詰まってしまった。
寝る前に思いついて 4 時間だけやっただけなので回避策を見落としただけかもしれないし、 WebAssembly の進化で問題無くなるかもしれない。

yew (Rust) や asm-dom (C++) のように、すべてを wasm 内で実装するのは抵抗があった。
(P)react の高速化ができれば既存の資産を使いつつ高速化できるし、他にも超重量級コンポーネントだけを wasm 化する戦略を採れると思った。

Read More

node-java でリフレクションする

Node スクリプトから( jar にある)Java 実装の情報を集めたい。

Node から Java を操りたい人向けのライブラリがなぜか存在している。 node-java
インストール方法は特に説明しないが、私は “node-gyp” でコケたので “windows-build-tools” を使ってインストールできた。

JavaScript から Java を動かす、と言うと、ややこしい。

Read More

JSweet で自作アノテーションを活用する

この投稿では、前回に引き続き、アノテーションを含む Java コードで書かれた処理やメタデータ取得を、どうしても JavaScript で再現して利用したい場合の一つの解決策を示します。

今回も JSweet というツールを利用します。
前回は簡単に使えましたが、今回のようにアノテーションを残して処理した場合に面倒な部分がありました。

サンプルプロジェクトはこちら

Read More

JSweet を利用して Webpack で Java コードを利用する

この投稿で解決したい状況として、 Java コードで書かれた処理をどうしても JavaScript から利用したい場合があります。コードと表現したのは、コンパイルして .jar になったものでなく、ソースコードとして手元にあるという意味です。

今回は、 JSweet というツールを利用します。これをただ簡単に利用するだけなら特に難しくありません。

サンプルプロジェクトはこちら

Read More

Webpack により HTML で書かれたコンポーネントを関数にして利用する

前回の記事の最後に、「属性やタグに囲まれた内容を利用できません」と書きました。
今回はその続きで、昔のプロジェクトでページ描画に使われいているものを念頭に作っていきます。

このテクニックを応用することで、 Spring Thymeleaf を JavaScript 化することができるのではないかと思います。

サンプルプロジェクトはこちら

Read More