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

iteragain

Package Overview
Dependencies
Maintainers
1
Versions
113
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

iteragain - npm Package Compare versions

Comparing version 0.12.2 to 1.0.0

.nojekyll

2

concat.d.ts
import { IteratorOrIterable } from './types';
import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
/** Concatenates any number of iterator/iterables together, one after another. */

@@ -4,0 +4,0 @@ export declare function concat<A, B>(a: IteratorOrIterable<A>, b: IteratorOrIterable<B>): ExtendedIterator<A | B>;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.concat = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const toIterator_1 = require("./toIterator");

@@ -6,0 +6,0 @@ const ConcatIterator_1 = require("./internal/ConcatIterator");

@@ -1,2 +0,2 @@

import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
import { IteratorOrIterable } from './types';

@@ -3,0 +3,0 @@ /** Attaches the index at each value of `arg`. */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.enumerate = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const toIterator_1 = require("./toIterator");

@@ -6,0 +6,0 @@ const MapIterator_1 = require("./internal/MapIterator");

@@ -1,2 +0,2 @@

import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
import { IteratorOrIterable, FlattenDeep, FlattenDepth1, FlattenDepth2, FlattenDepth3, FlattenDepth4, FlattenDepth5 } from './types';

@@ -3,0 +3,0 @@ /**

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.flatten = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const FlattenIterator_1 = require("./internal/FlattenIterator");

@@ -6,0 +6,0 @@ const toIterator_1 = require("./toIterator");

import concat from './concat';
import enumerate from './enumerate';
import ExtendedIterator from './ExtendedIterator';
import flatten from './flatten';

@@ -12,7 +11,6 @@ import isIterable from './isIterable';

import zipLongest from './zipLongest';
export { concat, enumerate, ExtendedIterator, flatten, isIterable, isIterator, iter, range, toIterator, zip, zipLongest, };
export { concat, enumerate, flatten, isIterable, isIterator, iter, range, toIterator, zip, zipLongest, };
declare const _default: {
concat: typeof concat;
enumerate: typeof enumerate;
ExtendedIterator: typeof ExtendedIterator;
flatten: typeof flatten;

@@ -19,0 +17,0 @@ isIterable: typeof isIterable;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.zipLongest = exports.zip = exports.toIterator = exports.range = exports.iter = exports.isIterator = exports.isIterable = exports.flatten = exports.ExtendedIterator = exports.enumerate = exports.concat = void 0;
exports.zipLongest = exports.zip = exports.toIterator = exports.range = exports.iter = exports.isIterator = exports.isIterable = exports.flatten = exports.enumerate = exports.concat = void 0;
const concat_1 = require("./concat");

@@ -8,4 +8,2 @@ exports.concat = concat_1.default;

exports.enumerate = enumerate_1.default;
const ExtendedIterator_1 = require("./ExtendedIterator");
exports.ExtendedIterator = ExtendedIterator_1.default;
const flatten_1 = require("./flatten");

@@ -30,3 +28,2 @@ exports.flatten = flatten_1.default;

enumerate: enumerate_1.default,
ExtendedIterator: ExtendedIterator_1.default,
flatten: flatten_1.default,

@@ -33,0 +30,0 @@ isIterable: isIterable_1.default,

@@ -1,2 +0,2 @@

import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
import { IteratorOrIterable } from './types';

@@ -3,0 +3,0 @@ /** Shorthand for `new ExtendedIterator(toIterator(arg))`. */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.iter = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const toIterator_1 = require("./toIterator");

