henkan 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -67,7 +67,7 @@ const noKanjiFormWords = dictWords
67
67
 
68
68
  const ankiNotesFile = generateAnkiNotesFile(noKanjiFormWords);
69
69
 
70
- if (ankiNotesFile) fs.writeFileSync('./nokfwords.json', ankiNotesFile, 'utf-8');
70
+ fs.writeFileSync('./nokfwords.json', ankiNotesFile, 'utf-8');
71
71
  ```
72
72
 
73
73
  # API
package/dist/index.cjs.js CHANGED
@@ -351,14 +351,18 @@ var noteMap = /* @__PURE__ */ new Map([
351
351
  ["conjunction", ["conjunction", "Conjunction", "\u63A5\u7D9A\u8A5E"]],
352
352
  [
353
353
  "expression",
354
- ["expression", "Expression", ["\u6210\u8A9E", "\u6210\u53E5", "\u6163\u7528\u53E5", "\u52D5\u8A5E\u53E5"]]
354
+ [
355
+ "expression",
356
+ "Expression",
357
+ ["\u6210\u8A9E", "\u6210\u53E5", "\u6163\u7528\u53E5", "\u52D5\u8A5E\u53E5", "\u611F\u52D5\u8A5E"]
358
+ ]
355
359
  ],
356
360
  [
357
361
  "idiomatic expression",
358
362
  [
359
363
  "idiomatic_expression",
360
364
  "Idiomatic expression",
361
- ["\u6210\u8A9E", "\u6210\u53E5", "\u6163\u7528\u53E5", "\u52D5\u8A5E\u53E5"]
365
+ ["\u6210\u8A9E", "\u6210\u53E5", "\u6163\u7528\u53E5", "\u52D5\u8A5E\u53E5", "\u611F\u52D5\u8A5E"]
362
366
  ]
363
367
  ],
364
368
  [
@@ -598,7 +602,7 @@ var noteMap = /* @__PURE__ */ new Map([
598
602
  [
599
603
  "expression",
600
604
  "Expression (phrase, clause, etc.)",
601
- ["\u6210\u8A9E", "\u6210\u53E5", "\u6163\u7528\u53E5", "\u52D5\u8A5E\u53E5"]
605
+ ["\u6210\u8A9E", "\u6210\u53E5", "\u6163\u7528\u53E5", "\u52D5\u8A5E\u53E5", "\u611F\u52D5\u8A5E"]
602
606
  ]
603
607
  ],
604
608
  ["adverbial noun (fukushitekimeishi)", ["adverbial_noun", "Adverbial noun"]],
@@ -1768,7 +1772,7 @@ function getWordDefinitions(entryList, jmDict) {
1768
1772
  for (const gloss of sense.glosses) {
1769
1773
  let reading = void 0;
1770
1774
  if (gloss !== void 0) {
1771
- if (gloss.trim().includes("\u306E\u6F22\u5B57\u8868\u8A18\u3002") || gloss.trim().includes("\u3092\u53C2\u7167\u3002")) {
1775
+ if (gloss.trim().includes("\u6F22\u5B57\u8868\u8A18") || gloss.trim().includes("\u53C2\u7167")) {
1772
1776
  for (const r of validReadings)
1773
1777
  if (gloss.trim().includes(r)) {
1774
1778
  reading = r;
@@ -2049,7 +2053,7 @@ function getWordDefinitions(entryList, jmDict) {
2049
2053
  for (const gloss of sense.glosses) {
2050
2054
  let reading = void 0;
2051
2055
  if (gloss !== void 0) {
2052
- if (gloss.trim().includes("\u306E\u6F22\u5B57\u8868\u8A18\u3002") || gloss.trim().includes("\u3092\u53C2\u7167\u3002")) {
2056
+ if (gloss.trim().includes("\u6F22\u5B57\u8868\u8A18") || gloss.trim().includes("\u53C2\u7167")) {
2053
2057
  for (const r of pair.readings)
2054
2058
  if (gloss.trim().includes(r)) {
2055
2059
  reading = r;
@@ -2431,7 +2435,7 @@ function getWord(word, dict, kanjiDic, examples, definitions, noteTypeName, deck
2431
2435
  } else return void 0;
2432
2436
  }
2433
2437
  function getKanji(kanji, dict, jmDict, svgList, noteTypeName, deckPath) {
2434
- var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2438
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
2435
2439
  let dictKanji = void 0;
2436
2440
  if (typeof kanji === "string" && dict)
2437
2441
  dictKanji = dict.find((entry) => entry.kanji === kanji);
@@ -2479,19 +2483,39 @@ function getKanji(kanji, dict, jmDict, svgList, noteTypeName, deckPath) {
2479
2483
  if (kunyomi.length > 0) kanji2.kunyomi = kunyomi;
2480
2484
  }
2481
2485
  if (jmDict) {
2482
- const kanjiWords = (_a = Array.isArray(jmDict) ? jmDict : jmDict.get(kanji2.kanji)) == null ? void 0 : _a.filter(
2486
+ let kanjiWords = Array.isArray(
2487
+ jmDict
2488
+ ) ? jmDict : jmDict.get(kanji2.kanji);
2489
+ const firstKfWords = kanjiWords == null ? void 0 : kanjiWords.filter(
2483
2490
  (word) => word.kanjiForms && word.kanjiForms[0].form.includes(kanji2.kanji)
2484
- ).slice(0, 3);
2491
+ );
2492
+ if (firstKfWords && firstKfWords.length > 0) kanjiWords = firstKfWords;
2493
+ else if (kanjiWords) kanjiWords = kanjiWords;
2485
2494
  if (kanjiWords) {
2486
2495
  const validWords = [];
2487
2496
  for (const word of kanjiWords) {
2488
- const translation = word.meanings[0].translations[0];
2489
- const translationText = typeof translation === "object" ? translation.translation : translation;
2497
+ const kanjiForm = (_a = firstKfWords && firstKfWords.length > 0 ? word.kanjiForms[0] : word.kanjiForms.find(
2498
+ (kf) => kf.form.includes(kanji2.kanji)
2499
+ )) == null ? void 0 : _a.form;
2500
+ if (!kanjiForm) continue;
2501
+ const reading = (_b = firstKfWords && firstKfWords.length > 0 ? word.readings[0] : word.readings.find(
2502
+ (reading2) => reading2.kanjiFormRestrictions && reading2.kanjiFormRestrictions.includes(kanjiForm)
2503
+ )) == null ? void 0 : _b.reading;
2504
+ if (!reading) continue;
2505
+ const meaning = firstKfWords && firstKfWords.length > 0 ? (_c = word.meanings[0]) == null ? void 0 : _c.translations[0] : (_d = word.meanings.find(
2506
+ (m) => m.translations && m.kanjiFormRestrictions && m.kanjiFormRestrictions.includes(kanjiForm)
2507
+ )) == null ? void 0 : _d.translations[0];
2508
+ if (!meaning) continue;
2490
2509
  validWords.push({
2491
- kanjiForms: [{ kanjiForm: word.kanjiForms[0].form }],
2492
- readings: [{ reading: word.readings[0].reading }],
2493
- translations: [{ translation: translationText }]
2510
+ kanjiForms: [{ kanjiForm }],
2511
+ readings: [{ reading }],
2512
+ translations: [
2513
+ {
2514
+ translation: typeof meaning === "string" ? meaning : meaning.translation
2515
+ }
2516
+ ]
2494
2517
  });
2518
+ if (validWords.length === 3) break;
2495
2519
  }
2496
2520
  if (validWords.length > 0) kanji2.words = validWords;
2497
2521
  }
@@ -2525,10 +2549,10 @@ function getKanji(kanji, dict, jmDict, svgList, noteTypeName, deckPath) {
2525
2549
  ...kanji2.frequency ? [`kanji::frequency::${kanji2.frequency}`] : [],
2526
2550
  ...kanji2.grade ? [`kanji::grade::${kanji2.grade}`] : [],
2527
2551
  ...kanji2.jlpt ? [`kanji::pre-2010_jlpt::${kanji2.jlpt.toLowerCase()}`] : [],
2528
- `kanji::onyomi::${(_c = (_b = kanji2.onyomi) == null ? void 0 : _b.length) != null ? _c : 0}`,
2529
- `kanji::kunyomi::${(_e = (_d = kanji2.kunyomi) == null ? void 0 : _d.length) != null ? _e : 0}`,
2530
- `kanji::nanori::${(_g = (_f = kanji2.nanori) == null ? void 0 : _f.length) != null ? _g : 0}`,
2531
- `kanji::words::${(_i = (_h = kanji2.words) == null ? void 0 : _h.length) != null ? _i : 0}`,
2552
+ `kanji::onyomi::${(_f = (_e = kanji2.onyomi) == null ? void 0 : _e.length) != null ? _f : 0}`,
2553
+ `kanji::kunyomi::${(_h = (_g = kanji2.kunyomi) == null ? void 0 : _g.length) != null ? _h : 0}`,
2554
+ `kanji::nanori::${(_j = (_i = kanji2.nanori) == null ? void 0 : _i.length) != null ? _j : 0}`,
2555
+ `kanji::words::${(_l = (_k = kanji2.words) == null ? void 0 : _k.length) != null ? _l : 0}`,
2532
2556
  ...kanji2.svg ? ["kanji::has_svg"] : []
2533
2557
  );
2534
2558
  return kanji2;