xref: /aosp_15_r20/external/pigweed/rollup.config.js (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker// Copyright 2022 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker//
3*61c4878aSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker// use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker// the License at
6*61c4878aSAndroid Build Coastguard Worker//
7*61c4878aSAndroid Build Coastguard Worker//     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker//
9*61c4878aSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker// License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker// the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerimport commonjs from '@rollup/plugin-commonjs';
16*61c4878aSAndroid Build Coastguard Workerimport resolve from '@rollup/plugin-node-resolve';
17*61c4878aSAndroid Build Coastguard Workerimport pluginTypescript from '@rollup/plugin-typescript';
18*61c4878aSAndroid Build Coastguard Workerimport path from 'path';
19*61c4878aSAndroid Build Coastguard Workerimport nodePolyfills from 'rollup-plugin-node-polyfills';
20*61c4878aSAndroid Build Coastguard Workerimport postcss from 'rollup-plugin-postcss';
21*61c4878aSAndroid Build Coastguard Workerimport sourceMaps from 'rollup-plugin-sourcemaps';
22*61c4878aSAndroid Build Coastguard Workerimport terser from '@rollup/plugin-terser';
23*61c4878aSAndroid Build Coastguard Worker
24*61c4878aSAndroid Build Coastguard Workerexport default [
25*61c4878aSAndroid Build Coastguard Worker  // Bundle proto collection into one UMD file for consumption from browser
26*61c4878aSAndroid Build Coastguard Worker  {
27*61c4878aSAndroid Build Coastguard Worker    input: path.join('dist', 'protos', 'collection.ts'),
28*61c4878aSAndroid Build Coastguard Worker    output: [
29*61c4878aSAndroid Build Coastguard Worker      {
30*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'protos', 'collection.umd.js'),
31*61c4878aSAndroid Build Coastguard Worker        format: 'umd',
32*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
33*61c4878aSAndroid Build Coastguard Worker        name: 'PigweedProtoCollection',
34*61c4878aSAndroid Build Coastguard Worker      },
35*61c4878aSAndroid Build Coastguard Worker    ],
36*61c4878aSAndroid Build Coastguard Worker    plugins: [
37*61c4878aSAndroid Build Coastguard Worker      pluginTypescript({ tsconfig: './tsconfig.json' }),
38*61c4878aSAndroid Build Coastguard Worker      commonjs(),
39*61c4878aSAndroid Build Coastguard Worker      resolve(),
40*61c4878aSAndroid Build Coastguard Worker
41*61c4878aSAndroid Build Coastguard Worker      // Resolve source maps to the original source
42*61c4878aSAndroid Build Coastguard Worker      sourceMaps(),
43*61c4878aSAndroid Build Coastguard Worker    ],
44*61c4878aSAndroid Build Coastguard Worker  },
45*61c4878aSAndroid Build Coastguard Worker  // Bundle Pigweed log component and modules
46*61c4878aSAndroid Build Coastguard Worker  {
47*61c4878aSAndroid Build Coastguard Worker    input: path.join('ts', 'logging.ts'),
48*61c4878aSAndroid Build Coastguard Worker    output: [
49*61c4878aSAndroid Build Coastguard Worker      {
50*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'logging.umd.js'),
51*61c4878aSAndroid Build Coastguard Worker        format: 'umd',
52*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
53*61c4878aSAndroid Build Coastguard Worker        name: 'PigweedLogging',
54*61c4878aSAndroid Build Coastguard Worker        inlineDynamicImports: true,
55*61c4878aSAndroid Build Coastguard Worker      },
56*61c4878aSAndroid Build Coastguard Worker      {
57*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'logging.mjs'),
58*61c4878aSAndroid Build Coastguard Worker        format: 'esm',
59*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
60*61c4878aSAndroid Build Coastguard Worker        inlineDynamicImports: true,
61*61c4878aSAndroid Build Coastguard Worker      },
62*61c4878aSAndroid Build Coastguard Worker    ],
63*61c4878aSAndroid Build Coastguard Worker    plugins: [
64*61c4878aSAndroid Build Coastguard Worker      postcss({ plugins: [] }),
65*61c4878aSAndroid Build Coastguard Worker      pluginTypescript({
66*61c4878aSAndroid Build Coastguard Worker        tsconfig: './tsconfig.json',
67*61c4878aSAndroid Build Coastguard Worker        exclude: ['**/*_test.ts'],
68*61c4878aSAndroid Build Coastguard Worker      }),
69*61c4878aSAndroid Build Coastguard Worker      nodePolyfills(),
70*61c4878aSAndroid Build Coastguard Worker      resolve(),
71*61c4878aSAndroid Build Coastguard Worker      commonjs(),
72*61c4878aSAndroid Build Coastguard Worker
73*61c4878aSAndroid Build Coastguard Worker      // Resolve source maps to the original source
74*61c4878aSAndroid Build Coastguard Worker      sourceMaps(),
75*61c4878aSAndroid Build Coastguard Worker    ],
76*61c4878aSAndroid Build Coastguard Worker  },
77*61c4878aSAndroid Build Coastguard Worker  // Bundle pw_console's web counterparts
78*61c4878aSAndroid Build Coastguard Worker  {
79*61c4878aSAndroid Build Coastguard Worker    input: path.join('ts', 'console.ts'),
80*61c4878aSAndroid Build Coastguard Worker    output: [
81*61c4878aSAndroid Build Coastguard Worker      {
82*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'pw_console.umd.js'),
83*61c4878aSAndroid Build Coastguard Worker        format: 'umd',
84*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
85*61c4878aSAndroid Build Coastguard Worker        name: 'PWConsole',
86*61c4878aSAndroid Build Coastguard Worker        inlineDynamicImports: true,
87*61c4878aSAndroid Build Coastguard Worker      },
88*61c4878aSAndroid Build Coastguard Worker      {
89*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'pw_console.mjs'),
90*61c4878aSAndroid Build Coastguard Worker        format: 'esm',
91*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
92*61c4878aSAndroid Build Coastguard Worker        inlineDynamicImports: true,
93*61c4878aSAndroid Build Coastguard Worker      },
94*61c4878aSAndroid Build Coastguard Worker    ],
95*61c4878aSAndroid Build Coastguard Worker    plugins: [
96*61c4878aSAndroid Build Coastguard Worker      postcss({ plugins: [] }),
97*61c4878aSAndroid Build Coastguard Worker      pluginTypescript({
98*61c4878aSAndroid Build Coastguard Worker        tsconfig: './tsconfig.json',
99*61c4878aSAndroid Build Coastguard Worker        exclude: ['**/*_test.ts'],
100*61c4878aSAndroid Build Coastguard Worker      }),
101*61c4878aSAndroid Build Coastguard Worker      nodePolyfills(),
102*61c4878aSAndroid Build Coastguard Worker      resolve(),
103*61c4878aSAndroid Build Coastguard Worker      commonjs(),
104*61c4878aSAndroid Build Coastguard Worker
105*61c4878aSAndroid Build Coastguard Worker      // Resolve source maps to the original source
106*61c4878aSAndroid Build Coastguard Worker      sourceMaps(),
107*61c4878aSAndroid Build Coastguard Worker
108*61c4878aSAndroid Build Coastguard Worker      // Minify builds
109*61c4878aSAndroid Build Coastguard Worker      terser(),
110*61c4878aSAndroid Build Coastguard Worker    ],
111*61c4878aSAndroid Build Coastguard Worker  },
112*61c4878aSAndroid Build Coastguard Worker  // Bundle Pigweed modules
113*61c4878aSAndroid Build Coastguard Worker  {
114*61c4878aSAndroid Build Coastguard Worker    input: path.join('ts', 'index.ts'),
115*61c4878aSAndroid Build Coastguard Worker    output: [
116*61c4878aSAndroid Build Coastguard Worker      {
117*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'index.umd.js'),
118*61c4878aSAndroid Build Coastguard Worker        format: 'umd',
119*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
120*61c4878aSAndroid Build Coastguard Worker        name: 'Pigweed',
121*61c4878aSAndroid Build Coastguard Worker      },
122*61c4878aSAndroid Build Coastguard Worker      {
123*61c4878aSAndroid Build Coastguard Worker        file: path.join('dist', 'index.mjs'),
124*61c4878aSAndroid Build Coastguard Worker        format: 'esm',
125*61c4878aSAndroid Build Coastguard Worker        sourcemap: true,
126*61c4878aSAndroid Build Coastguard Worker      },
127*61c4878aSAndroid Build Coastguard Worker    ],
128*61c4878aSAndroid Build Coastguard Worker    plugins: [
129*61c4878aSAndroid Build Coastguard Worker      pluginTypescript({
130*61c4878aSAndroid Build Coastguard Worker        tsconfig: './tsconfig.json',
131*61c4878aSAndroid Build Coastguard Worker        exclude: ['**/*_test.ts'],
132*61c4878aSAndroid Build Coastguard Worker      }),
133*61c4878aSAndroid Build Coastguard Worker      nodePolyfills(),
134*61c4878aSAndroid Build Coastguard Worker      resolve(),
135*61c4878aSAndroid Build Coastguard Worker      commonjs(),
136*61c4878aSAndroid Build Coastguard Worker
137*61c4878aSAndroid Build Coastguard Worker      // Resolve source maps to the original source
138*61c4878aSAndroid Build Coastguard Worker      sourceMaps(),
139*61c4878aSAndroid Build Coastguard Worker    ],
140*61c4878aSAndroid Build Coastguard Worker  },
141*61c4878aSAndroid Build Coastguard Worker];
142