@@ -6,0 +6,0 @@ function iter(arg) {

{
"name": "iteragain",
"version": "0.12.2",
"description": "Javascript ES6 Iterable/Iterator utilities.",
"version": "1.0.0",
"description": "Javascript Iterable/Iterator/Generator-function utilities.",
"main": "index.js",

@@ -19,9 +19,9 @@ "types": "index.d.ts",

"bm:prof": "node -r ts-node/register --prof benchmark/index.bm.ts",
"typedoc": "typedoc --entryPointStrategy expand src/",
"v:patch": "npm version patch -m \"Upgrade package version to v%s\"",
"v:minor": "npm version minor -m \"Upgrade package version to v%s\"",
"v:major": "npm version major -m \"Upgrade package version to v%s\"",
"typedoc": "typedoc --includeVersion --entryPointStrategy expand src/ && git add docs",
"v:patch": "npm version patch -f -m \"Upgrade package version to v%s\"",
"v:minor": "npm version minor -f -m \"Upgrade package version to v%s\"",
"v:major": "npm version major -f -m \"Upgrade package version to v%s\"",
"prepare": "npm run build && husky install",
"prepublishOnly": "npm run test && npm run lint",
"preversion": "npm run lint",
"preversion": "npm run lint && npm run typedoc",
"postversion": "git push --follow-tags"

@@ -64,6 +64,7 @@ },

},
"homepage": "https://github.com/danieloakman/iteragain#readme",
"homepage": "https://www.npmjs.com/package/iteragain",
"keywords": [
"iterator",
"iterable",
"IterableIterator",
"itertools",

@@ -70,0 +71,0 @@ "iteration",

@@ -1,2 +0,2 @@

import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
declare class Range extends ExtendedIterator<number> {

@@ -3,0 +3,0 @@ /** The start of this range of numbers (inclusive). */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.range = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const EmptyIterator_1 = require("./internal/EmptyIterator");

@@ -6,0 +6,0 @@ const RangeIterator_1 = require("./internal/RangeIterator");

@@ -6,11 +6,11 @@

Pure JavaScript, ES6 Iterable/Iterator utilities. No dependencies and shipped with types as is.
Pure JavaScript, Iterable/Iterator/Generator-function utilities. No dependencies and shipped with types as is.
Inspired by [iterplus](https://www.npmjs.com/package/iterplus), [iterare](https://www.npmjs.com/package/iterare) and the Python [itertools](https://docs.python.org/3/library/itertools.html) module. See benchmark section for performance.
The package is designed around the use of the `ExtendedIterator` class. It's a class that extends the ES6 Iterator with methods like those in `Array` and other iterator methods in python. It's chainable and looks closely like normal Javascript code instead of the more Python `itertools` way of doing things:
The package is designed around the use of the [ExtendedIterator](https://danieloakman.github.io/iteragain/classes/ExtendedIterator.ExtendedIterator-1.html) class throug calling [iter](https://danieloakman.github.io/iteragain/functions/iter.iter-1.html). It's a class that implements and extends the [IterableIterator](https://microsoft.github.io/PowerBI-JavaScript/interfaces/_node_modules_typedoc_node_modules_typescript_lib_lib_es2015_iterable_d_.iterableiterator.html) interface. It provides extra methods like those in the [JS Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) and other iterator methods in Python. It's chainable and looks closely like normal Javascript code instead of the more Python [itertools](https://docs.python.org/3/library/itertools.html) way of doing things:
`filter(lambda x: x % 2 == 0, map(lambda x: x * x, iterable))`
There is also other utility functions like `range`, `enumerate`, etc.
There is also other utility functions like `range`, `enumerate`, `zip` etc.
See [documentation](https://danieloakman.github.io/iteragain/).
## Code demo

@@ -36,12 +36,17 @@

range(0, 10, 2).toArray(); // [0, 2, 4, 6, 8]
let r = range(10);
let r = range(0, 10, 2);
r.length; // 10, (a readonly property)
r.includes(5); // true
r.nth(-1); // 9 (the last element)
r.nth(1); // 1 (the second element)
r.includes(4); // true
r.nth(-1); // 8 (the last element)
r.nth(1); // 2 (the second element)
r.nth(10); // undefined (the 10th element doesn't exist)
let r = range(3);
r.index(4); // 2 (the index of the value 4)
r = range(3);
const nums = [...r, ...r]; // [0, 1, 2, 0, 1, 2], can be reused after a full iteration.
```
## Inpired by
[iterplus](https://www.npmjs.com/package/iterplus), [iterare](https://www.npmjs.com/package/iterare), [lodash](https://www.npmjs.com/package/lodash), [rxjs](https://www.npmjs.com/package/rxjs) and the Python [itertools](https://docs.python.org/3/library/itertools.html) module. See benchmark section for performance against some of these.
## Benchmark

@@ -48,0 +53,0 @@

@@ -1,2 +0,2 @@

import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
import { IteratorOrIterable } from './types';

@@ -3,0 +3,0 @@ /** Aggregates any number of iterables into one. Stops when one of the iterables is empty. */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.zip = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const toIterator_1 = require("./toIterator");

@@ -6,0 +6,0 @@ const ZipIterator_1 = require("./internal/ZipIterator");

@@ -1,2 +0,2 @@

import ExtendedIterator from './ExtendedIterator';
import ExtendedIterator from './internal/ExtendedIterator';
import { IteratorOrIterable } from './types';

@@ -3,0 +3,0 @@ /** Aggregates any number of iterables into one. Stops when all of the iterables is empty. */

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.zipLongest = void 0;
const ExtendedIterator_1 = require("./ExtendedIterator");
const ExtendedIterator_1 = require("./internal/ExtendedIterator");
const toIterator_1 = require("./toIterator");

@@ -6,0 +6,0 @@ const ZipLongestIterator_1 = require("./internal/ZipLongestIterator");

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