1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.getNameForDist = getNameForDist;
|
7 | exports.getValidStringFieldContentForBuildType = getValidStringFieldContentForBuildType;
|
8 | exports.getValidObjectFieldContentForBuildType = getValidObjectFieldContentForBuildType;
|
9 | exports.flowTemplate = flowTemplate;
|
10 | exports.tsTemplate = tsTemplate;
|
11 |
|
12 | function getNameForDist(name) {
|
13 | return name.replace(/.*\//, "");
|
14 | }
|
15 |
|
16 | function getValidStringFieldContentForBuildType(type, pkgName) {
|
17 | let safeName = getNameForDist(pkgName);
|
18 |
|
19 | switch (type) {
|
20 | case "main":
|
21 | {
|
22 | return `dist/${safeName}.cjs.js`;
|
23 | }
|
24 |
|
25 | case "module":
|
26 | {
|
27 | return `dist/${safeName}.esm.js`;
|
28 | }
|
29 |
|
30 | case "umd:main":
|
31 | {
|
32 | return `dist/${safeName}.umd.min.js`;
|
33 | }
|
34 | }
|
35 |
|
36 | throw new Error(`unknown string build type: ${type}. this is likely a bug in preconstruct.`);
|
37 | }
|
38 |
|
39 | function getValidObjectFieldContentForBuildType(type, pkgName, hasModuleBuild) {
|
40 | let safeName = getNameForDist(pkgName);
|
41 |
|
42 | switch (type) {
|
43 | case "browser":
|
44 | {
|
45 | let obj = {
|
46 | [`./dist/${safeName}.cjs.js`]: `./dist/${safeName}.browser.cjs.js`
|
47 | };
|
48 |
|
49 | if (hasModuleBuild) {
|
50 | obj[`./dist/${safeName}.esm.js`] = `./dist/${safeName}.browser.esm.js`;
|
51 | }
|
52 |
|
53 | return obj;
|
54 | }
|
55 |
|
56 | case "react-native":
|
57 | {
|
58 | let obj = {
|
59 | [`./dist/${safeName}.cjs.js`]: `./dist/${safeName}.native.cjs.js`
|
60 | };
|
61 |
|
62 | if (hasModuleBuild) {
|
63 | obj[`./dist/${safeName}.esm.js`] = `./dist/${safeName}.native.esm.js`;
|
64 | }
|
65 |
|
66 | return obj;
|
67 | }
|
68 | }
|
69 |
|
70 | throw new Error(`unknown object build type: ${type}. this is likely a bug in preconstruct.`);
|
71 | }
|
72 |
|
73 | function flowTemplate(hasDefaultExport, relativePath) {
|
74 | return `// @flow
|
75 | export * from "${relativePath}";${hasDefaultExport ? `\nexport { default } from "${relativePath}";` : ""}\n`;
|
76 | }
|
77 |
|
78 | function tsTemplate(hasDefaultExport, relativePath) {
|
79 | return `export * from "${relativePath}";${hasDefaultExport ? `\nexport { default } from "${relativePath}";` : ""}\n`;
|
80 | } |
\ | No newline at end of file |