Express TS project
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { gramaticalDetail, Word } from "../models/word";
  2. import { getDatabaseClient, DB_NAME, connectToDatabaseServer } from "../db-utils";
  3. import da from '../default-library/DA.json';
  4. import db from '../default-library/DB.json';
  5. import dc from '../default-library/DC.json';
  6. import dd from '../default-library/DD.json';
  7. import de from '../default-library/DE.json';
  8. import df from '../default-library/DF.json';
  9. import dg from '../default-library/DG.json';
  10. import dh from '../default-library/DH.json';
  11. import di from '../default-library/DI.json';
  12. import dj from '../default-library/DJ.json';
  13. import dk from '../default-library/DK.json';
  14. import dl from '../default-library/DL.json';
  15. import dm from '../default-library/DM.json';
  16. import dn from '../default-library/DN.json';
  17. import doy from '../default-library/DO.json';
  18. import dp from '../default-library/DP.json';
  19. import dq from '../default-library/DQ.json';
  20. import dr from '../default-library/DR.json';
  21. import ds from '../default-library/DS.json';
  22. import dt from '../default-library/DT.json';
  23. import du from '../default-library/DU.json';
  24. import dv from '../default-library/DV.json';
  25. import dw from '../default-library/DW.json';
  26. import dx from '../default-library/DX.json';
  27. import dy from '../default-library/DY.json';
  28. import dz from '../default-library/DZ.json';
  29. 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];
  30. (async function compile_default_library_to_db() {
  31. await connectToDatabaseServer();
  32. const wordCollection = getDatabaseClient().db(DB_NAME).collection<Word>('words');
  33. let allWords: Array<Word> = [];
  34. for (let fileIndex = 0; fileIndex < defaultLibFiles.length; fileIndex += 1) {
  35. const file: any = defaultLibFiles[fileIndex];
  36. const allKeys: Array<string> = (Object.keys(file));
  37. for (let i = 0; i < allKeys.length; i += 1) {
  38. // file[allKeys[i]]
  39. let wordName = allKeys[i];
  40. let wordDetails = file[allKeys[i]];
  41. let gramaticalDetailKeys: Array<string> = [];
  42. let grammaticalDetails : Array<gramaticalDetail> = [];
  43. if (wordDetails && wordDetails['MEANINGS']) {
  44. gramaticalDetailKeys = (Object.keys(wordDetails['MEANINGS']));
  45. for (let j = 0; j < gramaticalDetailKeys.length; j += 1) {
  46. if (wordDetails['MEANINGS'] && wordDetails['MEANINGS'][gramaticalDetailKeys[j]]) {
  47. grammaticalDetails.push({
  48. type: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][0],
  49. description: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][1],
  50. context: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][2],
  51. examples: wordDetails['MEANINGS'][gramaticalDetailKeys[j]][3]
  52. });
  53. }
  54. }
  55. }
  56. allWords.push({
  57. name: wordName,
  58. languageType: 'ENGLISH',
  59. similarWords: wordDetails && wordDetails['SYNONYMS'] ? wordDetails['SYNONYMS'] : [],
  60. oppositeWords: wordDetails && wordDetails['ANTONYMS'] ? wordDetails['ANTONYMS'] : [],
  61. grammaticalDetails: grammaticalDetails
  62. });
  63. }
  64. }
  65. const newWordCollection = await wordCollection.insertMany(allWords);
  66. console.log(newWordCollection.acknowledged);
  67. return;
  68. }())