1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.getRollupConfigs = getRollupConfigs;
|
7 |
|
8 | var _package = require("../package");
|
9 |
|
10 | var _rollup = require("./rollup");
|
11 |
|
12 | var _sarcastic = _interopRequireDefault(require("sarcastic"));
|
13 |
|
14 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15 |
|
16 | function getGlobals(pkg) {
|
17 | let stuff = [];
|
18 |
|
19 | if (pkg.peerDependencies) {
|
20 | stuff.push(...Object.keys(pkg.peerDependencies));
|
21 | }
|
22 |
|
23 | if (pkg.dependencies) {
|
24 | stuff.push(...Object.keys(pkg.dependencies));
|
25 | }
|
26 |
|
27 | if (stuff.length === 0) {
|
28 | return {};
|
29 | }
|
30 |
|
31 | let peerDeps = pkg.peerDependencies ? Object.keys(pkg.peerDependencies) : [];
|
32 | return peerDeps.reduce((obj, pkgName) => {
|
33 | obj[pkgName] = pkg.project.global(pkgName);
|
34 | return obj;
|
35 | }, {});
|
36 | }
|
37 |
|
38 | function getRollupConfigs(pkg, aliases) {
|
39 | let configs = [];
|
40 | let strictEntrypoints = pkg.entrypoints.map(x => x.strict());
|
41 | let hasModuleField = strictEntrypoints[0].module !== null;
|
42 | configs.push({
|
43 | config: (0, _rollup.getRollupConfig)(pkg, strictEntrypoints, aliases, "node-dev"),
|
44 | outputs: [{
|
45 | format: "cjs",
|
46 | entryFileNames: "[name].cjs.dev.js",
|
47 | chunkFileNames: "dist/[name]-[hash].cjs.dev.js",
|
48 | dir: pkg.directory,
|
49 | exports: "named"
|
50 | }, ...(hasModuleField ? [{
|
51 | format: "es",
|
52 | entryFileNames: "[name].esm.js",
|
53 | chunkFileNames: "dist/[name]-[hash].esm.js",
|
54 | dir: pkg.directory
|
55 | }] : [])]
|
56 | });
|
57 | configs.push({
|
58 | config: (0, _rollup.getRollupConfig)(pkg, strictEntrypoints, aliases, "node-prod"),
|
59 | outputs: [{
|
60 | format: "cjs",
|
61 | entryFileNames: "[name].cjs.prod.js",
|
62 | chunkFileNames: "dist/[name]-[hash].cjs.prod.js",
|
63 | dir: pkg.directory,
|
64 | exports: "named"
|
65 | }]
|
66 | });
|
67 |
|
68 |
|
69 |
|
70 | if (strictEntrypoints[0].umdMain !== null) pkg.entrypoints.map(x => x.strict()).forEach(entrypoint => {
|
71 | let umdName = (0, _sarcastic.default)(entrypoint._config.umdName, _sarcastic.default.string);
|
72 | (0, _sarcastic.default)(entrypoint.umdMain, _sarcastic.default.string);
|
73 | configs.push({
|
74 | config: (0, _rollup.getRollupConfig)(pkg, [entrypoint], aliases, "umd"),
|
75 | outputs: [{
|
76 | format: "umd",
|
77 | sourcemap: true,
|
78 | entryFileNames: "[name].umd.min.js",
|
79 | name: umdName,
|
80 | dir: pkg.directory,
|
81 | globals: getGlobals(pkg)
|
82 | }]
|
83 | });
|
84 | });
|
85 | let hasBrowserField = strictEntrypoints[0].browser !== null;
|
86 |
|
87 | if (hasBrowserField) {
|
88 | configs.push({
|
89 | config: (0, _rollup.getRollupConfig)(pkg, strictEntrypoints, aliases, "browser"),
|
90 | outputs: [{
|
91 | format: "cjs",
|
92 | entryFileNames: "[name].browser.cjs.js",
|
93 | chunkFileNames: "dist/[name]-[hash].browser.cjs.js",
|
94 | dir: pkg.directory,
|
95 | exports: "named"
|
96 | }, ...(hasModuleField ? [{
|
97 | format: "es",
|
98 | entryFileNames: "[name].browser.esm.js",
|
99 | chunkFileNames: "dist/[name]-[hash].browser.esm.js",
|
100 | dir: pkg.directory
|
101 | }] : [])]
|
102 | });
|
103 | }
|
104 |
|
105 | if (strictEntrypoints[0].reactNative !== null) {
|
106 | configs.push({
|
107 | config: (0, _rollup.getRollupConfig)(pkg, strictEntrypoints, aliases, "react-native"),
|
108 | outputs: [{
|
109 | format: "cjs",
|
110 | entryFileNames: "[name].native.cjs.js",
|
111 | chunkFileNames: "dist/[name]-[hash].native.cjs.js",
|
112 | dir: pkg.directory,
|
113 | exports: "named"
|
114 | }, ...(hasModuleField ? [{
|
115 | format: "es",
|
116 | entryFileNames: "[name].native.esm.js",
|
117 | chunkFileNames: "dist/[name]-[hash].native.esm.js",
|
118 | dir: pkg.directory
|
119 | }] : [])]
|
120 | });
|
121 | }
|
122 |
|
123 | return configs;
|
124 | } |
\ | No newline at end of file |