validate-growi-plugin-directive.ts 1.1 KB

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