activate-plugin.ts 977 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import { initializeGrowiFacade, registerGrowiFacade } from '~/utils/growi-facade';
  2. import loggerFactory from '~/utils/logger';
  3. declare global {
  4. // eslint-disable-next-line vars-on-top, no-var
  5. var pluginActivators: {
  6. [key: string]: {
  7. activate: () => void,
  8. deactivate: () => void,
  9. },
  10. };
  11. }
  12. const logger = loggerFactory('growi:cli:ActivatePluginService');
  13. export class ActivatePluginService {
  14. static async activateAll(): Promise<void> {
  15. initializeGrowiFacade();
  16. // register renderer options to facade
  17. const { generateViewOptions, generatePreviewOptions } = await import('./renderer/renderer');
  18. registerGrowiFacade({
  19. markdownRenderer: {
  20. optionsGenerators: {
  21. generateViewOptions,
  22. generatePreviewOptions,
  23. },
  24. },
  25. });
  26. if (pluginActivators == null) {
  27. return;
  28. }
  29. Object.entries(pluginActivators).forEach(([, activator]) => {
  30. activator.activate();
  31. });
  32. }
  33. }