import type { ProjectPluginConfig } from '@/types' import { MODULE_TYPE } from '@ones-open/utils' export const getPluginAbilityTypes = (pluginConfig: ProjectPluginConfig) => { const { abilities = [], apis = [] } = pluginConfig const abilitySet = new Set( abilities.map(({ abilityType, version }) => `${abilityType}@${version}`), ) if (apis.length) { abilitySet.add('api-register-jack@1.0.0') } return Array.from(abilitySet) } export const getPluginModuleTypes = (pluginConfig: ProjectPluginConfig) => { const existedModuleTypes = pluginConfig.modules || [] const existedModuleTypesSet = Array.from( new Set(existedModuleTypes.map(({ moduleType }) => moduleType)), ) existedModuleTypesSet.forEach((moduleType) => { if (!MODULE_TYPE[moduleType]) { throw new Error(`${moduleType} is not a valid module`) } }) return existedModuleTypesSet }