54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
import Listr from 'listr';
|
|
import chalk from 'chalk';
|
|
|
|
import {
|
|
installNPMPackage,
|
|
getYarnInfo,
|
|
validateExtension,
|
|
getVersionedPackageName,
|
|
addExtensionToConfig,
|
|
} from './utils/index.js';
|
|
|
|
export default async function addExtension(packageName, version) {
|
|
console.log(chalk.green.bold(`Adding ohif-extension ${packageName}...`));
|
|
|
|
const versionedPackageName = getVersionedPackageName(packageName, version);
|
|
|
|
const tasks = new Listr(
|
|
[
|
|
{
|
|
title: `Searching for extension: ${versionedPackageName}`,
|
|
task: async () => await validateExtension(packageName, version),
|
|
},
|
|
{
|
|
title: `Installing npm package: ${versionedPackageName}`,
|
|
task: async () => await installNPMPackage(packageName, version),
|
|
},
|
|
{
|
|
title: 'Adding ohif-extension to the configuration file',
|
|
task: async ctx => {
|
|
const yarnInfo = await getYarnInfo(packageName);
|
|
|
|
addExtensionToConfig(packageName, yarnInfo);
|
|
|
|
ctx.yarnInfo = yarnInfo;
|
|
},
|
|
},
|
|
],
|
|
{
|
|
exitOnError: true,
|
|
}
|
|
);
|
|
|
|
await tasks
|
|
.run()
|
|
.then(ctx => {
|
|
console.log(
|
|
`${chalk.green.bold(`Added ohif-extension ${packageName}@${ctx.yarnInfo.version}`)} `
|
|
);
|
|
})
|
|
.catch(error => {
|
|
console.log(error.message);
|
|
});
|
|
}
|