Exporter SDK
エクスポータは DrawtonomySnapshot に対する純粋関数の集まりです。新しいターゲット形式の追加は自己完結的に行えます: モジュール 1 つ、いくつかのテスト、そして任意で UI フックを追加するだけです。
このページは概要のみです。完全なガイド — アーキテクチャ、API、テストパターン、esmini での目視確認 — は公開リポジトリにあります:
➡ Exporter Developer Guide (日本語)
クイックスタート
Section titled “クイックスタート”git clone https://github.com/kosuke55/drawtonomy.gitcd drawtonomypnpm installcd packages/drawtonomy-sdkpnpm exec vitest exporter # ウォッチモード最小限のエクスポータ
Section titled “最小限のエクスポータ”import type { DrawtonomySnapshot } from '../types'
export function exportToMyFormat(snapshot: DrawtonomySnapshot): string { // 図形を走査して、独自形式を出力する。 return ''}import { describe, it, expect } from 'vitest'import { exportToMyFormat } from '../../src/exporter/my-format'import { createSnapshot, createLane } from '../../src/index'
describe('my-format exporter', () => { it('emits expected payload for a single lane', () => { const snapshot = createSnapshot([createLane(/* ... */)]) expect(exportToMyFormat(snapshot)).toContain('<expected/>') })})実シーンをフィクスチャとして使う
Section titled “実シーンをフィクスチャとして使う”drawtonomy.svg ファイルは SDK 経由でラウンドトリップ可能なので、エディタで作ったシーンを回帰テストの入力として使えます:
import { readFileSync } from 'node:fs'import { parseDrawtonomySvg } from '@drawtonomy/sdk'
const svg = readFileSync('./fixtures/my-scene.drawtonomy.svg', 'utf-8')const snapshot = parseDrawtonomySvg(svg)!- エクスポータアーキテクチャ — パイプラインと、それが純粋関数である理由。
@drawtonomy/sdkの概要