UNPKG

tsds-publish

Version:

Development stack for TypeScript libraries

40 lines (39 loc) 1.38 kB
import spawn from 'cross-spawn-cb'; import fs from 'fs'; import path from 'path'; import Queue from 'queue-cb'; import { wrapWorker } from 'tsds-lib'; import url from 'url'; const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename); const major = +process.versions.node.split('.')[0]; const version = major > 18 ? 'local' : 'stable'; const dist = path.join(__dirname, '..'); const workerWrapper = wrapWorker(path.join(dist, 'cjs', 'command.js')); function worker(_args, options, callback) { const cwd = options.cwd || process.cwd(); options = { ...options }; options.package = JSON.parse(fs.readFileSync(path.join(cwd, 'package.json'), 'utf8')); const queue = new Queue(1); if ((options.package.scripts || {}).version) queue.defer(spawn.bind(null, 'npm', [ 'run', 'version' ], { ...options, cwd })); queue.defer((cb)=>spawn('git', [ 'add', '.' ], options, cb.bind(null, null))); queue.defer((cb)=>spawn('git', [ 'commit', '-m', `${options.package.version}` ], options, cb.bind(null, null))); queue.await(callback); } export default function post(args, options, callback) { major < 0 ? workerWrapper(version, args, options) : worker(args, options, callback); }