{"version":3,"file":"validate-growi-plugin-directive.cjs","sources":["../../../../../src/v4/server/utils/theme/validate-growi-plugin-directive.ts"],"sourcesContent":["import type { GrowiThemeMetadata } from '@growi/core';\nimport { GrowiPluginType, isGrowiThemeMetadata } from '@growi/core';\n\nimport type {\n  GrowiPluginValidationData,\n  GrowiThemePluginValidationData,\n} from '../../../../model/index.js';\nimport { GrowiPluginValidationError } from '../../../../model/index.js';\nimport { validateGrowiDirective } from '../common/index.js';\n\n/**\n * An utility for theme plugin which wrap 'validateGrowiDirective' of './common' module\n * @param projectDirRoot\n */\nexport const validateThemePluginGrowiDirective = (\n  projectDirRoot: string,\n): GrowiThemePluginValidationData => {\n  const data = validateGrowiDirective(projectDirRoot, GrowiPluginType.Theme);\n\n  const { growiPlugin } = data;\n\n  // check themes\n  if (\n    growiPlugin.themes == null ||\n    !Array.isArray(growiPlugin.themes) ||\n    growiPlugin.themes.length === 0\n  ) {\n    throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n      \"Theme plugin must have 'themes' array and that must have one or more theme metadata\",\n    );\n  }\n\n  const validMetadatas: GrowiThemeMetadata[] = [];\n  const invalidObjects: unknown[] = [];\n  for (const theme of growiPlugin.themes) {\n    if (isGrowiThemeMetadata(theme)) {\n      validMetadatas.push(theme);\n    } else {\n      invalidObjects.push(theme);\n    }\n  }\n\n  if (invalidObjects.length > 0) {\n    throw new GrowiPluginValidationError<GrowiPluginValidationData>(\n      `Some of theme metadata are invalid: ${invalidObjects.toString()}`,\n    );\n  }\n\n  return {\n    ...data,\n    themes: validMetadatas,\n  };\n};\n"],"names":["validateThemePluginGrowiDirective","projectDirRoot","data","validateGrowiDirective","GrowiPluginType","growiPlugin","GrowiPluginValidationError","validMetadatas","invalidObjects","theme","isGrowiThemeMetadata"],"mappings":"2OAcaA,EACXC,GACmC,CACnC,MAAMC,EAAOC,EAAAA,uBAAuBF,EAAgBG,EAAAA,gBAAgB,KAAK,EAEnE,CAAE,YAAAC,GAAgBH,EAGxB,GACEG,EAAY,QAAU,MACtB,CAAC,MAAM,QAAQA,EAAY,MAAM,GACjCA,EAAY,OAAO,SAAW,EAE9B,MAAM,IAAIC,EAAAA,2BACR,qFAAA,EAIJ,MAAMC,EAAuC,CAAA,EACvCC,EAA4B,CAAA,EAClC,UAAWC,KAASJ,EAAY,OAC1BK,EAAAA,qBAAqBD,CAAK,EAC5BF,EAAe,KAAKE,CAAK,EAEzBD,EAAe,KAAKC,CAAK,EAI7B,GAAID,EAAe,OAAS,EAC1B,MAAM,IAAIF,EAAAA,2BACR,uCAAuCE,EAAe,UAAU,EAAA,EAIpE,MAAO,CACL,GAAGN,EACH,OAAQK,CAAA,CAEZ"}