Atomic
makes a function atomic with timeout and abort signal
Install / Use
/learn @stagas/AtomicREADME
<h1 align="center">atomic</h1>
<p align="center">
makes a function atomic with timeout and abort signal
</p>
<p align="center">
<a href="#install"> 🔧 <strong>Install</strong></a>
· <a href="#example"> 🧩 <strong>Example</strong></a>
· <a href="#api"> 📜 <strong>API docs</strong></a>
· <a href="https://github.com/stagas/atomic/releases"> 🔥 <strong>Releases</strong></a>
· <a href="#contribute"> 💪🏼 <strong>Contribute</strong></a>
· <a href="https://github.com/stagas/atomic/issues"> 🖐️ <strong>Help</strong></a>
</p>
Install
$ npm i atomic
API
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->Table of Contents
atomic
Makes a function atomic.
const fn = atomic(signal => async () => {
// some long async operation
// if we've been aborted during the long
// async process above, we wouldn't want
// to continue so lets return here
if (signal.aborted) return
// do things here if we didn't abort
}, 500) // timeout at 500ms (don't pass anything for no timeout)
fn()
fn()
fn()
await fn() // this will run after the above have settled
Parameters
signalClosurefunction (signal: AbortSignal): function (...args: Array<any>): Promise<any> A function that receives the signal object from an AbortController and returns the function to become atomic.maxTimeMsnumber? Time in milliseconds to timeout the operation. Will also signal abort.
Returns any An atomic function
Contribute
All contributions are welcome!
License
MIT © 2022 stagas
