35 lines
922 B
JavaScript
35 lines
922 B
JavaScript
/* eslint-disable @typescript-eslint/no-var-requires */
|
|
const glob = require('glob');
|
|
const path = require('path');
|
|
|
|
const writeGlobEntry = (pattern, to) => {
|
|
return glob.sync(pattern).reduce(
|
|
(collection, file) => ({
|
|
...collection,
|
|
[`${to}/${path.basename(file, '.ts')}`]: file,
|
|
}),
|
|
{},
|
|
);
|
|
};
|
|
|
|
module.exports = function (config) {
|
|
const appName = process.argv[process.argv.length - 1];
|
|
config.entry = {
|
|
main: path.join(__dirname, 'apps', appName, 'src', 'main.ts'),
|
|
...writeGlobEntry(
|
|
path.resolve('apps', appName, 'src', 'database', 'migrations', '*.ts'),
|
|
'database/migrations',
|
|
),
|
|
...writeGlobEntry(
|
|
path.resolve('apps', appName, 'src', 'database', 'seeds', '*.ts'),
|
|
'database/seeds',
|
|
),
|
|
};
|
|
config.output = {
|
|
path: `${__dirname}/dist/apps/${appName}`,
|
|
filename: '[name].js',
|
|
libraryTarget: 'commonjs',
|
|
};
|
|
return config;
|
|
};
|