/* Copyright (c) 2020 Ezzat Chamudi * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ /* eslint-disable camelcase */ import { FuriganaMatch } from 'furigana'; import * as JMdict from './jmdict'; import * as JMnedict from './jmnedict'; interface NameValuePair { name: string, value: string } interface KanjiArrayPair { kanji: string, array: string[] } interface KanjivgTree { element?: string, g?: KanjivgTree[] } /** * Definitions for each row in the exported database */ export interface DictIndexRow { source: number, id: number, kanji: string | null, reading: string, furigana: FuriganaMatch[] | null, pri_point: number | null, meaning: string, tags: string[] | null } export type JMdictEntitiesRow = NameValuePair; export interface JMdictJsonsRow { ent_seq: number, json: JMdict.entry } export type JMnedictEntitiesRow = NameValuePair; export interface JMnedictJsonsRow { ent_seq: number, json: JMnedict.entry } export interface KanjiGroupsRow { kanji: string, kanken: number, jlptNew: 5|4|3|2|1|null } export interface KanjidicRow { sort: number, literal: string, jis208: string | null, jis212: string | null, jis213: string | null, ucs: string | null, rad_classical: number | null, rad_nelson_c: number | null, grade: number | null, stroke_count: number | null, variant: { [key: string]: string }[] | null, freq: number | null, rad_name: string | null, jlpt: number | null, dic_number: { [key: string]: string }[] | null, query_code: { [key: string]: string }[] | null, reading: { [key: string]: string }[] | null, meaning: string[] | null, nanori: string[] | null } export interface KanjivgTreeRow { kanji: number, tree_json: KanjivgTree } export interface MetadataRow { key: number, value: string } export type RelatedAntonymsRow = KanjiArrayPair; export type RelatedLookalikesRow = KanjiArrayPair; export type RelatedSynonyms = KanjiArrayPair; export type RelatedVariants = KanjiArrayPair; export interface WanikaniAudioRow { kanji: string, reading: string } export interface KanjiAliveRow { kanji: string, kname: string, kstroke: number, kmeaning: string, kgrade: number, kunyomi_ja: string | null, kunyomi: string | null, onyomi_ja: string | null, onyomi: string | null, examples: [string, string][], radical: string | null, rad_order: number, rad_stroke: number, rad_name_ja: string, rad_name: string, rad_meaning: string, rad_position_ja: string | null, rad_position: string | null }