@cspell/cspell-pipe 5.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Jason Dent
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # `@cspell/cspell-pipe`
2
+
3
+ A library to assist with working with Iterables and AsyncIterables
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ npm install -S @cspell/cspell-pipe
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { GitIgnore, findRepoRoot } from 'cspell-gitignore';
15
+
16
+ // ...
17
+
18
+ const cwd = process.cwd();
19
+ const root = (await findRepoRoot(cwd)) || cwd;
20
+ const gitIgnore = new GitIgnore([root]);
21
+
22
+ const allFiles = glob('**');
23
+
24
+ const files = await gitIgnore.filterOutIgnored(allFiles);
25
+ ```
26
+
27
+ ## Logic
28
+
29
+ - For each file, search for the `.gitignore` files in the directory hierarchy.
30
+ - Ignore any files that match the globs found in the `.gitignore` files.
31
+
32
+ The `.gitignore` globs are evaluated from highest to lowest, matching the `git` behavior.
33
+
34
+ To prevent searching higher in the directory hierarchy, specify roots:
35
+
36
+ ```ts
37
+ const gitIgnore = new GitIgnore([process.cwd()]);
38
+ ```
39
+
40
+ # `cspell-gitignore` CLI
41
+
42
+ `cspell-gitignore` provides a simple cli for debugging .gitignore issues.
43
+
44
+ In most cases it should provide the same output as `git check-ignore`.
45
+
46
+ ## Usage
47
+
48
+ ```text
49
+ Usage cspell-gitignore [options] <files>
50
+
51
+ Check files against .gitignore
52
+ Compare against git check-ignore -v -n <files>
53
+
54
+ Options:
55
+ -r, --root Add a root to prevent searching for .gitignore files above the root if the file is under the root.
56
+ This option can be used multiple times to add multiple roots. The default root is the current
57
+ repository root determined by the `.git` directory.
58
+
59
+ Example:
60
+ cspell-gitignore README.md
61
+ cspell-gitignore -r . node_modules
62
+
63
+ ```
64
+
65
+ ## Example:
66
+
67
+ ```sh
68
+ $ cspell-gitignore -r . node_modules
69
+ .gitignore:58:node_modules/ node_modules
70
+ ```
@@ -0,0 +1,4 @@
1
+ export { toAsyncIterable } from './toAsyncIterable';
2
+ export { isAsyncIterable } from './util';
3
+ export { toArray } from './toArray';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toArray = exports.isAsyncIterable = exports.toAsyncIterable = void 0;
4
+ var toAsyncIterable_1 = require("./toAsyncIterable");
5
+ Object.defineProperty(exports, "toAsyncIterable", { enumerable: true, get: function () { return toAsyncIterable_1.toAsyncIterable; } });
6
+ var util_1 = require("./util");
7
+ Object.defineProperty(exports, "isAsyncIterable", { enumerable: true, get: function () { return util_1.isAsyncIterable; } });
8
+ var toArray_1 = require("./toArray");
9
+ Object.defineProperty(exports, "toArray", { enumerable: true, get: function () { return toArray_1.toArray; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ export declare function toArray<T>(i: AsyncIterable<T>): Promise<Awaited<T>[]>;
2
+ export declare function toArray<T>(i: Iterable<T>): T[];
3
+ export declare function toArray<T>(i: Iterable<T> | AsyncIterable<T>): T[] | Promise<Awaited<T>[]>;
4
+ //# sourceMappingURL=toArray.d.ts.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toArray = void 0;
4
+ const _1 = require(".");
5
+ function toArray(i) {
6
+ return (0, _1.isAsyncIterable)(i) ? toArrayAsync(i) : toArraySync(i);
7
+ }
8
+ exports.toArray = toArray;
9
+ function toArraySync(iter) {
10
+ return [...iter];
11
+ }
12
+ async function toArrayAsync(iter) {
13
+ const collection = [];
14
+ for await (const i of iter) {
15
+ collection.push(i);
16
+ }
17
+ return collection;
18
+ }
19
+ //# sourceMappingURL=toArray.js.map
@@ -0,0 +1,11 @@
1
+ import { AnyIterable } from '../internalTypes';
2
+ export declare function mergeAsyncIterables<T>(iter: Iterable<T>): AsyncIterable<T>;
3
+ export declare function mergeAsyncIterables<T>(iter: AsyncIterable<T>): AsyncIterable<T>;
4
+ export declare function mergeAsyncIterables<T>(iter: Promise<Iterable<T>>): AsyncIterable<T>;
5
+ export declare function mergeAsyncIterables<T>(iter: AnyIterable<T>): AsyncIterable<T>;
6
+ export declare function mergeAsyncIterables<T>(iter: AnyIterable<T>, ...rest: AnyIterable<T>[]): AsyncIterable<T>;
7
+ /**
8
+ * Convert one or more iterables to an AsyncIterable
9
+ */
10
+ export declare const toAsyncIterable: typeof mergeAsyncIterables;
11
+ //# sourceMappingURL=toAsyncIterable.d.ts.map
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toAsyncIterable = exports.mergeAsyncIterables = void 0;
4
+ /**
5
+ * Merge multiple iterables into an AsyncIterable
6
+ * @param iter - initial iterable.
7
+ * @param rest - iterables to merge.
8
+ */
9
+ async function* mergeAsyncIterables(iter, ...rest) {
10
+ for await (const i of [iter, ...rest]) {
11
+ yield* i;
12
+ }
13
+ }
14
+ exports.mergeAsyncIterables = mergeAsyncIterables;
15
+ /**
16
+ * Convert one or more iterables to an AsyncIterable
17
+ */
18
+ exports.toAsyncIterable = mergeAsyncIterables;
19
+ //# sourceMappingURL=toAsyncIterable.js.map
@@ -0,0 +1,4 @@
1
+ import { AnyIterable, PipeFn, PipeFnAsync, PipeFnSync } from '../internalTypes';
2
+ export declare function toPipeFn<T, U = T>(syncFn: PipeFnSync<T, U>, asyncFn: PipeFnAsync<T, U>): PipeFn<T, U>;
3
+ export declare function isAsyncIterable<T>(i: AnyIterable<T>): i is AsyncIterable<T>;
4
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAsyncIterable = exports.toPipeFn = void 0;
4
+ function toPipeFn(syncFn, asyncFn) {
5
+ function _(i) {
6
+ return isAsyncIterable(i) ? asyncFn(i) : syncFn(i);
7
+ }
8
+ return _;
9
+ }
10
+ exports.toPipeFn = toPipeFn;
11
+ function isAsyncIterable(i) {
12
+ return typeof i[Symbol.asyncIterator] === 'function';
13
+ }
14
+ exports.isAsyncIterable = isAsyncIterable;
15
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1,6 @@
1
+ import * as _helpers from './helpers';
2
+ import * as _operators from './operators';
3
+ export { pipeAsync, pipeSync } from './pipe';
4
+ export declare const operators: typeof _operators;
5
+ export declare const helpers: typeof _helpers;
6
+ //# sourceMappingURL=index.d.ts.map
package/dist/index.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.helpers = exports.operators = exports.pipeSync = exports.pipeAsync = void 0;
23
+ const _helpers = __importStar(require("./helpers"));
24
+ const _operators = __importStar(require("./operators"));
25
+ var pipe_1 = require("./pipe");
26
+ Object.defineProperty(exports, "pipeAsync", { enumerable: true, get: function () { return pipe_1.pipeAsync; } });
27
+ Object.defineProperty(exports, "pipeSync", { enumerable: true, get: function () { return pipe_1.pipeSync; } });
28
+ exports.operators = _operators;
29
+ exports.helpers = _helpers;
30
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,17 @@
1
+ export interface PipeFnSync<T, U> {
2
+ (iter: Iterable<T>): Iterable<U>;
3
+ /** This is just to help TypeScript figure out the type. */
4
+ __PipeFnSync__?: [T, U];
5
+ }
6
+ export interface PipeFnAsync<T, U> {
7
+ (iter: AsyncIterable<T>): AsyncIterable<U>;
8
+ /** This is just to help TypeScript figure out the type. */
9
+ __PipeFnAsync__?: [T, U];
10
+ }
11
+ export declare type PipeFn<T, U> = PipeFnSync<T, U> & PipeFnAsync<T, U>;
12
+ export declare type PsFn<T, U> = PipeFnSync<T, U> | ((i: Iterable<T>) => Iterable<U>);
13
+ export declare type AnyIterable<T> = Iterable<T> | AsyncIterable<T> | Promise<Iterable<T>> | Iterable<Promise<T>>;
14
+ export declare type PaFn<T, U> = PipeFnAsync<T, U> | ((i: AsyncIterable<T>) => AsyncIterable<U>);
15
+ export declare type PipeAsyncTx<T extends [...any]> = T extends [infer Left, infer Right, ...infer Rest] ? Rest extends [any, ...any] ? [PaFn<Left, Right>, ...PipeAsyncTx<[Right, ...Rest]>] : [PaFn<Left, Right>] : never;
16
+ export declare type PipeSyncTx<T extends [...any]> = T extends [infer Left, infer Right, ...infer Rest] ? Rest extends [any, ...any] ? [PsFn<Left, Right>, ...PipeSyncTx<[Right, ...Rest]>] : [PsFn<Left, Right>] : never;
17
+ //# sourceMappingURL=internalTypes.d.ts.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=internalTypes.js.map
@@ -0,0 +1,2 @@
1
+ export declare function opAwaitAsync<T>(): (iter: AsyncIterable<T>) => AsyncIterable<Awaited<T>>;
2
+ //# sourceMappingURL=await.d.ts.map
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opAwaitAsync = void 0;
4
+ async function* _asyncAwait(iter) {
5
+ for await (const v of iter) {
6
+ yield v;
7
+ }
8
+ }
9
+ function opAwaitAsync() {
10
+ return _asyncAwait;
11
+ }
12
+ exports.opAwaitAsync = opAwaitAsync;
13
+ //# sourceMappingURL=await.js.map
@@ -0,0 +1,8 @@
1
+ import { PipeFn } from '../internalTypes';
2
+ export declare function opFilterAsync<T, S extends T>(filterFn: (v: T) => v is S): (iter: AsyncIterable<T>) => AsyncIterable<S>;
3
+ export declare function opFilterAsync<T>(filterFn: (v: T) => boolean): (iter: AsyncIterable<T>) => AsyncIterable<T>;
4
+ export declare function opFilterSync<T, S extends T>(filterFn: (v: T) => v is S): (iter: Iterable<T>) => Iterable<S>;
5
+ export declare function opFilterSync<T>(filterFn: (v: T) => boolean): (iter: Iterable<T>) => Iterable<T>;
6
+ export declare function opFilter<T, S extends T>(fn: (v: T) => v is S): PipeFn<T, S>;
7
+ export declare function opFilter<T>(fn: (v: T) => boolean): PipeFn<T, T>;
8
+ //# sourceMappingURL=filter.d.ts.map
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opFilter = exports.opFilterSync = exports.opFilterAsync = void 0;
4
+ const util_1 = require("../helpers/util");
5
+ function opFilterAsync(filterFn) {
6
+ async function* fn(iter) {
7
+ for await (const v of iter) {
8
+ if (filterFn(v))
9
+ yield v;
10
+ }
11
+ }
12
+ return fn;
13
+ }
14
+ exports.opFilterAsync = opFilterAsync;
15
+ function opFilterSync(filterFn) {
16
+ function* fn(iter) {
17
+ for (const v of iter) {
18
+ if (filterFn(v))
19
+ yield v;
20
+ }
21
+ }
22
+ return fn;
23
+ }
24
+ exports.opFilterSync = opFilterSync;
25
+ function opFilter(fn) {
26
+ const asyncFn = opFilterAsync(fn);
27
+ const syncFn = opFilterSync(fn);
28
+ function _(i) {
29
+ return (0, util_1.isAsyncIterable)(i) ? asyncFn(i) : syncFn(i);
30
+ }
31
+ return _;
32
+ }
33
+ exports.opFilter = opFilter;
34
+ //# sourceMappingURL=filter.js.map
@@ -0,0 +1,4 @@
1
+ export declare function opFlattenAsync<T>(): (iter: AsyncIterable<AsyncIterable<T> | Iterable<T>>) => AsyncIterable<T>;
2
+ export declare function opFlattenSync<T>(): (iter: Iterable<Iterable<T>>) => Iterable<T>;
3
+ export declare const opFlatten: <T>() => import("../internalTypes").PipeFn<Iterable<T>, T>;
4
+ //# sourceMappingURL=flatten.d.ts.map
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opFlatten = exports.opFlattenSync = exports.opFlattenAsync = void 0;
4
+ const util_1 = require("../helpers/util");
5
+ function opFlattenAsync() {
6
+ async function* fn(iter) {
7
+ for await (const v of iter) {
8
+ yield* v;
9
+ }
10
+ }
11
+ return fn;
12
+ }
13
+ exports.opFlattenAsync = opFlattenAsync;
14
+ function opFlattenSync() {
15
+ function* fn(iter) {
16
+ for (const v of iter) {
17
+ yield* v;
18
+ }
19
+ }
20
+ return fn;
21
+ }
22
+ exports.opFlattenSync = opFlattenSync;
23
+ const opFlatten = () => (0, util_1.toPipeFn)(opFlattenSync(), opFlattenAsync());
24
+ exports.opFlatten = opFlatten;
25
+ //# sourceMappingURL=flatten.js.map
@@ -0,0 +1,7 @@
1
+ export { opAwaitAsync } from './await';
2
+ export { opFilter, opFilterAsync, opFilterSync } from './filter';
3
+ export { opFlatten, opFlattenAsync, opFlattenSync } from './flatten';
4
+ export { opJoinStrings, opJoinStringsAsync, opJoinStringsSync } from './joinStrings';
5
+ export { opMap, opMapAsync, opMapSync } from './map';
6
+ export { opUnique, opUniqueAsync, opUniqueSync } from './unique';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opUniqueSync = exports.opUniqueAsync = exports.opUnique = exports.opMapSync = exports.opMapAsync = exports.opMap = exports.opJoinStringsSync = exports.opJoinStringsAsync = exports.opJoinStrings = exports.opFlattenSync = exports.opFlattenAsync = exports.opFlatten = exports.opFilterSync = exports.opFilterAsync = exports.opFilter = exports.opAwaitAsync = void 0;
4
+ var await_1 = require("./await");
5
+ Object.defineProperty(exports, "opAwaitAsync", { enumerable: true, get: function () { return await_1.opAwaitAsync; } });
6
+ var filter_1 = require("./filter");
7
+ Object.defineProperty(exports, "opFilter", { enumerable: true, get: function () { return filter_1.opFilter; } });
8
+ Object.defineProperty(exports, "opFilterAsync", { enumerable: true, get: function () { return filter_1.opFilterAsync; } });
9
+ Object.defineProperty(exports, "opFilterSync", { enumerable: true, get: function () { return filter_1.opFilterSync; } });
10
+ var flatten_1 = require("./flatten");
11
+ Object.defineProperty(exports, "opFlatten", { enumerable: true, get: function () { return flatten_1.opFlatten; } });
12
+ Object.defineProperty(exports, "opFlattenAsync", { enumerable: true, get: function () { return flatten_1.opFlattenAsync; } });
13
+ Object.defineProperty(exports, "opFlattenSync", { enumerable: true, get: function () { return flatten_1.opFlattenSync; } });
14
+ var joinStrings_1 = require("./joinStrings");
15
+ Object.defineProperty(exports, "opJoinStrings", { enumerable: true, get: function () { return joinStrings_1.opJoinStrings; } });
16
+ Object.defineProperty(exports, "opJoinStringsAsync", { enumerable: true, get: function () { return joinStrings_1.opJoinStringsAsync; } });
17
+ Object.defineProperty(exports, "opJoinStringsSync", { enumerable: true, get: function () { return joinStrings_1.opJoinStringsSync; } });
18
+ var map_1 = require("./map");
19
+ Object.defineProperty(exports, "opMap", { enumerable: true, get: function () { return map_1.opMap; } });
20
+ Object.defineProperty(exports, "opMapAsync", { enumerable: true, get: function () { return map_1.opMapAsync; } });
21
+ Object.defineProperty(exports, "opMapSync", { enumerable: true, get: function () { return map_1.opMapSync; } });
22
+ var unique_1 = require("./unique");
23
+ Object.defineProperty(exports, "opUnique", { enumerable: true, get: function () { return unique_1.opUnique; } });
24
+ Object.defineProperty(exports, "opUniqueAsync", { enumerable: true, get: function () { return unique_1.opUniqueAsync; } });
25
+ Object.defineProperty(exports, "opUniqueSync", { enumerable: true, get: function () { return unique_1.opUniqueSync; } });
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ export declare function opJoinStringsAsync(joinCharacter?: string): (iter: AsyncIterable<AsyncIterable<string> | Iterable<string>>) => AsyncIterable<string>;
2
+ export declare function opJoinStringsSync(joinCharacter?: string): (iter: Iterable<Iterable<string>>) => Iterable<string>;
3
+ export declare const opJoinStrings: (joinCharacter?: string) => import("../internalTypes").PipeFn<Iterable<string>, string>;
4
+ //# sourceMappingURL=joinStrings.d.ts.map
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opJoinStrings = exports.opJoinStringsSync = exports.opJoinStringsAsync = void 0;
4
+ const helpers_1 = require("../helpers");
5
+ const util_1 = require("../helpers/util");
6
+ function opJoinStringsAsync(joinCharacter = ',') {
7
+ async function* fn(iter) {
8
+ for await (const v of iter) {
9
+ const a = await (0, helpers_1.toArray)(v);
10
+ yield a.join(joinCharacter);
11
+ }
12
+ }
13
+ return fn;
14
+ }
15
+ exports.opJoinStringsAsync = opJoinStringsAsync;
16
+ function opJoinStringsSync(joinCharacter = ',') {
17
+ function* fn(iter) {
18
+ for (const v of iter) {
19
+ const a = (0, helpers_1.toArray)(v);
20
+ yield a.join(joinCharacter);
21
+ }
22
+ }
23
+ return fn;
24
+ }
25
+ exports.opJoinStringsSync = opJoinStringsSync;
26
+ const opJoinStrings = (joinCharacter = ',') => (0, util_1.toPipeFn)(opJoinStringsSync(joinCharacter), opJoinStringsAsync(joinCharacter));
27
+ exports.opJoinStrings = opJoinStrings;
28
+ //# sourceMappingURL=joinStrings.js.map
@@ -0,0 +1,4 @@
1
+ export declare function opMapAsync<T, U = T>(mapFn: (v: T) => U): (iter: AsyncIterable<T>) => AsyncIterable<U>;
2
+ export declare function opMapSync<T, U = T>(mapFn: (v: T) => U): (iter: Iterable<T>) => Iterable<U>;
3
+ export declare const opMap: <T, U>(fn: (v: T) => U) => import("../internalTypes").PipeFn<T, U>;
4
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opMap = exports.opMapSync = exports.opMapAsync = void 0;
4
+ const util_1 = require("../helpers/util");
5
+ function opMapAsync(mapFn) {
6
+ async function* fn(iter) {
7
+ for await (const v of iter) {
8
+ yield mapFn(v);
9
+ }
10
+ }
11
+ return fn;
12
+ }
13
+ exports.opMapAsync = opMapAsync;
14
+ function opMapSync(mapFn) {
15
+ function* fn(iter) {
16
+ for (const v of iter) {
17
+ yield mapFn(v);
18
+ }
19
+ }
20
+ return fn;
21
+ }
22
+ exports.opMapSync = opMapSync;
23
+ const opMap = (fn) => (0, util_1.toPipeFn)(opMapSync(fn), opMapAsync(fn));
24
+ exports.opMap = opMap;
25
+ //# sourceMappingURL=map.js.map
@@ -0,0 +1,4 @@
1
+ export declare function opUniqueAsync<T, U>(k?: (v: T) => U): (iter: AsyncIterable<T>) => AsyncIterable<T>;
2
+ export declare function opUniqueSync<T, U>(k?: (v: T) => U): (iter: Iterable<T>) => Iterable<T>;
3
+ export declare const opUnique: <T, U = T>(getKey?: ((v: T) => U) | undefined) => import("../internalTypes").PipeFn<T, T>;
4
+ //# sourceMappingURL=unique.d.ts.map
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.opUnique = exports.opUniqueSync = exports.opUniqueAsync = void 0;
4
+ const util_1 = require("../helpers/util");
5
+ function opUniqueAsync(k) {
6
+ function fnK(k) {
7
+ async function* fn(iter) {
8
+ const s = new Set();
9
+ for await (const v of iter) {
10
+ const kk = k(v);
11
+ if (s.has(kk))
12
+ continue;
13
+ s.add(kk);
14
+ yield v;
15
+ }
16
+ }
17
+ return fn;
18
+ }
19
+ async function* fn(iter) {
20
+ const s = new Set();
21
+ for await (const v of iter) {
22
+ if (s.has(v))
23
+ continue;
24
+ s.add(v);
25
+ yield v;
26
+ }
27
+ }
28
+ return k ? fnK(k) : fn;
29
+ }
30
+ exports.opUniqueAsync = opUniqueAsync;
31
+ function opUniqueSync(k) {
32
+ function fnK(key) {
33
+ function* fn(iter) {
34
+ const s = new Set();
35
+ for (const v of iter) {
36
+ const kk = key(v);
37
+ if (s.has(kk))
38
+ continue;
39
+ s.add(kk);
40
+ yield v;
41
+ }
42
+ }
43
+ return fn;
44
+ }
45
+ function* fn(iter) {
46
+ const s = new Set();
47
+ for (const v of iter) {
48
+ if (s.has(v))
49
+ continue;
50
+ s.add(v);
51
+ yield v;
52
+ }
53
+ }
54
+ return k ? fnK(k) : fn;
55
+ }
56
+ exports.opUniqueSync = opUniqueSync;
57
+ const opUnique = (getKey) => (0, util_1.toPipeFn)(opUniqueSync(getKey), opUniqueAsync(getKey));
58
+ exports.opUnique = opUnique;
59
+ //# sourceMappingURL=unique.js.map
package/dist/pipe.d.ts ADDED
@@ -0,0 +1,20 @@
1
+ import { AnyIterable, PipeAsyncTx, PipeSyncTx } from './internalTypes';
2
+ export declare function pipeAsync<T>(i: AnyIterable<T>): AsyncIterable<T>;
3
+ export declare function pipeAsync<T, T0>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0]>): AsyncIterable<T0>;
4
+ export declare function pipeAsync<T, T0, T1>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1]>): AsyncIterable<T1>;
5
+ export declare function pipeAsync<T, T0, T1, T2>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1, T2]>): AsyncIterable<T2>;
6
+ export declare function pipeAsync<T, T0, T1, T2, T3>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1, T2, T3]>): AsyncIterable<T3>;
7
+ export declare function pipeAsync<T, T0, T1, T2, T3, T4>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1, T2, T3, T4]>): AsyncIterable<T4>;
8
+ export declare function pipeAsync<T, T0, T1, T2, T3, T4, T5>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1, T2, T3, T4, T5]>): AsyncIterable<T5>;
9
+ export declare function pipeAsync<T, T0, T1, T2, T3, T4, T5, T6>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1, T2, T3, T4, T5, T6]>): AsyncIterable<T6>;
10
+ export declare function pipeAsync<T, T0, T1, T2, T3, T4, T5, T6, T7>(i: AnyIterable<T>, ...f: PipeAsyncTx<[T, T0, T1, T2, T3, T4, T5, T6, T7]>): AsyncIterable<T7>;
11
+ export declare function pipeSync<T>(i: Iterable<T>): Iterable<T>;
12
+ export declare function pipeSync<T, T0 = T>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0]>): Iterable<T0>;
13
+ export declare function pipeSync<T, T0, T1>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1]>): Iterable<T1>;
14
+ export declare function pipeSync<T, T0, T1, T2>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1, T2]>): Iterable<T2>;
15
+ export declare function pipeSync<T, T0, T1, T2, T3>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1, T2, T3]>): Iterable<T3>;
16
+ export declare function pipeSync<T, T0, T1, T2, T3, T4>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1, T2, T3, T4]>): Iterable<T4>;
17
+ export declare function pipeSync<T, T0, T1, T2, T3, T4, T5>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1, T2, T3, T4, T5]>): Iterable<T5>;
18
+ export declare function pipeSync<T, T0, T1, T2, T3, T4, T5, T6>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1, T2, T3, T4, T5, T6]>): Iterable<T6>;
19
+ export declare function pipeSync<T, T0, T1, T2, T3, T4, T5, T6, T7>(i: Iterable<T>, ...f: PipeSyncTx<[T, T0, T1, T2, T3, T4, T5, T6, T7]>): Iterable<T7>;
20
+ //# sourceMappingURL=pipe.d.ts.map
package/dist/pipe.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pipeSync = exports.pipeAsync = void 0;
4
+ const helpers_1 = require("./helpers");
5
+ function pipeAsync(i, ...fns) {
6
+ let iter = (0, helpers_1.toAsyncIterable)(i);
7
+ for (const fn of fns) {
8
+ iter = fn(iter);
9
+ }
10
+ return iter;
11
+ }
12
+ exports.pipeAsync = pipeAsync;
13
+ function pipeSync(i, ...fns) {
14
+ let iter = i;
15
+ for (const fn of fns) {
16
+ iter = fn(iter);
17
+ }
18
+ return iter;
19
+ }
20
+ exports.pipeSync = pipeSync;
21
+ //# sourceMappingURL=pipe.js.map
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@cspell/cspell-pipe",
3
+ "publishConfig": {
4
+ "access": "public"
5
+ },
6
+ "version": "5.17.0",
7
+ "description": "Library to make working with Iterators/AsyncIterators easier.",
8
+ "keywords": [
9
+ "cspell",
10
+ "pipe",
11
+ "Iterator",
12
+ "Iterable",
13
+ "AsyncIterator",
14
+ "AsyncIterable"
15
+ ],
16
+ "author": "Jason Dent <jason@streetsidesoftware.nl>",
17
+ "homepage": "https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell-pipe#readme",
18
+ "license": "MIT",
19
+ "main": "dist/index.js",
20
+ "directories": {
21
+ "dist": "dist"
22
+ },
23
+ "exports": {
24
+ ".": "./cspell-ext.json",
25
+ "./cspell": "./cspell-ext.json",
26
+ "./cspell-ext.json": "./cspell-ext.json"
27
+ },
28
+ "typings": "dist/index.d.ts",
29
+ "files": [
30
+ "dist",
31
+ "!**/__mocks__",
32
+ "!**/*.test.*",
33
+ "!**/*.spec.*",
34
+ "!**/*.map"
35
+ ],
36
+ "scripts": {
37
+ "build": "tsc -p .",
38
+ "build-dev": "tsc -p tsconfig.dev.json",
39
+ "watch": "tsc -p . -w",
40
+ "clean": "rimraf dist coverage .tsbuildinfo",
41
+ "clean-build": "npm run clean && npm run build",
42
+ "coverage": "jest --coverage",
43
+ "test-watch": "jest --watch",
44
+ "test": "jest"
45
+ },
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/streetsidesoftware/cspell.git"
49
+ },
50
+ "bugs": {
51
+ "url": "https://github.com/streetsidesoftware/cspell/labels/cspell-gitignore"
52
+ },
53
+ "engines": {
54
+ "node": ">=12.13.0"
55
+ },
56
+ "dependencies": {},
57
+ "devDependencies": {
58
+ "@types/node": "^17.0.12",
59
+ "jest": "^27.4.7",
60
+ "rimraf": "^3.0.2"
61
+ }
62
+ }