UNPKG

2.1 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.getNameForDist = getNameForDist;
7exports.getValidStringFieldContentForBuildType = getValidStringFieldContentForBuildType;
8exports.getValidObjectFieldContentForBuildType = getValidObjectFieldContentForBuildType;
9exports.flowTemplate = flowTemplate;
10exports.tsTemplate = tsTemplate;
11
12function getNameForDist(name) {
13 return name.replace(/.*\//, "");
14}
15
16function 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
39function 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
73function flowTemplate(hasDefaultExport, relativePath) {
74 return `// @flow
75export * from "${relativePath}";${hasDefaultExport ? `\nexport { default } from "${relativePath}";` : ""}\n`;
76}
77
78function tsTemplate(hasDefaultExport, relativePath) {
79 return `export * from "${relativePath}";${hasDefaultExport ? `\nexport { default } from "${relativePath}";` : ""}\n`;
80}
\No newline at end of file