50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
|
|
import chalk from 'chalk';
|
||
|
|
import Listr from 'listr';
|
||
|
|
|
||
|
|
import {
|
||
|
|
uninstallNPMPackage,
|
||
|
|
throwIfExtensionUsedByInstalledMode,
|
||
|
|
removeExtensionFromConfig,
|
||
|
|
validateExtensionYarnInfo,
|
||
|
|
} from './utils/index.js';
|
||
|
|
|
||
|
|
export default async function removeExtension(packageName) {
|
||
|
|
console.log(chalk.green.bold(`Removing ohif-extension ${packageName}...`));
|
||
|
|
|
||
|
|
const tasks = new Listr(
|
||
|
|
[
|
||
|
|
{
|
||
|
|
title: `Searching for installed extension: ${packageName}`,
|
||
|
|
task: async () => await validateExtensionYarnInfo(packageName),
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: `Checking if ${packageName} is in use by an installed mode`,
|
||
|
|
task: async () =>
|
||
|
|
await throwIfExtensionUsedByInstalledMode(packageName),
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: `Uninstalling npm package: ${packageName}`,
|
||
|
|
task: async () => await uninstallNPMPackage(packageName),
|
||
|
|
},
|
||
|
|
{
|
||
|
|
title: 'Removing ohif-extension from the configuration file',
|
||
|
|
task: async () => removeExtensionFromConfig(packageName),
|
||
|
|
},
|
||
|
|
],
|
||
|
|
{
|
||
|
|
exitOnError: true,
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
await tasks
|
||
|
|
.run()
|
||
|
|
.then(() => {
|
||
|
|
console.log(
|
||
|
|
`${chalk.green.bold(`Removed ohif-extension ${packageName}`)} `
|
||
|
|
);
|
||
|
|
})
|
||
|
|
.catch(error => {
|
||
|
|
console.log(error.message);
|
||
|
|
});
|
||
|
|
}
|