New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

fiter

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fiter - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

2

package.json
{
"name": "fiter",
"version": "0.0.2",
"version": "0.0.3",
"description": "",

@@ -5,0 +5,0 @@ "main": "./src/index.js",

@@ -72,2 +72,11 @@ # Fiter

### reduce
Analagous to the `Array.prototype.reduce` method, fiter provides its own reduce that works on any sync/async iterable value. If the iterable is synchronous the value is returned synchronously. If the iterable is async a Promise of the value is returned.
```javascript
const file = fs.createReadStream('./somefilepath.txt');
const lines = await reduce(file, (acc, value) => acc + countNewLineCharacters(chunk), 0);
```
### find

@@ -74,0 +83,0 @@

@@ -27,2 +27,11 @@ export declare function map<T, K>(it: Iterable<T>, fn: (value: T) => K): Iterable<K>;

export declare function reduce<T, K>(it: Iterable<T>, fn: (acc: T | undefined, value: T) => T): T | undefined;
export declare function reduce<T, K>(it: Iterable<T>, fn: (acc: K, value: T) => K, initialAcc: K): K;
export declare function reduce<T, K>(it: AsyncIterable<T>, fn: (acc: T, value: T) => T): Promise<T | undefined>;
export declare function reduce<T, K>(
it: AsyncIterable<T>,
fn: (acc: K, value: T) => K,
initialAcc: K
): K extends Promise<any> ? K : Promise<K>;
type Iter = Iterable<any> | AsyncIterable<any>;

@@ -29,0 +38,0 @@ type IsAsyncIterResultType<T extends Iter[]> = {

@@ -122,2 +122,37 @@ 'use strict';

function syncReduce(iter, fn, acc) {
if (acc === undefined) {
const { value, done } = iter.next();
if (done) {
return value;
}
acc = value;
}
for (const value of iter) {
acc = fn(acc, value);
}
return acc;
}
async function asyncReduce(iter, fn, acc) {
if (acc === undefined) {
const { value, done } = await iter.next();
if (done) {
return value;
}
acc = value;
}
for await (const value of iter) {
acc = fn(acc, value);
}
return acc;
}
function reduce(iter, fn, acc) {
if (iter[Symbol.asyncIterator]) {
return asyncReduce(iter[Symbol.asyncIterator](), fn, acc);
}
return syncReduce(iter[Symbol.iterator](), fn, acc);
}
module.exports = {

@@ -129,4 +164,5 @@ map,

find,
reduce,
flatMap,
flat,
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc