Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Promised First-In-First-Out buffer. Await on push to be told when a value is consumed and await on shift for a value to consume when the buffer is empty.
Promised First-In-First-Out buffer. Await on push to be told when a value is consumed and await on shift for a value to consume when the buffer is empty
npm i p-fifo
await
on push to be told when your pushed value is consumed:
const Fifo = require('p-fifo')
const fifo = new Fifo()
// Consume a value from the buffer after 1 second
setTimeout(() => fifo.shift(), 1000)
console.time('push')
// Nothing in the buffer, push a value and wait for it to be consumed
await fifo.push('hello')
console.log('"hello" was consumed')
console.timeEnd('push')
// Output:
// "hello" was consumed
// push: 1006.723ms
If the buffer is empty, you can await
on a value to be pushed:
const Fifo = require('p-fifo')
const fifo = new Fifo()
// Push a value into the buffer after 1 second
setTimeout(() => fifo.push('hello'), 1000)
console.time('shift')
// Nothing in the buffer, wait for something to arrive
const value = await fifo.shift()
console.log(`consumed "${value}" from the buffer`)
console.timeEnd('shift')
// Output:
// consumed "hello" from the buffer
// shift: 1002.652ms
const fifo = new Fifo()
fifo.push(value): Promise
Add a value to the end of the FIFO buffer.
Returns a promise that is resolved when the pushed value is shifted off the start of the buffer.
fifo.shift(): Promise<Any>
Remove the first value from the FIFO buffer and return that removed value in a promise.
Returns a promise that resolves to a value from start of the FIFO buffer. If there are no values in the buffer the promise will resolve when a value is next pushed.
Note that multiple calls to shift when the buffer is empty will not resolve to the same value i.e. a corresponding number of calls to push
will need to be made to resolve all the promises returned by calls to shift
.
fifo.isEmpty(): Boolean
Returns true
if the FIFO buffer is empty and false
otherwise.
Feel free to dive in! Open an issue or submit PRs.
MIT © Alan Shaw
FAQs
Promised First-In-First-Out buffer. Await on push to be told when a value is consumed and await on shift for a value to consume when the buffer is empty.
The npm package p-fifo receives a total of 90,753 weekly downloads. As such, p-fifo popularity was classified as popular.
We found that p-fifo demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.