UNPKG

savas-cli

Version:

A cli tool to manage releases through the terminal

72 lines (56 loc) 1.46 kB
console.reset = function () { return process.stdout.write('\033c'); } const step = (items) => { let data = {} let current = 0 let startTime = Date.now() let next = (resolve, reject) => { let item = items[current] //console.reset() console.log('[%d/%d] %s ...', current + 1, items.length, item.description) item.handler( () => { ++current if (current < items.length) { next(resolve, reject) } else { resolve(data) } }, (err) => { reject(err) }, data ) } let promise = new Promise((resolve, reject) => { next(resolve, reject) }) promise.then((data) => { let endTime = Date.now() let time = (endTime - startTime) / 1000 console.log('Finished in %ds', time) return data }) return promise } /*step([ { description: 'Creating files', handler(resolve, reject, data) { data.hello = 1 resolve() } }, { description: 'Cleaning up', handler(resolve, reject, data) { data.world = 1 resolve() } } ]).then(data => { console.log(data) })*/ module.exports = step