xref: /aosp_15_r20/tools/netsim/ui/rollup.config.mjs (revision cf78ab8cffb8fc9207af348f23af247fb04370a6)
1*cf78ab8cSAndroid Build Coastguard Worker// Import rollup plugins
2*cf78ab8cSAndroid Build Coastguard Workerimport { rollupPluginHTML as html } from '@web/rollup-plugin-html';
3*cf78ab8cSAndroid Build Coastguard Workerimport { copy } from '@web/rollup-plugin-copy';
4*cf78ab8cSAndroid Build Coastguard Workerimport resolve from '@rollup/plugin-node-resolve';
5*cf78ab8cSAndroid Build Coastguard Workerimport { terser } from 'rollup-plugin-terser';
6*cf78ab8cSAndroid Build Coastguard Workerimport summary from 'rollup-plugin-summary';
7*cf78ab8cSAndroid Build Coastguard Workerimport { rollupImportMapPlugin } from "rollup-plugin-import-map";
8*cf78ab8cSAndroid Build Coastguard Worker
9*cf78ab8cSAndroid Build Coastguard Workerexport default {
10*cf78ab8cSAndroid Build Coastguard Worker  plugins: [
11*cf78ab8cSAndroid Build Coastguard Worker    // Entry point for application build; can specify a glob to build multiple
12*cf78ab8cSAndroid Build Coastguard Worker    // HTML files for non-SPA app
13*cf78ab8cSAndroid Build Coastguard Worker    html({
14*cf78ab8cSAndroid Build Coastguard Worker      input: ['./web/index.html', './web/dev.html']
15*cf78ab8cSAndroid Build Coastguard Worker    }),
16*cf78ab8cSAndroid Build Coastguard Worker    // Add Import maps from libraries to CDN urls
17*cf78ab8cSAndroid Build Coastguard Worker    rollupImportMapPlugin([
18*cf78ab8cSAndroid Build Coastguard Worker      {
19*cf78ab8cSAndroid Build Coastguard Worker        "imports": {
20*cf78ab8cSAndroid Build Coastguard Worker          'lit': 'https://cdn.jsdelivr.net/gh/lit/dist@2/core/lit-core.min.js',
21*cf78ab8cSAndroid Build Coastguard Worker          'lit/decorators.js': 'https://cdn.skypack.dev/pin/[email protected]/mode=imports/optimized/lit/decorators.js',
22*cf78ab8cSAndroid Build Coastguard Worker          'lit/directives/live.js': 'https://cdn.jsdelivr.net/gh/lit/dist@2/all/lit-all.min.js',
23*cf78ab8cSAndroid Build Coastguard Worker          'lit/directives/style-map.js': 'https://cdn.jsdelivr.net/gh/lit/dist@2/all/lit-all.min.js',
24*cf78ab8cSAndroid Build Coastguard Worker        }
25*cf78ab8cSAndroid Build Coastguard Worker      }
26*cf78ab8cSAndroid Build Coastguard Worker    ]),
27*cf78ab8cSAndroid Build Coastguard Worker    // Resolve bare module specifiers to relative paths
28*cf78ab8cSAndroid Build Coastguard Worker    resolve(),
29*cf78ab8cSAndroid Build Coastguard Worker    // Minify JS
30*cf78ab8cSAndroid Build Coastguard Worker    terser({
31*cf78ab8cSAndroid Build Coastguard Worker      ecma: 2020,
32*cf78ab8cSAndroid Build Coastguard Worker      module: true,
33*cf78ab8cSAndroid Build Coastguard Worker      warnings: true,
34*cf78ab8cSAndroid Build Coastguard Worker    }),
35*cf78ab8cSAndroid Build Coastguard Worker    // Print bundle summary
36*cf78ab8cSAndroid Build Coastguard Worker    summary(),
37*cf78ab8cSAndroid Build Coastguard Worker    // Copy any static assets to build directory
38*cf78ab8cSAndroid Build Coastguard Worker    copy({
39*cf78ab8cSAndroid Build Coastguard Worker      patterns: ['./assets/*'],
40*cf78ab8cSAndroid Build Coastguard Worker    }),
41*cf78ab8cSAndroid Build Coastguard Worker  ],
42*cf78ab8cSAndroid Build Coastguard Worker  output: {
43*cf78ab8cSAndroid Build Coastguard Worker    dir: 'dist',
44*cf78ab8cSAndroid Build Coastguard Worker    preserveModules: true,
45*cf78ab8cSAndroid Build Coastguard Worker    preserveModulesRoot: 'web'
46*cf78ab8cSAndroid Build Coastguard Worker  },
47*cf78ab8cSAndroid Build Coastguard Worker  preserveEntrySignatures: 'strict',
48*cf78ab8cSAndroid Build Coastguard Worker};