PromucFlow_constructor/app/shared/build-shared-dep.js

65 lines
2.0 KiB
JavaScript
Raw Normal View History

const { exec } = require("child_process");
const path = require("path");
const sharedJSON = require("./shared-dependencies.json");
const CURRENT_DIRECTORY = path.join(__dirname, '..');
const SCOPE_DIRECTORY = process.env.CURRENT_SCOPE;
async function main() {
console.log("\x1b[33m", "*******************************************");
console.log("\x1b[33m", "Bundling Shared Dependencies");
console.log("\x1b[33m", "*******************************************");
const dependencies = sharedJSON[SCOPE_DIRECTORY];
if ((dependencies && dependencies.length > 0) || !SCOPE_DIRECTORY) {
try {
await Promise.all(
dependencies.map(
(dependencyFolder) =>
new Promise((resolve, reject) => {
console.log(
"\x1b[0m",
`Bundling Dependency for \x1b[34m${dependencyFolder}`
);
exec(
`
cd ${CURRENT_DIRECTORY}/${dependencyFolder.replace("@", "")};
yarn unlink;
yarn run link-package;
`,
(err) => {
if (err) {
reject(err);
}
console.log(
"\x1b[0m",
`Bundled Dependency for \x1b[34m${dependencyFolder}`
);
resolve();
}
);
})
)
);
} catch (error) {
console.log(
"\x1b[31m",
"Error in Bundling Shared Dependencies ❌",
error
);
}
console.log("\x1b[32m", "*******************************************");
console.log("\x1b[32m", "Done Bundling Shared Dependencies ✔");
console.log("\x1b[32m", "*******************************************");
} else {
console.log("\x1b[34m", "*******************************************");
console.log("\x1b[34m", "No Shared Dependency to bundle");
console.log("\x1b[34m", "*******************************************");
}
}
main();