Socket
Socket
Sign inDemoInstall

gensequence

Package Overview
Dependencies
Maintainers
1
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gensequence - npm Package Compare versions

Comparing version 0.2.2 to 0.2.3

13

lib/src/GenSequence.d.ts

@@ -19,3 +19,4 @@ export declare type Maybe<T> = T | undefined;

take(n: number): Sequence<T>;
first(fnFilter?: (t: T) => boolean): Maybe<T>;
first(fnFilter?: (t: T) => boolean, defaultValue?: T): Maybe<T>;
first(fnFilter: (t: T) => boolean, defaultValue: T): T;
toArray(): T[];

@@ -32,3 +33,7 @@ toIterable(): IterableIterator<T>;

export declare function genSequence<T>(i: GenIterable<T>): Sequence<T>;
export declare const GenSequence: typeof genSequence;
export declare const GenSequence: {
genSequence: <T>(i: GenIterable<T>) => Sequence<T>;
sequenceFromRegExpMatch: (pattern: RegExp, text: string) => Sequence<RegExpExecArray>;
sequenceFromObject: <T>(t: T) => Sequence<[keyof T, T[keyof T]]>;
};
export declare function filter<T>(fnFilter: (t: T) => boolean, i: Iterable<T>): IterableIterator<T>;

@@ -57,3 +62,3 @@ export declare function reduce<T, U>(fnReduce: (prevValue: U, curValue: T, curIndex: number) => U, initialValue: U, i: Iterable<T>): U;

export declare function concatMap<T, U>(fn: (t: T) => Iterable<U>, i: Iterable<T>): IterableIterator<U>;
export declare function first<T>(fn: Maybe<(t: T) => boolean>, i: Iterable<T>): Maybe<T>;
export declare function first<T>(fn: Maybe<(t: T) => boolean>, defaultValue: Maybe<T>, i: Iterable<T>): Maybe<T>;
export declare function toIterator<T>(i: Iterable<T>): IterableIterator<T>;

@@ -63,2 +68,4 @@ export declare type KeyValuePair<T> = [keyof T, T[keyof T]];

export declare function objectToSequence<T>(t: T): Sequence<KeyValuePair<T>>;
export declare function sequenceFromObject<T>(t: T): Sequence<KeyValuePair<T>>;
export declare function sequenceFromRegExpMatch(pattern: RegExp, text: string): Sequence<RegExpExecArray>;
export default genSequence;

@@ -32,4 +32,4 @@ "use strict";

},
first: (fnFilter) => {
return first(fnFilter, i);
first: (fnFilter, defaultValue) => {
return first(fnFilter, defaultValue, i);
},

@@ -43,4 +43,8 @@ toArray: () => [...i[Symbol.iterator]()],

exports.genSequence = genSequence;
// Naming Compatibility
exports.GenSequence = genSequence;
// Collection of entry points into GenSequence
exports.GenSequence = {
genSequence,
sequenceFromRegExpMatch,
sequenceFromObject,
};
function* filter(fnFilter, i) {

@@ -167,3 +171,3 @@ for (const v of i) {

exports.concatMap = concatMap;
function first(fn, i) {
function first(fn, defaultValue, i) {
fn = fn || (t => true);

@@ -175,3 +179,3 @@ for (const t of i) {

}
return undefined;
return defaultValue;
}

@@ -193,7 +197,28 @@ exports.first = first;

function objectToSequence(t) {
return sequenceFromObject(t);
}
exports.objectToSequence = objectToSequence;
function sequenceFromObject(t) {
return genSequence(objectIterator(t));
}
exports.objectToSequence = objectToSequence;
exports.sequenceFromObject = sequenceFromObject;
function sequenceFromRegExpMatch(pattern, text) {
function* doMatch() {
const regex = new RegExp(pattern);
let match;
let lastIndex = undefined;
while (match = regex.exec(text)) {
// Make sure it stops if the index does not move forward.
if (match.index === lastIndex) {
break;
}
lastIndex = match.index;
yield match;
}
}
return genSequence(doMatch());
}
exports.sequenceFromRegExpMatch = sequenceFromRegExpMatch;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = genSequence;
//# sourceMappingURL=GenSequence.js.map
{
"name": "gensequence",
"version": "0.2.2",
"version": "0.2.3",
"description": "Small library to simplify working with Generators and Iterators in Javascript / Typescript",

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

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

import { genSequence, objectToSequence } from './GenSequence';
import { genSequence, sequenceFromObject, sequenceFromRegExpMatch } from './GenSequence';
import { expect } from 'chai';

@@ -137,2 +137,4 @@

expect(genSequence(values).first(a => a > 3.5)).to.be.equal(4);
expect(genSequence(values).first(a => a > 100)).to.be.undefined;
expect(genSequence(values).first(a => a > 100, -1)).to.be.equal(-1);
});

@@ -147,5 +149,5 @@

}
const i = objectToSequence(person);
const i = sequenceFromObject(person);
expect(i.map(kvp => kvp[0]).toArray().sort()).to.be.deep.equal(Object.keys(person).sort());
const j = objectToSequence(person);
const j = sequenceFromObject(person);
expect(j.map(kvp => kvp[1]).toArray().sort()).to.be.deep.equal(Object.keys(person).map(k => person[k]).sort());

@@ -161,3 +163,3 @@ });

}
const i = objectToSequence(person);
const i = sequenceFromObject(person);
const j = genSequence(i);

