plugin.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import loggerFactory from '~/utils/logger';
  2. const logger = loggerFactory('growi:plugin');
  3. export default class GrowiPlugin {
  4. /**
  5. * process plugin entry
  6. *
  7. * @param {AppContainer} appContainer
  8. * @param {GrowiRenderer} originRenderer The origin instance of GrowiRenderer
  9. *
  10. * @memberof CrowiPlugin
  11. */
  12. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  13. installAll(appContainer, originRenderer) {
  14. // import plugin definitions
  15. let definitions = [];
  16. try {
  17. definitions = require('^/tmp/plugins/plugin-definitions');
  18. }
  19. catch (e) {
  20. logger.error('failed to load definitions');
  21. logger.error(e);
  22. return;
  23. }
  24. definitions.forEach((definition) => {
  25. const meta = definition.meta;
  26. switch (meta.pluginSchemaVersion) {
  27. // v1 is deprecated
  28. case 1:
  29. logger.warn('pluginSchemaVersion 1 is deprecated', definition);
  30. break;
  31. // v2 is deprecated
  32. case 2:
  33. logger.warn('pluginSchemaVersion 2 is deprecated', definition);
  34. break;
  35. case 3:
  36. definition.entries.forEach((entry) => {
  37. entry(appContainer);
  38. });
  39. break;
  40. default:
  41. logger.warn('Unsupported schema version', meta.pluginSchemaVersion);
  42. }
  43. });
  44. }
  45. }
  46. window.growiPlugin = new GrowiPlugin();