53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as plugins from './mod.plugins.js';
 | 
						|
 | 
						|
import { logger } from '../gitzone.logging.js';
 | 
						|
 | 
						|
export const run = async () => {
 | 
						|
  const smartInteract = new plugins.smartinteract.SmartInteract([
 | 
						|
    {
 | 
						|
      name: `registryUrls`,
 | 
						|
      message: `What are the comma separated registry URLs?`,
 | 
						|
      type: `input`,
 | 
						|
      default: `https://registry.npmjs.org`,
 | 
						|
      validate: (stringInput) => {
 | 
						|
        return stringInput !== '' && !process.env.CI;
 | 
						|
      },
 | 
						|
    },
 | 
						|
    {
 | 
						|
      name: `oldPackageName`,
 | 
						|
      message: `Whats the name of the OLD package?`,
 | 
						|
      type: `input`,
 | 
						|
      default: ``,
 | 
						|
      validate: (stringInput) => {
 | 
						|
        return stringInput !== '' && !process.env.CI;
 | 
						|
      },
 | 
						|
    },
 | 
						|
    {
 | 
						|
      name: `newPackageName`,
 | 
						|
      message: `Whats the name of the NEW package?`,
 | 
						|
      type: `input`,
 | 
						|
      default: ``,
 | 
						|
      validate: (stringInput) => {
 | 
						|
        return stringInput !== '' && !process.env.CI;
 | 
						|
      },
 | 
						|
    },
 | 
						|
  ]);
 | 
						|
  const answerBucket = await smartInteract.runQueue();
 | 
						|
  const registryUrls = answerBucket.getAnswerFor(`registryUrls`).split(',');
 | 
						|
  const oldPackageName = answerBucket.getAnswerFor(`oldPackageName`);
 | 
						|
  const newPackageName = answerBucket.getAnswerFor(`newPackageName`);
 | 
						|
  logger.log(
 | 
						|
    'info',
 | 
						|
    `Deprecating package ${oldPackageName} in favour of ${newPackageName}`,
 | 
						|
  );
 | 
						|
  const smartshellInstance = new plugins.smartshell.Smartshell({
 | 
						|
    executor: 'bash',
 | 
						|
  });
 | 
						|
  for (const registryUrl of registryUrls) {
 | 
						|
    await smartshellInstance.exec(
 | 
						|
      `npm deprecate ${oldPackageName}@* ` +
 | 
						|
        `"${oldPackageName} has been deprecated in favour of ${newPackageName} - please upgrade asap!!!" --registry ${registryUrl}`,
 | 
						|
    );
 | 
						|
  }
 | 
						|
};
 |