diff --git a/src/Umbraco.Web.UI.Client/src/apps/rollup.config.js b/src/Umbraco.Web.UI.Client/src/apps/rollup.config.js deleted file mode 100644 index b7a7db0a6c..0000000000 --- a/src/Umbraco.Web.UI.Client/src/apps/rollup.config.js +++ /dev/null @@ -1,27 +0,0 @@ -import esbuild from 'rollup-plugin-esbuild'; -import pluginJson from '@rollup/plugin-json'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import { readdirSync, lstatSync } from 'fs'; - -const exclude = []; -const apps = readdirSync('./src/apps').filter((corePackage) => lstatSync(`src/apps/${corePackage}`).isDirectory()); -const allowedApps = apps.filter((corePackage) => !exclude.includes(corePackage)); - -export default allowedApps - .map((app) => { - /** @type {import('rollup').RollupOptions[]} */ - return [ - { - input: `./src/apps/${app}/index.ts`, - external: [/^@umbraco-cms\//], - output: { - dir: `./src/apps/${app}/dist`, - format: 'es', - preserveModules: true, - preserveModulesRoot: `./src/apps/${app}`, - }, - plugins: [nodeResolve(), pluginJson(), esbuild()], - }, - ]; - }) - .flat(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/rollup.config.js b/src/Umbraco.Web.UI.Client/src/packages/rollup.config.js deleted file mode 100644 index 7585c9797d..0000000000 --- a/src/Umbraco.Web.UI.Client/src/packages/rollup.config.js +++ /dev/null @@ -1,31 +0,0 @@ -import esbuild from 'rollup-plugin-esbuild'; -import pluginJson from '@rollup/plugin-json'; -import { nodeResolve } from '@rollup/plugin-node-resolve'; -import { readdirSync, lstatSync } from 'fs'; - -const exclude = []; - -const corePackages = readdirSync('./src/packages').filter((corePackage) => - lstatSync(`src/packages/${corePackage}`).isDirectory() -); - -const allowedPackages = corePackages.filter((corePackage) => !exclude.includes(corePackage)); - -export default allowedPackages - .map((corePackage) => { - /** @type {import('rollup').RollupOptions[]} */ - return [ - { - input: `./src/packages/${corePackage}/index.ts`, - external: [/^@umbraco-cms\//], - output: { - dir: `./src/packages/${corePackage}/dist`, - format: 'es', - preserveModules: true, - preserveModulesRoot: `./src/packages/${corePackage}`, - }, - plugins: [nodeResolve(), pluginJson(), esbuild()], - }, - ]; - }) - .flat(); diff --git a/src/Umbraco.Web.UI.Client/src/rollup.config.js b/src/Umbraco.Web.UI.Client/src/rollup.config.js new file mode 100644 index 0000000000..69f97d49d9 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/rollup.config.js @@ -0,0 +1,42 @@ +import esbuild from 'rollup-plugin-esbuild'; +import pluginJson from '@rollup/plugin-json'; +import { nodeResolve } from '@rollup/plugin-node-resolve'; +import { readdirSync, lstatSync } from 'fs'; + +const readFolders = (path) => readdirSync(path).filter((module) => lstatSync(`${path}/${module}`).isDirectory()); +const createModuleDescriptors = (folderName) => + readFolders(`./src/${folderName}`).map((moduleName) => { + return { + name: moduleName, + root: `./src/${folderName}/${moduleName}`, + dist: `./dist-cms/${folderName}/${moduleName}`, + }; + }); + +const exclude = ['app']; +const packages = createModuleDescriptors('packages'); +const apps = createModuleDescriptors('apps'); + +const modules = [...apps, ...packages]; +const allowedModules = modules.filter((module) => !exclude.includes(module.name)); + +console.log(allowedModules); + +export default allowedModules + .map((module) => { + /** @type {import('rollup').RollupOptions[]} */ + return [ + { + input: `${module.root}/index.ts`, + external: [/^@umbraco-cms\//], + output: { + dir: `${module.dist}`, + format: 'es', + preserveModules: true, + preserveModulesRoot: `${module.root}`, + }, + plugins: [nodeResolve(), pluginJson(), esbuild()], + }, + ]; + }) + .flat();