Skip to content

Commit 6ff5517

Browse files
committed
Typed add kanji
1 parent 396498e commit 6ff5517

File tree

2 files changed

+40
-2
lines changed

2 files changed

+40
-2
lines changed

examples/example.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,20 @@ const {
113113
{ jis213: '2-04-06', skip: '1-3-8', strokes: '11', ucs: '35A8' },
114114
]);
115115

116+
dictionary.addKanji({
117+
kanji: '読',
118+
kunyomi: 'あ',
119+
onyomi: 'ア',
120+
meanings: ['Asia'],
121+
stats: {
122+
strokes: '7',
123+
grade: '8',
124+
},
125+
});
126+
dictionary.addKanji({
127+
kanji: '詠',
128+
});
129+
116130
const kanjiEntry = new KanjiEntry('亜')
117131
.setKunyomi('あ')
118132
.setOnyomi('ア')

src/index.ts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import {
2525
import {
2626
DictionaryKanjiBankV3,
2727
KanjiInformation,
28+
KanjiStats,
2829
} from './types/yomitan/kanjibank';
2930
import {
3031
DictionaryKanjiMetaBankV3,
@@ -170,8 +171,31 @@ export class Dictionary {
170171
* Adds a kanji to the dictionary
171172
* @param kanji - The kanji to add
172173
*/
173-
async addKanji(kanji: KanjiInformation) {
174-
this.kanjiBank.push(kanji);
174+
async addKanji(
175+
kanji:
176+
| KanjiInformation
177+
| {
178+
kanji: string;
179+
onyomi?: string;
180+
kunyomi?: string;
181+
tags?: string;
182+
meanings?: string[];
183+
stats?: KanjiStats;
184+
},
185+
) {
186+
let array: KanjiInformation = Array.isArray(kanji)
187+
? kanji
188+
: [
189+
kanji.kanji,
190+
kanji.onyomi ?? '',
191+
kanji.kunyomi ?? '',
192+
kanji.tags ?? '',
193+
kanji.meanings ?? [],
194+
kanji.stats ?? {},
195+
];
196+
// If kanji is KanjiInformation array
197+
198+
this.kanjiBank.push(array);
175199
this.stats.kanjiCount++;
176200
if (this.kanjiBank.length >= this.options.termBankMaxSize) {
177201
await this.saveKanjiBank();

0 commit comments

Comments
 (0)