UNPKG

@naturalcycles/nodejs-lib

Version:
47 lines 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const __1 = require(".."); /** * Use it in your top-level scripts like this: * * runScript(async () => { * await lalala() * // my script goes on.... * }) * * Advantages: * - Works kind of like top-level await * - No need to add `void` * - No need to add `.then(() => process.exit()` (e.g to close DB connections) * - No need to add `.catch(err => { console.error(err); process.exit(1) })` */ function runScript(fn, opt = {}) { process.on('uncaughtException', err => { console.error('uncaughtException', err); }); process.on('unhandledRejection', err => { console.error('unhandledRejection', err); }); const { memoryInterval } = opt; if (memoryInterval) { setInterval(logMemory, memoryInterval); } void (async () => { try { await fn(); setImmediate(() => process.exit(0)); } catch (err) { console.error(err); process.exit(1); } })(); } exports.runScript = runScript; function logMemory() { const { heapUsed } = process.memoryUsage(); console.log({ heapUsed: __1.mb(heapUsed), }); } //# sourceMappingURL=script.util.js.map