@@ -176,2 +178,18 @@ const values0 = j.toArray();

});
it('tests sequenceFromRegExpMatch', () => {
const tests: [RegExp, string, string[]][] = [
[/a/, 'aaaa', ['a']],
[/a/g, 'aaaa', ['a', 'a', 'a', 'a']],
[/a/g, 'AAAA', []],
[/a/gi, 'AAAA', ['A', 'A', 'A', 'A']],
[/a/gi, 'AB\nA\nCA\nDA\n', ['A', 'A', 'A', 'A']],
[/^.?a.?$/gim, 'AB\nA\nCA\nDA\n', ['AB', 'A', 'CA', 'DA']],
]
tests.forEach(test => {
const [reg, str, expected] = test;
const result = sequenceFromRegExpMatch(reg, str).map(a => a[0]).toArray();
expect(result, test.toString()).to.deep.equal(expected);
});
});
});

@@ -21,3 +21,4 @@

take(n: number): Sequence<T>;
first(fnFilter?: (t: T)=> boolean): Maybe<T>;
first(fnFilter?: (t: T)=> boolean, defaultValue?: T): Maybe<T>;
first(fnFilter: (t: T)=> boolean, defaultValue: T): T;
toArray(): T[];

@@ -66,4 +67,4 @@ toIterable(): IterableIterator<T>;

},
first: (fnFilter?: (t: T) => boolean) => {
return first(fnFilter, i);
first: (fnFilter: (t: T) => boolean, defaultValue: T): T => {
return first(fnFilter, defaultValue, i) as T;
},

@@ -77,4 +78,8 @@ toArray: () => [...i[Symbol.iterator]()],

// Naming Compatibility
export const GenSequence = genSequence;
// Collection of entry points into GenSequence
export const GenSequence = {
genSequence,
sequenceFromRegExpMatch,
sequenceFromObject,
};

@@ -218,3 +223,4 @@ export function* filter<T>(fnFilter: (t: T) => boolean, i: Iterable<T>) {

export function first<T>(fn: Maybe<(t: T) => boolean>, i: Iterable<T>): Maybe<T> {
export function first<T>(fn: Maybe<(t: T) => boolean>, defaultValue: Maybe<T>, i: Iterable<T>): Maybe<T>;
export function first<T>(fn: (t: T) => boolean, defaultValue: T, i: Iterable<T>): T {
fn = fn || (t => true);

@@ -226,3 +232,3 @@ for (const t of i) {

}
return undefined;
return defaultValue;
}

@@ -247,5 +253,28 @@

export function objectToSequence<T>(t: T): Sequence<KeyValuePair<T>> {
return sequenceFromObject<T>(t);
}
export function sequenceFromObject<T>(t: T): Sequence<KeyValuePair<T>> {
return genSequence(objectIterator(t));
}
export function sequenceFromRegExpMatch(pattern: RegExp, text: string): Sequence<RegExpExecArray> {
function* doMatch() {
const regex = new RegExp(pattern);
let match: RegExpExecArray | null;
let lastIndex: number | undefined = undefined;
while ( match = regex.exec(text) ) {
// Make sure it stops if the index does not move forward.
if (match.index === lastIndex) {
break;
}
lastIndex = match.index;
yield match;
}
}
return genSequence(doMatch());
}
export default genSequence;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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