All files / platform/cli/src/commands addExtension.js

0% Statements 0/11
100% Branches 0/0
0% Functions 0/6
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54                                                                                                           
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);
    });
}