UNPKG

strapi-ts

Version:

An open source headless CMS solution to create and manage your own API. It provides a powerful dashboard and features to make your life easier. Databases supported: MongoDB, MySQL, MariaDB, PostgreSQL, SQLite

38 lines (31 loc) 1.09 kB
'use strict'; const path = require('path'); const fs = require('fs-extra'); const _ = require('lodash'); const requiredPaths = ['api', 'extensions', 'plugins', 'config', 'public']; const checkFoldersExist = ({ appPath }) => { let missingPaths = []; for (let reqPath of requiredPaths) { if (!fs.pathExistsSync(path.resolve(appPath, reqPath))) { missingPaths.push(reqPath); } } if (missingPaths.length > 0) { throw new Error(`Missing required folders:\n${missingPaths.map(p => `- ./${p}`).join('\n')}`); } }; const checkPluginsConflicts = ({ appPath, installedPlugins }) => { const localPluginNames = fs.readdirSync(path.resolve(appPath, 'plugins')); const pluginsIntersection = _.intersection(localPluginNames, installedPlugins); if (pluginsIntersection.length > 0) { throw new Error( `You have some local plugins with the same name as npm installed plugins:\n${pluginsIntersection .map(p => `- ${p}`) .join('\n')}` ); } }; module.exports = config => { checkFoldersExist(config); checkPluginsConflicts(config); };