Skip to content

Commit ac3ce85

Browse files
authored
Merge pull request #18 from patternfly/fix-federated-module-bundle
fix(build): dynamic package.json references
2 parents 4c86c2b + 8c35b0c commit ac3ce85

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

packages/module/generate-fed-package-json.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ const sourceFiles = glob
1010

1111
const indexTypings = glob.sync(`${root}/src/index.d.ts`);
1212

13+
const ENV_AGNOSTIC_ROOT = `${root}/dist/dynamic`
14+
1315
async function copyTypings(files, dest) {
1416
const cmds = [];
1517
files.forEach((file) => {
@@ -22,29 +24,39 @@ async function copyTypings(files, dest) {
2224
async function createPackage(file) {
2325
const fileName = file.split('/').pop();
2426
const esmSource = glob.sync(`${root}/dist/esm/${fileName}/**/index.js`)[0];
27+
const cjsSource = glob.sync(`${root}/dist/cjs/${fileName}/**/index.js`)[0];
28+
const typingsSource = glob.sync(`${root}/dist/esm/${fileName}/**/index.d.ts`)[0]
2529
/**
2630
* Prevent creating package.json for directories with no JS files (like CSS directories)
2731
*/
2832
if (!esmSource) {
2933
return;
3034
}
3135

32-
const destFile = `${path.resolve(`${root}/dist/esm`, fileName)}/package.json`;
36+
const destDir = path.resolve(`${ENV_AGNOSTIC_ROOT}`, fileName)
37+
const destFile = `${destDir}/package.json`;
38+
39+
// ensure the directory exists
40+
fse.ensureDirSync(destDir)
3341

34-
const esmRelative = path.relative(file.replace('/dist/esm', ''), esmSource);
42+
const esmRelative = path.relative(file, esmSource).replace('/dist', '');
43+
const cjsRelative = path.relative(file, cjsSource).replace('/dist', '');
44+
const tsRelative = path.relative(file, typingsSource).replace('/dist', '')
3545
const content = {
36-
main: 'index.js',
46+
main: cjsRelative,
3747
module: esmRelative,
3848
};
3949
const typings = glob.sync(`${root}/src/${fileName}/*.d.ts`);
4050
const cmds = [];
41-
content.typings = 'index.d.ts';
51+
content.typings = tsRelative;
4252
cmds.push(copyTypings(typings, `${root}/dist/${fileName}`));
4353
cmds.push(fse.writeJSON(destFile, content));
4454
return Promise.all(cmds);
4555
}
4656

4757
async function generatePackages(files) {
58+
// ensure the dynamic root exists
59+
fse.ensureDirSync(path.resolve(ENV_AGNOSTIC_ROOT))
4860
const cmds = files.map((file) => createPackage(file));
4961
return Promise.all(cmds);
5062
}

0 commit comments

Comments
 (0)