From faf65b0636f8ce2734e39d5c18aa10cca50d0a63 Mon Sep 17 00:00:00 2001 From: sudheer Date: Wed, 29 Mar 2023 19:46:56 +0530 Subject: [PATCH] Update rollup config to export all nested typescript files as part of build --- rollup.config.js | 53 ++++++++++++++++++++++++++++++------------------ 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/rollup.config.js b/rollup.config.js index dfd4e8153..72ea8665f 100755 --- a/rollup.config.js +++ b/rollup.config.js @@ -7,33 +7,46 @@ import { nodeResolve } from '@rollup/plugin-node-resolve'; import filesize from 'rollup-plugin-filesize'; import json from 'rollup-plugin-json'; import { string } from 'rollup-plugin-string'; +import glob from 'glob'; + import pkg from './package.json'; const name = 'snapshot'; -const input = 'src/index.ts'; +const inputFiles = glob.sync('src/**/*.ts'); // Find all TypeScript files in nested directories const external = [...Object.keys(pkg.dependencies || {})]; +const createConfig = (input) => ({ + input, + context: 'window', + output: [ + { + name, + file: `dist/${input.replace(/src\/(.+)\.ts$/, '$1.js')}`, + format: 'umd' + } + ], + external, + plugins: [ + json(), + builtins(), + typescript({ clean: true }), + nodeResolve({ preferBuiltins: true, browser: true }), + commonjs(), + globals(), + terser(), + filesize(), + string({ + include: '**/*.md' + }) + ] +}); + +const umdConfigs = inputFiles.map((input) => createConfig(input)); + export default [ + ...umdConfigs, { - input, - context: 'window', - output: [{ name, file: pkg.browser, format: 'umd' }], - plugins: [ - json(), - builtins(), - typescript({ clean: true }), - nodeResolve({ preferBuiltins: true, browser: true }), - commonjs(), - globals(), - terser(), - filesize(), - string({ - include: '**/*.md' - }) - ] - }, - { - input, + input: 'src/index.ts', external, output: [ { file: pkg.main, format: 'cjs' },