Status: Experimental
MoonBit と TypeScript の間で bridge package を生成する toolchain です。TypeScript の
型定義から MoonBit bridge を生成し、MoonBit package から JavaScript runtime と
.d.ts を持つ npm package を生成します。生成物は再生成可能な output として扱います。
TypeScript dependencies を MoonBit から使う場合:
moon install mizchi/ts/cmd/mtsc
mtsc bridge generateMoonBit package を npm package にする場合:
moon install mizchi/ts/cmd/mtsc
cd my-moonbit-library
mtsc pkg npm
cd npm && npm publish --access public公開済み @mizchi/ts の type checker は global install なしで実行できます。
npx --package=@mizchi/ts mtsc --helpHono を MoonBit から使う完全な手順は Quick start を参照してください。
- MoonBit toolchain(
moonが$PATHにあること) - Node.js 24+
pnpm(verification scripts 用)- 任意:
just
moon install mizchi/ts/cmd/mtscinstall 後は ~/.moon/bin/ を $PATH に追加します。source checkout から実行する
場合は moon run src/cmd/mtsc -- ... を使います。
binary は mtsc 1 つだけです。TypeScript の compile は default の位置引数で、
それ以外の機能は verb で分かれています。
| Command | 概要 | 詳細 |
|---|---|---|
mtsc [files...] |
TypeScript / TSX を型検査して JavaScript に変換 | docs/mtsc.md |
mtsc bridge |
TypeScript declaration / npm package を MoonBit bridge に変換 | docs/ts2mbt.md |
mtsc pkg |
MoonBit package を TypeScript declaration / npm package に変換 | docs/mbt2ts.md |
mtsc check |
1 file の checker 診断(開発用) | docs/mtsc.md |
mtsc conformance |
TypeScript conformance corpus に対する精度集計(開発用) | docs/tsacc.md |
compile mode の command line は tsc / tsgo の superset です。tsc の
option 名はそのまま通り、-p / tsconfig.json の読み取り、--noEmit、
--watch、tsc 準拠の exit code に対応します。mtsc が動作を持たない option
(--target、--module、--strict など)は受け取ったうえで「honour していない」
と 1 行報告します。黙って無視はしません。
ts2mbt / mbt2ts / tscheck / tsacc の 4 binary は mtsc に集約されました。
対応は ts2mbt X → mtsc bridge X、mbt2ts X → mtsc pkg X、
mbt2ts --pkg → mtsc pkg npm、tscheck → mtsc check、
tsacc → mtsc conformance です。
mtsc bridgeの output は consumer module のinternal/generated/に置く bridge package です。SCAFFOLD_DIAGNOSTICS.mdで widen / omit した surface を確認します。mtsc pkg npmの output はnpm/です。moon.modの version と metadata を使い、package.json、index.js、.d.ts、subpath export、必要なら npmbinを生成します。- どちらも output を手編集せず、入力と option から再生成してください。
詳細な type boundary、facade、runtime validation、package export、unsupported surface は 各 tool guide に記載しています。
docs/ts2mbt.md—mtsc bridge:SCAFFOLD_DIAGNOSTICS.md、vendor と bridge。docs/mbt2ts.md—mtsc pkg:AUTOLINK_DIAGNOSTICS.md、npm publish。docs/mtsc.md— checker の CLI、ABI、既知ギャップ。docs/mangle-safety.md— 型追跡による安全な property mangling と、その検証 corpus。docs/minify-patterns.md— minify / mangle パターンの一覧と、各パターンの証明義務。examples/—just verify-examplesで検証する runnable fixture。
moon fmt
moon info
just check
just test
just verify-scaffolds
just verify-exampleschecker の TypeScript conformance gate は次を使います。
just verify-checker-soundness # FP 0 / PFLEGAL 0 / MISS in scope <= budget をゲート軽量な conformance 集計には mtsc conformance guide を参照してください。
checker が検出しない構文と、その優先度・スコープ外の判断は
checker triage(方針と tier)と
src/checker/UNSUPPORTED.md(残り MISS
ファイルの一覧と、実測したコード形状)を参照してください。
docs/checker-priority.md は TS6 オラクル時代の文書で、結論は棄却済みです。
Apache-2.0