// Copyright 2022 The Pigweed Authors // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. import commonjs from '@rollup/plugin-commonjs'; import resolve from '@rollup/plugin-node-resolve'; import pluginTypescript from '@rollup/plugin-typescript'; import path from 'path'; import nodePolyfills from 'rollup-plugin-node-polyfills'; import postcss from 'rollup-plugin-postcss'; import sourceMaps from 'rollup-plugin-sourcemaps'; import terser from '@rollup/plugin-terser'; export default [ // Bundle proto collection into one UMD file for consumption from browser { input: path.join('dist', 'protos', 'collection.ts'), output: [ { file: path.join('dist', 'proto_collection.umd.js'), format: 'umd', sourcemap: true, name: 'PigweedProtoCollection', }, ], plugins: [ pluginTypescript({ tsconfig: './tsconfig.json' }), commonjs(), resolve(), // Resolve source maps to the original source sourceMaps(), ], }, // Bundle Pigweed log component and modules { input: path.join('ts', 'logging.ts'), output: [ { file: path.join('dist', 'logging.umd.js'), format: 'umd', sourcemap: true, name: 'PigweedLogging', inlineDynamicImports: true, }, { file: path.join('dist', 'logging.mjs'), format: 'esm', sourcemap: true, inlineDynamicImports: true, }, ], plugins: [ postcss({ plugins: [] }), pluginTypescript({ tsconfig: './tsconfig.json', exclude: ['**/*_test.ts'], }), nodePolyfills(), resolve(), commonjs(), // Resolve source maps to the original source sourceMaps(), ], }, // Bundle pw_console's web counterparts { input: path.join('ts', 'console.ts'), output: [ { file: path.join('dist', 'pw_console.umd.js'), format: 'umd', sourcemap: true, name: 'PWConsole', inlineDynamicImports: true, }, { file: path.join('dist', 'pw_console.mjs'), format: 'esm', sourcemap: true, inlineDynamicImports: true, }, ], plugins: [ postcss({ plugins: [] }), pluginTypescript({ tsconfig: './tsconfig.json', exclude: ['**/*_test.ts'], }), nodePolyfills(), resolve(), commonjs(), // Resolve source maps to the original source sourceMaps(), // Minify builds terser(), ], }, // Bundle Pigweed modules { input: path.join('ts', 'index.ts'), output: [ { file: path.join('dist', 'index.umd.js'), format: 'umd', sourcemap: true, name: 'Pigweed', }, { file: path.join('dist', 'index.mjs'), format: 'esm', sourcemap: true, }, ], plugins: [ pluginTypescript({ tsconfig: './tsconfig.json', exclude: ['**/*_test.ts'], }), nodePolyfills(), resolve(), commonjs(), // Resolve source maps to the original source sourceMaps(), ], }, ];