plugin.js 846 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. export default class CrowiPlugin {
  2. /**
  3. * process plugin entry
  4. *
  5. * @param {Crowi} crowi Crowi context class
  6. * @param {CrowiRenderer} crowiRenderer CrowiRenderer
  7. *
  8. * @memberof CrowiPlugin
  9. */
  10. installAll(crowi, crowiRenderer) {
  11. // import plugin definitions
  12. let definitions = [];
  13. try {
  14. definitions = require('../../tmp/plugins/plugin-definitions');
  15. }
  16. catch(e) {
  17. // TODO show warning
  18. // do nothing
  19. return;
  20. }
  21. definitions.forEach((definition) => {
  22. const meta = definition.meta;
  23. const entries = definition.entries;
  24. // v1 is deprecated
  25. // v2
  26. if (2 === meta.pluginSchemaVersion) {
  27. entries.forEach((entry) => {
  28. entry(crowi, crowiRenderer);
  29. });
  30. }
  31. });
  32. }
  33. }
  34. window.crowiPlugin = new CrowiPlugin(); // FIXME