deno-anki
機能
fork元からの変更点
node対応を外した
TypeScriptで書き換えた
Denoに対応した
scrapboxから使うときは、まとめてbundleするのではなくCDN経由で注入したいため
API設計を元repoから変える
設定を予め全部JSONで決めて、一発で作らせる?
一番汎用性がありそう
immutableなAPIにする
tsexport const makeAnkiDB: (init: {
decks: {
/** used as deck ID */
created: number;
updated?: number;
name: string;
description?: string;
}[];
notes: {
guid: string;
/** used as note ID */
created: number;
updated?: number;
noteTypeId: string;
tags: string[];
fields: string[];
}[];
noteTypes: {
/** used as model(aka. note type) ID */
created: number;
updated?: number;
/** @default 1 */
deckId?: number;
fields: {
name: string;
rtl?: boolean;
font?: string;
fontSize?: number;
}[] | string[];
templates: {
name: string;
question: string;
answer: string;
example?: [string, string];
}[];
latex?: [string, string];
css?: string;
isCloze?: boolean;
}[];
}, sql: SQLDatabase) => Promise<Uint8Array>
export const makeApkg: (
ankiDB: Uint8Array,
media:
Record<string, InputFormat> | Map<string, InputFormat>,
jsZip: :JSZip,
) => Promise<Uint8Array>;
やること
✅函数名変更
makecollectionとmakepackage
✅idgenでミスってたとこ
jsdoc
後回し
testコードを綺麗にする
後回し
testケースを増やす
後回し
mod
はmillisecondsだった
wikiの説明が古かったようだ
課題
JSZip.prototype.generatorAsync()
で止まっていることはわかっている
JSZipのみの単体テストを試してみるか
example/server/server.tsが <C-c>
で強制終了しないと終了しない現象との関連性も気になる
memory leaksが原因かも
なんでだろ

20行目の

エラーメッセージに、なぜかnpmjs.comからimportされたファイルパスが写っていた
多分この型のせいだろう
どうせNode.jsをサポートする予定はないし、 InputByType
から削ってしまうか
rustとpythonによる実装もあったみたい
どちらも解説がくわしい
mod.tsexport * from "https://raw.githubusercontent.com/takker99/deno-anki/0.0.2/mod.ts";