processor.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /* eslint-disable no-undef, no-var, vars-on-top, no-restricted-globals, regex/invalid */
  2. // ignore lint error because this file is js as mongoshell
  3. // ===========================================
  4. // processors for old format
  5. // ===========================================
  6. function drawioProcessor(body) {
  7. var oldDrawioRegExp = /:::\s?drawio\n(.+?)\n:::/g; // drawio old format
  8. return body.replace(oldDrawioRegExp, '``` drawio\n$1\n```');
  9. }
  10. function plantumlProcessor(body) {
  11. var oldPlantUmlRegExp = /@startuml\n([\s\S]*?)\n@enduml/g; // plantUML old format
  12. return body.replace(oldPlantUmlRegExp, '``` plantuml\n$1\n```');
  13. }
  14. function tsvProcessor(body) {
  15. var oldTsvTableRegExp = /::: tsv(-h)?\n([\s\S]*?)\n:::/g; // TSV old format
  16. return body.replace(oldTsvTableRegExp, '``` tsv$1\n$2\n```');
  17. }
  18. function csvProcessor(body) {
  19. var oldCsvTableRegExp = /::: csv(-h)?\n([\s\S]*?)\n:::/g; // CSV old format
  20. return body.replace(oldCsvTableRegExp, '``` csv$1\n$2\n```');
  21. }
  22. function bracketlinkProcessor(body) {
  23. // https://regex101.com/r/btZ4hc/1
  24. var oldBracketLinkRegExp = /(?<!\[)\[{1}(\/.*?)\]{1}(?!\])/g; // Page Link old format
  25. return body.replace(oldBracketLinkRegExp, '[[$1]]');
  26. }
  27. // ===========================================
  28. // define processors
  29. // ===========================================
  30. function getProcessorArray(migrationType) {
  31. var oldFormatProcessors;
  32. switch (migrationType) {
  33. case 'v6-drawio':
  34. oldFormatProcessors = [drawioProcessor];
  35. break;
  36. case 'v6-plantuml':
  37. oldFormatProcessors = [plantumlProcessor];
  38. break;
  39. case 'v6-tsv':
  40. oldFormatProcessors = [tsvProcessor];
  41. break;
  42. case 'v6-csv':
  43. oldFormatProcessors = [csvProcessor];
  44. break;
  45. case 'v6-bracketlink':
  46. oldFormatProcessors = [bracketlinkProcessor];
  47. break;
  48. case 'v6':
  49. oldFormatProcessors = [drawioProcessor, plantumlProcessor, tsvProcessor, csvProcessor, bracketlinkProcessor];
  50. break;
  51. default:
  52. oldFormatProcessors = [];
  53. }
  54. return oldFormatProcessors;
  55. }
  56. module.exports = getProcessorArray;