From 292beabffebb93882b32ed6ca3182b5a19ba6971 Mon Sep 17 00:00:00 2001 From: Pacharapol Withayasakpunt Date: Thu, 28 Apr 2022 16:06:38 +0700 Subject: [PATCH] update tag --- scripts/get-kanji-level.ts | 2 ++ scripts/populate-from-wanikani.ts | 10 ++++++++++ src/wanikani.ts | 12 ++++++++---- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/scripts/get-kanji-level.ts b/scripts/get-kanji-level.ts index ac7cb38..3284ef2 100644 --- a/scripts/get-kanji-level.ts +++ b/scripts/get-kanji-level.ts @@ -26,6 +26,8 @@ async function makeWaniKaniKanjiLevels( for (const k of wkKanji) { const { level, characters } = k.data; const label = WaniKani.getLevelLabel(level); + if (!label) throw new Error(`Invalid level: ${level}`); + const category = `${label.range}: ${ label.ja } ${label.en.toLocaleUpperCase()}`; diff --git a/scripts/populate-from-wanikani.ts b/scripts/populate-from-wanikani.ts index 7c1aab7..49a5195 100644 --- a/scripts/populate-from-wanikani.ts +++ b/scripts/populate-from-wanikani.ts @@ -6,6 +6,16 @@ if (require.main === module) { // { ja: 'Japanese', audio: 'JapaneseAudio' }, // { mode: { online: true } }, // ); + // new WaniKani().populateSentence( + // 'note:jp.takoboto', + // { + // vocabJa: 'Japanese', + // sentenceJa: 'Sentence', + // sentenceAudio: 'SentenceAudio', + // sentenceEn: 'SentenceMeaning', + // }, + // { overwrite: true }, + // ); new WaniKani().addTags('note:jp.takoboto', { ja: 'Japanese', }); diff --git a/src/wanikani.ts b/src/wanikani.ts index 80d7df7..d610a76 100644 --- a/src/wanikani.ts +++ b/src/wanikani.ts @@ -19,7 +19,7 @@ export class WaniKani { }); } - static getLevelLabel(level: number): ILevelLabel { + static getLevelLabel(level: number): ILevelLabel | null { if (level < 11) { return { range: '01-10', @@ -58,7 +58,7 @@ export class WaniKani { }; } - throw new Error(`invalid level: ${level}`); + return null; } async subjects({ @@ -303,9 +303,13 @@ export class WaniKani { >(); vocabularies.map((v) => { if (vocabMap.has(v.data.characters)) return; + const level = v.data.level; + const label = WaniKani.getLevelLabel(level); + if (!label) throw new Error(`Invalid level: ${level}`); + vocabMap.set(v.data.characters, { - level: v.data.level, - label: WaniKani.getLevelLabel(v.data.level), + level, + label, }); }); if (!vocabMap.size) return;