import { gramaticalDetail, Word } from "../models/word"; import { getDatabaseClient, DB_NAME, connectToDatabaseServer } from "../db-utils"; import da from '../default-library/DA.json'; import db from '../default-library/DB.json'; import dc from '../default-library/DC.json'; import dd from '../default-library/DD.json'; import de from '../default-library/DE.json'; import df from '../default-library/DF.json'; import dg from '../default-library/DG.json'; import dh from '../default-library/DH.json'; import di from '../default-library/DI.json'; import dj from '../default-library/DJ.json'; import dk from '../default-library/DK.json'; import dl from '../default-library/DL.json'; import dm from '../default-library/DM.json'; import dn from '../default-library/DN.json'; import doy from '../default-library/DO.json'; import dp from '../default-library/DP.json'; import dq from '../default-library/DQ.json'; import dr from '../default-library/DR.json'; import ds from '../default-library/DS.json'; import dt from '../default-library/DT.json'; import du from '../default-library/DU.json'; import dv from '../default-library/DV.json'; import dw from '../default-library/DW.json'; import dx from '../default-library/DX.json'; import dy from '../default-library/DY.json'; import dz from '../default-library/DZ.json'; const defaultLibFiles = [da, db, dc, dd, de, df, dg, dh, di, dj, dk, dl, dm, dn, doy, dp, dq, dr, ds, dt, du, dv, dw, dx, dy, dz]; (async function compile_default_library_to_db() { await connectToDatabaseServer(); const wordCollection = getDatabaseClient().db(DB_NAME).collection('words'); let allWords: Array = []; for (let fileIndex = 0; fileIndex < defaultLibFiles.length; fileIndex += 1) { const file: any = defaultLibFiles[fileIndex]; const allKeys: Array = (Object.keys(file)); for (let i = 0; i < allKeys.length; i += 1) { // file[allKeys[i]] let wordName = allKeys[i]; let wordDetails = file[allKeys[i]]; let gramaticalDetailKeys: Array = []; let grammaticalDetails : Array = []; if (wordDetails && wordDetails['MEANINGS']) { gramaticalDetailKeys = (Object.keys(wordDetails['MEANINGS'])); for (let j = 0; j < gramaticalDetailKeys.length; j += 1) { if (wordDetails['MEANINGS'] && wordDetails['MEANINGS'][gramaticalDetailKeys[j]]) { grammaticalDetails.push({ type: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][0], description: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][1], context: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][2], examples: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][3] }); } } } allWords.push({ name: wordName, languageType: 'ENGLISH', similarWords: wordDetails && wordDetails['SYNONYMS'] ? wordDetails['SYNONYMS'] : [], oppositeWords: wordDetails && wordDetails['ANTONYMS'] ? wordDetails['ANTONYMS'] : [], grammaticalDetails: grammaticalDetails }); } } const newWordCollection = await wordCollection.insertMany(allWords); console.log(newWordCollection.acknowledged); return; }())