{"version":3,"file":"plugins.mjs","sources":["../../src/registries/plugins.ts"],"sourcesContent":["import { has } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\n\ntype PluginMap = Record<string, Core.Plugin>;\n\nconst pluginsRegistry = (strapi: Core.Strapi) => {\n  const plugins: PluginMap = {};\n\n  return {\n    get(name: string) {\n      return plugins[name];\n    },\n    getAll() {\n      return plugins;\n    },\n    add(name: string, pluginConfig: Core.Plugin) {\n      if (has(name, plugins)) {\n        throw new Error(`Plugin ${name} has already been registered.`);\n      }\n\n      const pluginModule = strapi.get('modules').add(`plugin::${name}`, pluginConfig);\n      plugins[name] = pluginModule;\n\n      return plugins[name];\n    },\n  };\n};\n\nexport default pluginsRegistry;\n"],"names":["pluginsRegistry","strapi","plugins","get","name","getAll","add","pluginConfig","has","Error","pluginModule"],"mappings":";;AAMA,MAAMA,kBAAkB,CAACC,MAAAA,GAAAA;AACvB,IAAA,MAAMC,UAAqB,EAAC;IAE5B,OAAO;AACLC,QAAAA,GAAAA,CAAAA,CAAIC,IAAY,EAAA;YACd,OAAOF,OAAO,CAACE,IAAAA,CAAK;AACtB,QAAA,CAAA;AACAC,QAAAA,MAAAA,CAAAA,GAAAA;YACE,OAAOH,OAAAA;AACT,QAAA,CAAA;QACAI,GAAAA,CAAAA,CAAIF,IAAY,EAAEG,YAAyB,EAAA;YACzC,IAAIC,GAAAA,CAAIJ,MAAMF,OAAAA,CAAAA,EAAU;AACtB,gBAAA,MAAM,IAAIO,KAAAA,CAAM,CAAC,OAAO,EAAEL,IAAAA,CAAK,6BAA6B,CAAC,CAAA;AAC/D,YAAA;YAEA,MAAMM,YAAAA,GAAeT,MAAAA,CAAOE,GAAG,CAAC,SAAA,CAAA,CAAWG,GAAG,CAAC,CAAC,QAAQ,EAAEF,IAAAA,CAAAA,CAAM,EAAEG,YAAAA,CAAAA;YAClEL,OAAO,CAACE,KAAK,GAAGM,YAAAA;YAEhB,OAAOR,OAAO,CAACE,IAAAA,CAAK;AACtB,QAAA;AACF,KAAA;AACF;;;;"}