* feat: adds dev-cli * feat: adds dev-cli * fix: works with org package names * fix: medusa cli bin * hotfix(brightpearl): rounding errors + failing customer test (#199) * fix: verdacio publish * fix: update yarn lock * fix(CI): update node * fix: update yarn lock
76 lines
1.7 KiB
JavaScript
76 lines
1.7 KiB
JavaScript
const startVerdaccio = require(`verdaccio`).default;
|
|
|
|
const fs = require(`fs-extra`);
|
|
const _ = require(`lodash`);
|
|
|
|
let VerdaccioInitPromise = null;
|
|
|
|
const { verdaccioConfig } = require(`./verdaccio-config`);
|
|
const { publishPackage } = require(`./publish-package`);
|
|
const { installPackages } = require(`./install-packages`);
|
|
|
|
const startServer = () => {
|
|
if (VerdaccioInitPromise) {
|
|
return VerdaccioInitPromise;
|
|
}
|
|
|
|
console.log(`Starting local verdaccio server`);
|
|
|
|
// clear storage
|
|
fs.removeSync(verdaccioConfig.storage);
|
|
|
|
VerdaccioInitPromise = new Promise((resolve) => {
|
|
startVerdaccio(
|
|
verdaccioConfig,
|
|
verdaccioConfig.port,
|
|
verdaccioConfig.storage,
|
|
`1.0.0`,
|
|
`medusa-dev`,
|
|
(webServer, addr, pkgName, pkgVersion) => {
|
|
// console.log(webServer)
|
|
webServer.listen(addr.port || addr.path, addr.host, () => {
|
|
console.log(`Started local verdaccio server`);
|
|
|
|
resolve();
|
|
});
|
|
}
|
|
);
|
|
});
|
|
|
|
return VerdaccioInitPromise;
|
|
};
|
|
|
|
exports.startVerdaccio = startServer;
|
|
|
|
exports.publishPackagesLocallyAndInstall = async ({
|
|
packagesToPublish,
|
|
localPackages,
|
|
root,
|
|
ignorePackageJSONChanges,
|
|
yarnWorkspaceRoot,
|
|
}) => {
|
|
await startServer();
|
|
|
|
const versionPostFix = Date.now();
|
|
|
|
const newlyPublishedPackageVersions = {};
|
|
|
|
for (const packageName of packagesToPublish) {
|
|
newlyPublishedPackageVersions[packageName] = await publishPackage({
|
|
packageName,
|
|
packagesToPublish,
|
|
root,
|
|
versionPostFix,
|
|
ignorePackageJSONChanges,
|
|
});
|
|
}
|
|
|
|
const packagesToInstall = _.intersection(packagesToPublish, localPackages);
|
|
|
|
await installPackages({
|
|
packagesToInstall,
|
|
yarnWorkspaceRoot,
|
|
newlyPublishedPackageVersions,
|
|
});
|
|
};
|