gensequence
Advanced tools
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.asyncGenSequence = void 0; | ||
| const ImplAsyncSequence_1 = require("./ImplAsyncSequence"); | ||
@@ -4,0 +5,0 @@ function asyncGenSequence(i) { |
+9
-8
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.builder = void 0; | ||
| const ImplSequenceBuilder_1 = require("./ImplSequenceBuilder"); | ||
@@ -15,29 +16,29 @@ const operators_1 = require("./operators"); | ||
| filter: (fnFilter) => { | ||
| return makeBuilder(operators_1.filter(fnFilter)); | ||
| return makeBuilder((0, operators_1.filter)(fnFilter)); | ||
| }, | ||
| skip: (n) => { | ||
| return makeBuilder(operators_1.skip(n)); | ||
| return makeBuilder((0, operators_1.skip)(n)); | ||
| }, | ||
| take: (n) => { | ||
| return makeBuilder(operators_1.take(n)); | ||
| return makeBuilder((0, operators_1.take)(n)); | ||
| }, | ||
| //// Extenders | ||
| concat: (j) => { | ||
| return makeBuilder(operators_1.concat(j)); | ||
| return makeBuilder((0, operators_1.concat)(j)); | ||
| }, | ||
| concatMap: (fn) => { | ||
| return makeBuilder(operators_1.concatMap(fn)); | ||
| return makeBuilder((0, operators_1.concatMap)(fn)); | ||
| }, | ||
| //// Mappers | ||
| combine: (fn, j) => { | ||
| return makeBuilder(operators_1.combine(fn, j)); | ||
| return makeBuilder((0, operators_1.combine)(fn, j)); | ||
| }, | ||
| /** map values from type T to type U */ | ||
| map: (fnMap) => { | ||
| return makeBuilder(operators_1.map(fnMap)); | ||
| return makeBuilder((0, operators_1.map)(fnMap)); | ||
| }, | ||
| scan: (fnReduce, initialValue) => { | ||
| return makeBuilder(operators_1.scan(fnReduce, initialValue)); | ||
| return makeBuilder((0, operators_1.scan)(fnReduce, initialValue)); | ||
| }, | ||
| }); | ||
| //# sourceMappingURL=builder.js.map |
@@ -21,6 +21,6 @@ import { Sequence, GenIterable } from './types'; | ||
| export declare type KeyValuePair<T> = [keyof T, T[keyof T]]; | ||
| export declare function objectIterator<T>(t: T): IterableIterator<KeyValuePair<T>>; | ||
| export declare function objectToSequence<T>(t: T): Sequence<KeyValuePair<T>>; | ||
| export declare function sequenceFromObject<T>(t: T): Sequence<KeyValuePair<T>>; | ||
| export declare function objectIterator<T extends {}>(t: T): IterableIterator<KeyValuePair<T>>; | ||
| export declare function objectToSequence<T extends {}>(t: T): Sequence<KeyValuePair<T>>; | ||
| export declare function sequenceFromObject<T extends {}>(t: T): Sequence<KeyValuePair<T>>; | ||
| export declare function sequenceFromRegExpMatch(pattern: RegExp, text: string): Sequence<RegExpExecArray>; | ||
| export default genSequence; |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.sequenceFromRegExpMatch = exports.sequenceFromObject = exports.objectToSequence = exports.objectIterator = exports.toIterator = exports.GenSequence = exports.genSequence = exports.toIterableIterator = void 0; | ||
| const util_1 = require("./util/util"); | ||
| const ImplSequence_1 = require("./ImplSequence"); | ||
| var util_2 = require("./util/util"); | ||
| exports.toIterableIterator = util_2.toIterableIterator; | ||
| Object.defineProperty(exports, "toIterableIterator", { enumerable: true, get: function () { return util_2.toIterableIterator; } }); | ||
| function genSequence(i) { | ||
@@ -44,3 +45,3 @@ return new ImplSequence_1.ImplSequence(i); | ||
| let lastIndex = undefined; | ||
| while (match = regex.exec(text)) { | ||
| while ((match = regex.exec(text))) { | ||
| // Make sure it stops if the index does not move forward. | ||
@@ -47,0 +48,0 @@ if (match.index === lastIndex) { |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.ImplAsyncSequence = void 0; | ||
| const operators_1 = require("./operators"); | ||
@@ -15,3 +16,3 @@ class ImplAsyncSequence { | ||
| reduceAsync(fnReduceAsync, initialValue) { | ||
| return operators_1.reduceAsyncForAsyncIterator(fnReduceAsync, initialValue)(this.iter); | ||
| return (0, operators_1.reduceAsyncForAsyncIterator)(fnReduceAsync, initialValue)(this.iter); | ||
| } | ||
@@ -18,0 +19,0 @@ } |
+20
-19
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.ImplSequence = void 0; | ||
| const operators_1 = require("./operators"); | ||
@@ -33,26 +34,26 @@ const util_1 = require("./util/util"); | ||
| filter(fnFilter) { | ||
| return this.chain(operators_1.filter(fnFilter)); | ||
| return this.chain((0, operators_1.filter)(fnFilter)); | ||
| } | ||
| skip(n) { | ||
| return this.chain(operators_1.skip(n)); | ||
| return this.chain((0, operators_1.skip)(n)); | ||
| } | ||
| take(n) { | ||
| return this.chain(operators_1.take(n)); | ||
| return this.chain((0, operators_1.take)(n)); | ||
| } | ||
| //// Extenders | ||
| concat(j) { | ||
| return this.chain(operators_1.concat(j)); | ||
| return this.chain((0, operators_1.concat)(j)); | ||
| } | ||
| concatMap(fn) { | ||
| return this.chain(operators_1.concatMap(fn)); | ||
| return this.chain((0, operators_1.concatMap)(fn)); | ||
| } | ||
| //// Mappers | ||
| combine(fn, j) { | ||
| return this.chain(operators_1.combine(fn, j)); | ||
| return this.chain((0, operators_1.combine)(fn, j)); | ||
| } | ||
| map(fn) { | ||
| return this.chain(operators_1.map(fn)); | ||
| return this.chain((0, operators_1.map)(fn)); | ||
| } | ||
| scan(fnReduce, initValue) { | ||
| return this.chain(operators_1.scan(fnReduce, initValue)); | ||
| return this.chain((0, operators_1.scan)(fnReduce, initValue)); | ||
| } | ||
@@ -67,30 +68,30 @@ pipe(...fns) { | ||
| all(fnFilter) { | ||
| return operators_1.all(fnFilter)(this.iter); | ||
| return (0, operators_1.all)(fnFilter)(this.iter); | ||
| } | ||
| any(fnFilter) { | ||
| return operators_1.any(fnFilter)(this.iter); | ||
| return (0, operators_1.any)(fnFilter)(this.iter); | ||
| } | ||
| count() { | ||
| return operators_1.count()(this.iter); | ||
| return (0, operators_1.count)()(this.iter); | ||
| } | ||
| first(fnFilter, defaultValue) { | ||
| return operators_1.first(fnFilter, defaultValue)(this.iter); | ||
| return (0, operators_1.first)(fnFilter, defaultValue)(this.iter); | ||
| } | ||
| forEach(fn) { | ||
| return operators_1.forEach(fn)(this.iter); | ||
| return (0, operators_1.forEach)(fn)(this.iter); | ||
| } | ||
| max(fnSelector) { | ||
| return operators_1.max(fnSelector)(this.iter); | ||
| return (0, operators_1.max)(fnSelector)(this.iter); | ||
| } | ||
| min(fnSelector) { | ||
| return operators_1.min(fnSelector)(this.iter); | ||
| return (0, operators_1.min)(fnSelector)(this.iter); | ||
| } | ||
| reduce(fnReduce, initValue) { | ||
| return operators_1.reduce(fnReduce, initValue)(this.iter); | ||
| return (0, operators_1.reduce)(fnReduce, initValue)(this.iter); | ||
| } | ||
| reduceAsync(fnReduceAsync, initialValue) { | ||
| return operators_1.reduceAsync(fnReduceAsync, initialValue)(this.iter); | ||
| return (0, operators_1.reduceAsync)(fnReduceAsync, initialValue)(this.iter); | ||
| } | ||
| reduceToSequence(fnReduce, initialValue) { | ||
| return this.chain(operators_1.reduce(fnReduce, initialValue)); | ||
| return this.chain((0, operators_1.reduce)(fnReduce, initialValue)); | ||
| } | ||
@@ -102,3 +103,3 @@ //// Cast | ||
| toIterable() { | ||
| return util_1.toIterableIterator(this.iter); | ||
| return (0, util_1.toIterableIterator)(this.iter); | ||
| } | ||
@@ -105,0 +106,0 @@ } |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.ImplSequenceBuilder = void 0; | ||
| const operators_1 = require("./operators"); | ||
@@ -19,27 +20,27 @@ const ImplSequence_1 = require("./ImplSequence"); | ||
| filter(fnFilter) { | ||
| return this.pipe(operators_1.filter(fnFilter)); | ||
| return this.pipe((0, operators_1.filter)(fnFilter)); | ||
| } | ||
| skip(n) { | ||
| return this.pipe(operators_1.skip(n)); | ||
| return this.pipe((0, operators_1.skip)(n)); | ||
| } | ||
| take(n) { | ||
| return this.pipe(operators_1.take(n)); | ||
| return this.pipe((0, operators_1.take)(n)); | ||
| } | ||
| //// Extenders | ||
| concat(j) { | ||
| return this.pipe(operators_1.concat(j)); | ||
| return this.pipe((0, operators_1.concat)(j)); | ||
| } | ||
| concatMap(fn) { | ||
| return this.pipe(operators_1.concatMap(fn)); | ||
| return this.pipe((0, operators_1.concatMap)(fn)); | ||
| } | ||
| //// Mappers | ||
| combine(fn, j) { | ||
| return this.pipe(operators_1.combine(fn, j)); | ||
| return this.pipe((0, operators_1.combine)(fn, j)); | ||
| } | ||
| /** map values from type T to type U */ | ||
| map(fnMap) { | ||
| return this.pipe(operators_1.map(fnMap)); | ||
| return this.pipe((0, operators_1.map)(fnMap)); | ||
| } | ||
| scan(fnReduce, initialValue) { | ||
| return this.pipe(operators_1.scan(fnReduce, initialValue)); | ||
| return this.pipe((0, operators_1.scan)(fnReduce, initialValue)); | ||
| } | ||
@@ -46,0 +47,0 @@ } |
+18
-6
| "use strict"; | ||
| function __export(m) { | ||
| for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
| } | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __export(require("./GenSequence")); | ||
| __export(require("./AsyncGenSequence")); | ||
| __export(require("./builder")); | ||
| exports.operators = void 0; | ||
| __exportStar(require("./GenSequence"), exports); | ||
| __exportStar(require("./AsyncGenSequence"), exports); | ||
| __exportStar(require("./builder"), exports); | ||
| const _operators = require("./operators"); | ||
| exports.operators = _operators; | ||
| //# sourceMappingURL=index.js.map |
| "use strict"; | ||
| function __export(m) { | ||
| for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; | ||
| } | ||
| var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| var desc = Object.getOwnPropertyDescriptor(m, k); | ||
| if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
| desc = { enumerable: true, get: function() { return m[k]; } }; | ||
| } | ||
| Object.defineProperty(o, k2, desc); | ||
| }) : (function(o, m, k, k2) { | ||
| if (k2 === undefined) k2 = k; | ||
| o[k2] = m[k]; | ||
| })); | ||
| var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
| for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
| }; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| __export(require("./operators")); | ||
| __exportStar(require("./operators"), exports); | ||
| //# sourceMappingURL=index.js.map |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.pipe = exports.reduceAsyncForAsyncIterator = exports.reduceAsync = exports.reduce = exports.min = exports.max = exports.forEach = exports.first = exports.count = exports.any = exports.all = exports.scan = exports.map = exports.combine = exports.concatMap = exports.concat = exports.take = exports.skip = exports.filter = void 0; | ||
| const op = require("./operatorsBase"); | ||
@@ -4,0 +5,0 @@ /** |
@@ -36,2 +36,3 @@ "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.scanMap = exports.isAsyncIterableIterator = exports.isAsyncIterable = exports.makeAsyncIterable = exports.isIterableIterator = exports.isIterable = exports.makeIterable = exports.reduceAsyncForAsyncIterator = exports.reduceAsync = exports.reduce = exports.min = exports.max = exports.forEach = exports.first = exports.count = exports.any = exports.all = exports.scan = exports.map = exports.combine = exports.concatMap = exports.concat = exports.take = exports.skip = exports.filter = void 0; | ||
| /** | ||
@@ -38,0 +39,0 @@ * Operators used by Sequence |
| "use strict"; | ||
| Object.defineProperty(exports, "__esModule", { value: true }); | ||
| exports.toIterableIterator = exports.toIterator = void 0; | ||
| function toIterator(values) { | ||
@@ -4,0 +5,0 @@ let iter; |
+11
-11
| { | ||
| "name": "gensequence", | ||
| "version": "3.1.1", | ||
| "version": "4.0.0", | ||
| "description": "Small library to simplify working with Generators and Iterators in Javascript / Typescript", | ||
@@ -8,13 +8,12 @@ "main": "dist/index.js", | ||
| "engines": { | ||
| "node": ">=10.0.0" | ||
| "node": ">=14" | ||
| }, | ||
| "dependencies": {}, | ||
| "devDependencies": { | ||
| "@types/jest": "^25.1.4", | ||
| "@types/node": "^10.17.18", | ||
| "coveralls": "^3.0.11", | ||
| "jest": "^25.1.0", | ||
| "@types/jest": "^28.1.8", | ||
| "@types/node": "^18.7.14", | ||
| "coveralls": "^3.1.1", | ||
| "jest": "^28.1.3", | ||
| "rimraf": "^3.0.2", | ||
| "ts-jest": "^25.2.1", | ||
| "typescript": "^3.8.3" | ||
| "ts-jest": "^28.0.8", | ||
| "typescript": "^4.8.2" | ||
| }, | ||
@@ -26,3 +25,3 @@ "scripts": { | ||
| "clean": "rimraf dist", | ||
| "test": "jest --testMatch '**/*.test.ts'", | ||
| "test": "jest", | ||
| "perf": "jest --testMatch '**/*.perf.ts'", | ||
@@ -34,3 +33,4 @@ "test-all": "jest", | ||
| "coverage-coveralls": "cat coverage/lcov.info | coveralls", | ||
| "travis-coverage": "npm run coverage && npm run coverage-coveralls" | ||
| "travis-coverage": "npm run coverage && npm run coverage-coveralls", | ||
| "update-packages": "npx npm-check-updates -t minor -u && rimraf node_modules package-lock.json && npm i" | ||
| }, | ||
@@ -37,0 +37,0 @@ "repository": { |
-57
| # Release Notes | ||
| ## [3.1.0] | ||
| * Initial support for `AsyncIterator`s | ||
| * Special thanks to [albertossilva (Alberto)](https://github.com/albertossilva) | ||
| * Only supports reduce at the moment. | ||
| ## [3.0.0] | ||
| * Supports Node >= 10 | ||
| * Add the ability to pipe operators | ||
| ## [2.2.0] | ||
| * Move operator functions out of GenSequence | ||
| * Update to TypeScript | ||
| ## [2.1.3] | ||
| * Update dev packages to address issues with code coverage generation in Node 10 | ||
| ## 2.1.1 | ||
| * Update dev packages | ||
| * add `forEach` function | ||
| ## 2.1.0 | ||
| * fix a function signature issue surfaced by typescript 2.4.2 | ||
| ## 2.0.1 | ||
| * minor update to README.md. | ||
| * added test showing how it is not possible to reuse some iterators. | ||
| ## 2.0.0 | ||
| * sequences are now reusable as long as the original iterator is reusable. | ||
| * it is not possible to initialize a sequence with a function that returns an iterator | ||
| This is very powerful. | ||
| * `.count()` added. | ||
| * special thanks to @sea1jxr for all of the above. | ||
| ## 1.3.0 | ||
| * Refactor the methods to give them a logical grouping - thanks to @sea1jxr | ||
| ## 1.2.0 | ||
| * Added `min` and `max` - thanks to @sea1jxr | ||
| ## 1.1.0 | ||
| * Added `all` and `any` - thanks to @sea1jxr | ||
| ## 1.0.0 | ||
| * Added full test coverage | ||
| * Fix an issue with scan and working with arrays. | ||
| * Fix the `.next()` function to correctly work with arrays. | ||
| * Sequence supports both Iterable<T> and IterableIterator<T> interfaces | ||
| ## 0.1.0 - 0.2.4 | ||
| * These were the initial set of releases | ||
| <!--- | ||
| cspell:ignore albertossilva | ||
| --> |
57754
2.52%1077
3.26%28
-3.45%