import * as fs from 'fs-extra' import * as path from 'path' import { execSync } from 'child_process' import { packageExistsOnNpm } from './packageExistsOnNpm' import { isLocalMarkedAsPublished } from './isLocalMarkedAsPublished' export async function publishPackage( packageName: string, packageVersion: string, packageDir: string ) { if (isLocalMarkedAsPublished(packageDir)) { console.log(`Package ${packageName}@${packageVersion} already published.`) return } if (!(await packageExistsOnNpm(packageName, packageVersion))) { execSync('npm publish', { cwd: packageDir, stdio: 'inherit' }) fs.writeFileSync(path.join(packageDir, `.published`), '') } else { console.log( `Package ${packageName}@${packageVersion} already exists on npm.` ) fs.writeFileSync(path.join(packageDir, `.published`), '') } }