plugin-utils-v4.ts 825 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import path from 'path';
  2. import { PluginMetaV4, PluginDefinitionV4 } from '@growi/core';
  3. export class PluginUtilsV4 {
  4. /**
  5. * return a definition objects that has following structure:
  6. *
  7. * {
  8. * name: 'crowi-plugin-X',
  9. * meta: require('crowi-plugin-X'),
  10. * entries: [
  11. * 'crowi-plugin-X/lib/client-entry'
  12. * ]
  13. * }
  14. *
  15. *
  16. * @param {string} pluginName
  17. * @return
  18. * @memberOf PluginService
  19. */
  20. async generatePluginDefinition(name: string, isForClient = false): Promise<PluginDefinitionV4> {
  21. const meta: PluginMetaV4 = await import(name);
  22. let entries = (isForClient) ? meta.clientEntries : meta.serverEntries;
  23. entries = entries.map((entryPath) => {
  24. return path.join(name, entryPath);
  25. });
  26. return {
  27. name,
  28. meta,
  29. entries,
  30. };
  31. }
  32. }