sharechat-setup
Version:
A generic cli to setup mundane node tasks
39 lines (37 loc) • 1.2 kB
text/typescript
import cp from 'child_process';
import fs from 'fs-extra';
import {
getUserPkgManager,
InstallationDependenciesMap,
PackageManager,
} from './helpers/getUserPackageManager';
import prompt from 'prompt';
import chalk from 'chalk';
const init = async () => {
prompt.start();
prompt.get(
[
{
name: 'packageManager',
description: `Whats your choice of package manager? should be one of ${Object.values(
PackageManager
)}`,
enum: Object.values(PackageManager),
required: false,
default: 'npm',
},
],
async (err, result) => {
const packageManager = result.packageManager as unknown as PackageManager;
await cp.execSync(InstallationDependenciesMap[packageManager]('husky'));
await cp.execSync('npx husky install');
await cp.execSync(`npm pkg set scripts.prepare="husky install"`);
await cp.execSync(`npx husky add .husky/pre-commit "npm test"`);
console.log('====================================');
console.log(chalk.bgMagenta.magenta('Successfully installed husky'));
console.log('====================================');
}
);
};
init();