|
|
|
@ -4,19 +4,31 @@ const babel = require('@rollup/plugin-babel');
|
|
|
|
const fs = require('fs');
|
|
|
|
const fs = require('fs');
|
|
|
|
const path = require('path');
|
|
|
|
const path = require('path');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Define external dependencies (e.g., react, react-dom, etc.)
|
|
|
|
|
|
|
|
// These will not be bundled but resolved at runtime
|
|
|
|
|
|
|
|
const externalDeps = ['react', 'react-dom']; // Add more as needed
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Check if a module is external
|
|
|
|
|
|
|
|
const isExternal = (id) => {
|
|
|
|
|
|
|
|
// Check if it's a node module (not a relative import)
|
|
|
|
|
|
|
|
return externalDeps.some(dep => id === dep || id.startsWith(`${dep}/`));
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
// each file in utils
|
|
|
|
// each file in utils
|
|
|
|
const utilsDir = path.join(__dirname, 'src', 'utils');
|
|
|
|
const utilsDir = path.join(__dirname, 'src', 'utils');
|
|
|
|
const utilsFiles = fs.readdirSync(utilsDir).filter((file) => file.endsWith('.js') && file !== 'index.js');
|
|
|
|
const utilsFiles = fs.readdirSync(utilsDir).filter((file) => file.endsWith('.js') && file !== 'index.js');
|
|
|
|
|
|
|
|
|
|
|
|
const srcDir = path.join(__dirname, 'src');
|
|
|
|
const srcDir = path.join(__dirname, 'src');
|
|
|
|
const hasIndexFiles = [];
|
|
|
|
const hasIndexFiles = [];
|
|
|
|
|
|
|
|
const moduleFiles = [];
|
|
|
|
const srcItems = fs.readdirSync(srcDir);
|
|
|
|
const srcItems = fs.readdirSync(srcDir);
|
|
|
|
srcItems.forEach((item) => {
|
|
|
|
srcItems.forEach((item) => {
|
|
|
|
const itemPath = path.join(srcDir, item);
|
|
|
|
const itemPath = path.join(srcDir, item);
|
|
|
|
if (fs.statSync(itemPath).isDirectory()) {
|
|
|
|
if (fs.statSync(itemPath).isDirectory()) {
|
|
|
|
const _Files = fs.readdirSync(itemPath).filter((file) => file.endsWith('.js') && file === 'index.js');
|
|
|
|
const _Files = fs.readdirSync(itemPath).filter((file) => file.endsWith('.js') && file !== 'index.js');
|
|
|
|
if (_Files.length > 0) {
|
|
|
|
if (_Files.length > 0) {
|
|
|
|
hasIndexFiles.push(item);
|
|
|
|
hasIndexFiles.push(item);
|
|
|
|
|
|
|
|
moduleFiles.push(...generateEntries(_Files, item));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
@ -25,7 +37,7 @@ hasIndexFiles.forEach(subDir => {
|
|
|
|
indexEntries.push(...generateEntries(['index.js'], subDir));
|
|
|
|
indexEntries.push(...generateEntries(['index.js'], subDir));
|
|
|
|
});
|
|
|
|
});
|
|
|
|
// src/index.js
|
|
|
|
// src/index.js
|
|
|
|
indexEntries.push(...generateEntries(['index.js']));
|
|
|
|
// indexEntries.push(...generateEntries(['index.js']));
|
|
|
|
|
|
|
|
|
|
|
|
function generateEntries(files, parentDir) {
|
|
|
|
function generateEntries(files, parentDir) {
|
|
|
|
// Create entries with both ESM and CJS outputs
|
|
|
|
// Create entries with both ESM and CJS outputs
|
|
|
|
@ -41,7 +53,7 @@ function generateEntries(files, parentDir) {
|
|
|
|
format: 'es',
|
|
|
|
format: 'es',
|
|
|
|
exports: 'named',
|
|
|
|
exports: 'named',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
external: [],
|
|
|
|
external: isExternal, // Function to determine external dependencies
|
|
|
|
plugins: [
|
|
|
|
plugins: [
|
|
|
|
nodeResolve({
|
|
|
|
nodeResolve({
|
|
|
|
preferBuiltins: false,
|
|
|
|
preferBuiltins: false,
|
|
|
|
@ -71,7 +83,7 @@ function generateEntries(files, parentDir) {
|
|
|
|
format: 'cjs',
|
|
|
|
format: 'cjs',
|
|
|
|
exports: 'named',
|
|
|
|
exports: 'named',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
external: [],
|
|
|
|
external: isExternal, // Function to determine external dependencies
|
|
|
|
plugins: [
|
|
|
|
plugins: [
|
|
|
|
nodeResolve({
|
|
|
|
nodeResolve({
|
|
|
|
preferBuiltins: false,
|
|
|
|
preferBuiltins: false,
|
|
|
|
@ -100,5 +112,6 @@ function generateEntries(files, parentDir) {
|
|
|
|
module.exports = [
|
|
|
|
module.exports = [
|
|
|
|
// ...utilsEntries
|
|
|
|
// ...utilsEntries
|
|
|
|
...generateEntries(utilsFiles, 'utils'),
|
|
|
|
...generateEntries(utilsFiles, 'utils'),
|
|
|
|
...indexEntries,
|
|
|
|
// ...indexEntries,
|
|
|
|
|
|
|
|
...moduleFiles,
|
|
|
|
];
|
|
|
|
];
|
|
|
|
|