validate-growi-plugin-directive.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { GrowiPluginType } from '@growi/core';
  2. import type {
  3. GrowiPluginValidationData,
  4. GrowiTemplatePluginValidationData,
  5. } from '../../../../model';
  6. import { GrowiPluginValidationError } from '../../../../model';
  7. import { validateGrowiDirective } from '../common';
  8. /**
  9. * An utility for template plugin which wrap 'validateGrowiDirective' of './common' module
  10. * @param projectDirRoot
  11. */
  12. export const validateTemplatePluginGrowiDirective = (
  13. projectDirRoot: string,
  14. ): GrowiTemplatePluginValidationData => {
  15. const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Template);
  16. const { growiPlugin } = data;
  17. // check supporting locales
  18. const supportingLocales: string[] | undefined = growiPlugin.locales;
  19. if (supportingLocales == null || supportingLocales.length === 0) {
  20. throw new GrowiPluginValidationError<
  21. GrowiPluginValidationData & { supportingLocales?: string[] }
  22. >(
  23. "Template plugin must have 'supportingLocales' and that must have one or more locales",
  24. {
  25. ...data,
  26. supportingLocales,
  27. },
  28. );
  29. }
  30. return {
  31. ...data,
  32. supportingLocales,
  33. };
  34. };