UNPKG

1.97 kBPlain TextView Raw
1import { ExternalOption, OutputOptions as RollupOutputOptions, Plugin, RollupOptions } from "rollup";
2import {
3 BrowserBuildFormat,
4 BuildFormat,
5 ConfigExtra,
6 FilterablePlugins,
7 ModuleBuildFormat,
8 OutputExtra,
9} from "./types";
10
11export function createOutput(
12 format: BuildFormat,
13 file: string,
14 sourcemap: boolean,
15 esModule: boolean,
16 interop: boolean,
17 extra?: OutputExtra,
18): RollupOutputOptions {
19
20 const output: RollupOutputOptions = {
21
22 file,
23 format,
24
25 sourcemap,
26 esModule,
27 interop,
28
29 ...extra,
30
31 };
32
33 return output;
34
35}
36
37export function createConfig(
38 input: string,
39 output: RollupOutputOptions,
40 external: ExternalOption,
41 plugins: FilterablePlugins,
42 extra?: ConfigExtra,
43): RollupOptions {
44
45 const config: RollupOptions = {
46
47 input,
48 output,
49 external,
50
51 plugins: plugins.filter<Plugin>(Boolean as any),
52
53 ...extra,
54
55 };
56
57 return config;
58
59}
60
61export function createModuleConfig(
62 input: string,
63 format: ModuleBuildFormat,
64 file: string,
65 sourcemap: boolean,
66 esModule: boolean,
67 interop: boolean,
68 external: ExternalOption,
69 plugins: FilterablePlugins,
70): RollupOptions {
71
72 const output = createOutput(format, file, sourcemap, esModule, interop);
73
74 return createConfig(
75 input,
76 output,
77 external,
78 plugins,
79 );
80
81}
82
83export function createBrowserConfig(
84 input: string,
85 format: BrowserBuildFormat,
86 file: string,
87 sourcemap: boolean,
88 esModule: boolean,
89 interop: boolean,
90 plugins: Array<Plugin | null | false>,
91 name: string,
92 extend: boolean,
93 globals?: Record<string, string>,
94 id?: string | null,
95) {
96
97 const output = createOutput(format, file, sourcemap, esModule, interop, {
98 name,
99 extend,
100 globals,
101 });
102
103 if (id && (format === "umd" || format === "amd")) {
104 output.amd = {
105 id,
106 };
107 }
108
109 const external = globals ? Object.keys(globals) : [];
110
111 return createConfig(
112 input,
113 output,
114 external,
115 plugins,
116 );
117
118}