├── .build └── validate-package.js ├── .eslintrc.json ├── .github └── workflows │ └── publish.yml ├── .gitignore ├── .idea ├── .gitignore ├── .name ├── codeStyles │ ├── Project.xml │ └── codeStyleConfig.xml ├── dictionaries │ └── shared.xml ├── encodings.xml ├── fileTemplates │ └── internal │ │ └── TypeScript File.ts ├── inspectionProfiles │ ├── Project_Default.xml │ └── profiles_settings.xml ├── jsLibraryMappings.xml ├── linq.iml ├── misc.xml ├── modules.xml └── vcs.xml ├── .npmignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── dist-esm ├── LinqBase.js ├── LinqBase.js.map ├── LinqExtendedBase.js ├── LinqExtendedBase.js.map ├── applyFilters.js ├── applyFilters.js.map ├── filters.js ├── filters.js.map ├── filters │ ├── append.js │ ├── append.js.map │ ├── ascending.js │ ├── ascending.js.map │ ├── buffer.js │ ├── buffer.js.map │ ├── defaultIfEmpty.js │ ├── defaultIfEmpty.js.map │ ├── descending.js │ ├── descending.js.map │ ├── distinct.js │ ├── distinct.js.map │ ├── exclude.js │ ├── exclude.js.map │ ├── memoize.js │ ├── memoize.js.map │ ├── ofType.js │ ├── ofType.js.map │ ├── onComplete.js │ ├── onComplete.js.map │ ├── onError.js │ ├── onError.js.map │ ├── onStart.js │ ├── onStart.js.map │ ├── orderBy.js │ ├── orderBy.js.map │ ├── orderUsing.js │ ├── orderUsing.js.map │ ├── prepend.js │ ├── prepend.js.map │ ├── reverse.js │ ├── reverse.js.map │ ├── same.js │ ├── same.js.map │ ├── skip.js │ ├── skip.js.map │ ├── skipLast.js │ ├── skipLast.js.map │ ├── skipUntil.js │ ├── skipUntil.js.map │ ├── skipWhile.js │ ├── skipWhile.js.map │ ├── take.js │ ├── take.js.map │ ├── takeLast.js │ ├── takeLast.js.map │ ├── takeUntil.js │ ├── takeUntil.js.map │ ├── takeWhile.js │ ├── takeWhile.js.map │ ├── where.js │ └── where.js.map ├── identity.js ├── identity.js.map ├── index.js ├── index.js.map ├── iterables.js ├── iterables.js.map ├── iterables │ ├── concat.js │ ├── concat.js.map │ ├── empty.js │ ├── empty.js.map │ ├── iterateIndexes.js │ ├── iterateIndexes.js.map │ ├── merge.js │ ├── merge.js.map │ ├── range.js │ ├── range.js.map │ ├── repeat.js │ ├── repeat.js.map │ ├── repeatSequence.js │ ├── repeatSequence.js.map │ ├── unfold.js │ ├── unfold.js.map │ ├── union.js │ ├── union.js.map │ ├── zip.js │ └── zip.js.map ├── linq.js ├── linq.js.map ├── linqExtended.js ├── linqExtended.js.map ├── predicates │ ├── isNotNull.js │ ├── isNotNull.js.map │ ├── isNotNullOrUndefined.js │ ├── isNotNullOrUndefined.js.map │ ├── isNotUndefined.js │ └── isNotUndefined.js.map ├── resolutions.js ├── resolutions.js.map ├── resolutions │ ├── aggregate.js │ ├── aggregate.js.map │ ├── all.js │ ├── all.js.map │ ├── any.js │ ├── any.js.map │ ├── asArray.js │ ├── asArray.js.map │ ├── average.js │ ├── average.js.map │ ├── contains.js │ ├── contains.js.map │ ├── count.js │ ├── count.js.map │ ├── elementAt.js │ ├── elementAt.js.map │ ├── elementAtOrDefault.js │ ├── elementAtOrDefault.js.map │ ├── first.js │ ├── first.js.map │ ├── firstOrDefault.js │ ├── firstOrDefault.js.map │ ├── hasAny.js │ ├── hasAny.js.map │ ├── indexOf.js │ ├── indexOf.js.map │ ├── isEmpty.js │ ├── isEmpty.js.map │ ├── joinStrings.js │ ├── joinStrings.js.map │ ├── last.js │ ├── last.js.map │ ├── lastIndexOf.js │ ├── lastIndexOf.js.map │ ├── lastOrDefault.js │ ├── lastOrDefault.js.map │ ├── max.js │ ├── max.js.map │ ├── min.js │ ├── min.js.map │ ├── product.js │ ├── product.js.map │ ├── sequenceEqual.js │ ├── sequenceEqual.js.map │ ├── single.js │ ├── single.js.map │ ├── singleOrDefault.js │ ├── singleOrDefault.js.map │ ├── sum.js │ ├── sum.js.map │ ├── sumAndCount.js │ ├── sumAndCount.js.map │ ├── toArray.js │ ├── toArray.js.map │ ├── toMap.js │ └── toMap.js.map ├── transforms.js ├── transforms.js.map └── transforms │ ├── groupBy.js │ ├── groupBy.js.map │ ├── notNull.js │ ├── notNull.js.map │ ├── notNullOrUndefined.js │ ├── notNullOrUndefined.js.map │ ├── notUndefined.js │ ├── notUndefined.js.map │ ├── rows.js │ ├── rows.js.map │ ├── select.js │ ├── select.js.map │ ├── selectMany.js │ ├── selectMany.js.map │ ├── weave.js │ └── weave.js.map ├── dist ├── IterableTransform.d.ts ├── LinqBase.d.ts ├── LinqBase.js ├── LinqBase.js.map ├── LinqExtendedBase.d.ts ├── LinqExtendedBase.js ├── LinqExtendedBase.js.map ├── applyFilters.d.ts ├── applyFilters.js ├── applyFilters.js.map ├── filters.d.ts ├── filters.js ├── filters.js.map ├── filters │ ├── append.d.ts │ ├── append.js │ ├── append.js.map │ ├── ascending.d.ts │ ├── ascending.js │ ├── ascending.js.map │ ├── buffer.d.ts │ ├── buffer.js │ ├── buffer.js.map │ ├── defaultIfEmpty.d.ts │ ├── defaultIfEmpty.js │ ├── defaultIfEmpty.js.map │ ├── descending.d.ts │ ├── descending.js │ ├── descending.js.map │ ├── distinct.d.ts │ ├── distinct.js │ ├── distinct.js.map │ ├── exclude.d.ts │ ├── exclude.js │ ├── exclude.js.map │ ├── memoize.d.ts │ ├── memoize.js │ ├── memoize.js.map │ ├── ofType.d.ts │ ├── ofType.js │ ├── ofType.js.map │ ├── onComplete.d.ts │ ├── onComplete.js │ ├── onComplete.js.map │ ├── onError.d.ts │ ├── onError.js │ ├── onError.js.map │ ├── onStart.d.ts │ ├── onStart.js │ ├── onStart.js.map │ ├── orderBy.d.ts │ ├── orderBy.js │ ├── orderBy.js.map │ ├── orderUsing.d.ts │ ├── orderUsing.js │ ├── orderUsing.js.map │ ├── prepend.d.ts │ ├── prepend.js │ ├── prepend.js.map │ ├── reverse.d.ts │ ├── reverse.js │ ├── reverse.js.map │ ├── same.d.ts │ ├── same.js │ ├── same.js.map │ ├── skip.d.ts │ ├── skip.js │ ├── skip.js.map │ ├── skipLast.d.ts │ ├── skipLast.js │ ├── skipLast.js.map │ ├── skipUntil.d.ts │ ├── skipUntil.js │ ├── skipUntil.js.map │ ├── skipWhile.d.ts │ ├── skipWhile.js │ ├── skipWhile.js.map │ ├── take.d.ts │ ├── take.js │ ├── take.js.map │ ├── takeLast.d.ts │ ├── takeLast.js │ ├── takeLast.js.map │ ├── takeUntil.d.ts │ ├── takeUntil.js │ ├── takeUntil.js.map │ ├── takeWhile.d.ts │ ├── takeWhile.js │ ├── takeWhile.js.map │ ├── where.d.ts │ ├── where.js │ └── where.js.map ├── identity.d.ts ├── identity.js ├── identity.js.map ├── index.d.ts ├── index.js ├── index.js.map ├── iterables.d.ts ├── iterables.js ├── iterables.js.map ├── iterables │ ├── concat.d.ts │ ├── concat.js │ ├── concat.js.map │ ├── empty.d.ts │ ├── empty.js │ ├── empty.js.map │ ├── iterateIndexes.d.ts │ ├── iterateIndexes.js │ ├── iterateIndexes.js.map │ ├── merge.d.ts │ ├── merge.js │ ├── merge.js.map │ ├── range.d.ts │ ├── range.js │ ├── range.js.map │ ├── repeat.d.ts │ ├── repeat.js │ ├── repeat.js.map │ ├── repeatSequence.d.ts │ ├── repeatSequence.js │ ├── repeatSequence.js.map │ ├── unfold.d.ts │ ├── unfold.js │ ├── unfold.js.map │ ├── union.d.ts │ ├── union.js │ ├── union.js.map │ ├── zip.d.ts │ ├── zip.js │ └── zip.js.map ├── linq.d.ts ├── linq.js ├── linq.js.map ├── linqExtended.d.ts ├── linqExtended.js ├── linqExtended.js.map ├── predicates │ ├── isNotNull.d.ts │ ├── isNotNull.js │ ├── isNotNull.js.map │ ├── isNotNullOrUndefined.d.ts │ ├── isNotNullOrUndefined.js │ ├── isNotNullOrUndefined.js.map │ ├── isNotUndefined.d.ts │ ├── isNotUndefined.js │ └── isNotUndefined.js.map ├── resolutions.d.ts ├── resolutions.js ├── resolutions.js.map ├── resolutions │ ├── aggregate.d.ts │ ├── aggregate.js │ ├── aggregate.js.map │ ├── all.d.ts │ ├── all.js │ ├── all.js.map │ ├── any.d.ts │ ├── any.js │ ├── any.js.map │ ├── asArray.d.ts │ ├── asArray.js │ ├── asArray.js.map │ ├── average.d.ts │ ├── average.js │ ├── average.js.map │ ├── contains.d.ts │ ├── contains.js │ ├── contains.js.map │ ├── count.d.ts │ ├── count.js │ ├── count.js.map │ ├── elementAt.d.ts │ ├── elementAt.js │ ├── elementAt.js.map │ ├── elementAtOrDefault.d.ts │ ├── elementAtOrDefault.js │ ├── elementAtOrDefault.js.map │ ├── first.d.ts │ ├── first.js │ ├── first.js.map │ ├── firstOrDefault.d.ts │ ├── firstOrDefault.js │ ├── firstOrDefault.js.map │ ├── hasAny.d.ts │ ├── hasAny.js │ ├── hasAny.js.map │ ├── indexOf.d.ts │ ├── indexOf.js │ ├── indexOf.js.map │ ├── isEmpty.d.ts │ ├── isEmpty.js │ ├── isEmpty.js.map │ ├── joinStrings.d.ts │ ├── joinStrings.js │ ├── joinStrings.js.map │ ├── last.d.ts │ ├── last.js │ ├── last.js.map │ ├── lastIndexOf.d.ts │ ├── lastIndexOf.js │ ├── lastIndexOf.js.map │ ├── lastOrDefault.d.ts │ ├── lastOrDefault.js │ ├── lastOrDefault.js.map │ ├── max.d.ts │ ├── max.js │ ├── max.js.map │ ├── min.d.ts │ ├── min.js │ ├── min.js.map │ ├── product.d.ts │ ├── product.js │ ├── product.js.map │ ├── sequenceEqual.d.ts │ ├── sequenceEqual.js │ ├── sequenceEqual.js.map │ ├── single.d.ts │ ├── single.js │ ├── single.js.map │ ├── singleOrDefault.d.ts │ ├── singleOrDefault.js │ ├── singleOrDefault.js.map │ ├── sum.d.ts │ ├── sum.js │ ├── sum.js.map │ ├── sumAndCount.d.ts │ ├── sumAndCount.js │ ├── sumAndCount.js.map │ ├── toArray.d.ts │ ├── toArray.js │ ├── toArray.js.map │ ├── toMap.d.ts │ ├── toMap.js │ └── toMap.js.map ├── transforms.d.ts ├── transforms.js ├── transforms.js.map └── transforms │ ├── groupBy.d.ts │ ├── groupBy.js │ ├── groupBy.js.map │ ├── notNull.d.ts │ ├── notNull.js │ ├── notNull.js.map │ ├── notNullOrUndefined.d.ts │ ├── notNullOrUndefined.js │ ├── notNullOrUndefined.js.map │ ├── notUndefined.d.ts │ ├── notUndefined.js │ ├── notUndefined.js.map │ ├── rows.d.ts │ ├── rows.js │ ├── rows.js.map │ ├── select.d.ts │ ├── select.js │ ├── select.js.map │ ├── selectMany.d.ts │ ├── selectMany.js │ ├── selectMany.js.map │ ├── weave.d.ts │ ├── weave.js │ └── weave.js.map ├── docs ├── .nojekyll ├── assets │ ├── highlight.css │ ├── main.js │ ├── search.js │ └── style.css ├── classes │ └── transforms.GroupingResult.html ├── enums │ └── resolutions.MappingMode.html ├── functions │ ├── default.html │ ├── filters.append.html │ ├── filters.ascending.html │ ├── filters.buffer.html │ ├── filters.defaultIfEmpty.html │ ├── filters.descending.html │ ├── filters.distinct.html │ ├── filters.exclude.html │ ├── filters.ofType.html │ ├── filters.onComplete.html │ ├── filters.onError.html │ ├── filters.onStart.html │ ├── filters.orderBy.html │ ├── filters.orderUsing.html │ ├── filters.prepend.html │ ├── filters.reverse.html │ ├── filters.skip.html │ ├── filters.skipLast.html │ ├── filters.skipUntil.html │ ├── filters.skipWhile.html │ ├── filters.take.html │ ├── filters.takeLast.html │ ├── filters.takeUntil.html │ ├── filters.takeWhile.html │ ├── filters.where.html │ ├── iterables.concat.html │ ├── iterables.empty.html │ ├── iterables.iterateIndexes.html │ ├── iterables.merge.html │ ├── iterables.range.html │ ├── iterables.repeat.html │ ├── iterables.repeatSequence.html │ ├── iterables.unfold.html │ ├── iterables.union.html │ ├── iterables.zip.html │ ├── linqExtended.html │ ├── resolutions.aggregate.html │ ├── resolutions.all.html │ ├── resolutions.any.html │ ├── resolutions.asArray.html │ ├── resolutions.average.html │ ├── resolutions.contains.html │ ├── resolutions.count.html │ ├── resolutions.elementAt.html │ ├── resolutions.elementAtOrDefault.html │ ├── resolutions.first.html │ ├── resolutions.firstOrDefault.html │ ├── resolutions.hasAny.html │ ├── resolutions.indexOf.html │ ├── resolutions.isEmpty.html │ ├── resolutions.joinStrings.html │ ├── resolutions.last.html │ ├── resolutions.lastIndexOf.html │ ├── resolutions.lastOrDefault.html │ ├── resolutions.max.html │ ├── resolutions.min.html │ ├── resolutions.product.html │ ├── resolutions.sequenceEqual.html │ ├── resolutions.single.html │ ├── resolutions.singleOrDefault.html │ ├── resolutions.sum.html │ ├── resolutions.sumAndCount.html │ ├── resolutions.toArray.html │ ├── resolutions.toMap.html │ ├── transforms.groupBy.html │ ├── transforms.notNull-1.html │ ├── transforms.notNullOrUndefined.html │ ├── transforms.notUndefined-1.html │ ├── transforms.rows.html │ ├── transforms.select.html │ ├── transforms.selectMany.html │ └── transforms.weave.html ├── index.html ├── interfaces │ ├── IterableTransform.html │ └── transforms.Grouping.html ├── modules │ ├── filters.html │ ├── iterables.html │ ├── resolutions.html │ └── transforms.html └── types │ ├── IterableFilter.html │ ├── IterableValueTransform.html │ ├── transforms.Cell.html │ ├── transforms.NotNull.html │ ├── transforms.NotUndefined.html │ └── transforms.Row.html ├── linqts.png ├── package.json ├── planned ├── TraversalController.d.ts ├── groupJoin.ts ├── join.ts └── pairwise.ts ├── pnpm-lock.yaml ├── src ├── IterableTransform.d.ts ├── LinqBase.ts ├── LinqExtendedBase.ts ├── applyFilters.ts ├── filters.ts ├── filters │ ├── append.ts │ ├── ascending.ts │ ├── buffer.ts │ ├── defaultIfEmpty.ts │ ├── descending.ts │ ├── distinct.ts │ ├── exclude.ts │ ├── memoize.ts │ ├── ofType.ts │ ├── onComplete.ts │ ├── onError.ts │ ├── onStart.ts │ ├── orderBy.ts │ ├── orderUsing.ts │ ├── prepend.ts │ ├── reverse.ts │ ├── same.ts │ ├── skip.ts │ ├── skipLast.ts │ ├── skipUntil.ts │ ├── skipWhile.ts │ ├── take.ts │ ├── takeLast.ts │ ├── takeUntil.ts │ ├── takeWhile.ts │ └── where.ts ├── identity.ts ├── index.ts ├── iterables.ts ├── iterables │ ├── concat.ts │ ├── empty.ts │ ├── iterateIndexes.ts │ ├── merge.ts │ ├── range.ts │ ├── repeat.ts │ ├── repeatSequence.ts │ ├── unfold.ts │ ├── union.ts │ └── zip.ts ├── linq.ts ├── linqExtended.ts ├── predicates │ ├── isNotNull.ts │ ├── isNotNullOrUndefined.ts │ └── isNotUndefined.ts ├── resolutions.ts ├── resolutions │ ├── aggregate.ts │ ├── all.ts │ ├── any.ts │ ├── asArray.ts │ ├── average.ts │ ├── contains.ts │ ├── count.ts │ ├── elementAt.ts │ ├── elementAtOrDefault.ts │ ├── first.ts │ ├── firstOrDefault.ts │ ├── hasAny.ts │ ├── indexOf.ts │ ├── isEmpty.ts │ ├── joinStrings.ts │ ├── last.ts │ ├── lastIndexOf.ts │ ├── lastOrDefault.ts │ ├── max.ts │ ├── min.ts │ ├── product.ts │ ├── sequenceEqual.ts │ ├── single.ts │ ├── singleOrDefault.ts │ ├── sum.ts │ ├── sumAndCount.ts │ ├── toArray.ts │ └── toMap.ts ├── transforms.ts └── transforms │ ├── groupBy.ts │ ├── notNull.ts │ ├── notNullOrUndefined.ts │ ├── notUndefined.ts │ ├── rows.ts │ ├── select.ts │ ├── selectMany.ts │ └── weave.ts ├── tests ├── filters.ts ├── iterables.ts ├── linq.ts ├── predicates.ts ├── resolutions.ts ├── testItems.ts ├── testRepeatableResolution.ts └── transforms.ts ├── tsconfig.esm.json ├── tsconfig.json └── typedoc.json /.build/validate-package.js: -------------------------------------------------------------------------------- 1 | const packageJson = require('../package.json'); 2 | const fs = require("fs"); 3 | 4 | let fail = 0; 5 | for(const key of ['types', 'main', 'module']) 6 | { 7 | const path = packageJson[key]; 8 | if(!path) 9 | console.error('Required value "' + key + '" not found.'); 10 | else if(!fs.existsSync(path)) 11 | console.error('File "' + key + '": "' + path + '" not found.'); 12 | else continue; 13 | fail = 1; 14 | } 15 | process.exit(fail); 16 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Nodejs 2 | node_modules 3 | .idea/dictionaries/* 4 | !.idea/dictionaries/shared.xml 5 | !.idea/dictionaries/local.xml 6 | .nyc_output 7 | 8 | #using pnpm instead of npm 9 | package-lock.json 10 | -------------------------------------------------------------------------------- /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # Default ignored files 2 | /workspace.xml 3 | -------------------------------------------------------------------------------- /.idea/.name: -------------------------------------------------------------------------------- 1 | @tsdotnet/linq 2 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | -------------------------------------------------------------------------------- /.idea/dictionaries/shared.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | enumerables 5 | formattable 6 | indexable 7 | nojekyll 8 | noninfringement 9 | npmjs 10 | sbyte 11 | tsdotnet 12 | typedoc 13 | ulong 14 | ushort 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /.idea/encodings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/fileTemplates/internal/TypeScript File.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ -------------------------------------------------------------------------------- /.idea/inspectionProfiles/Project_Default.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /.idea/jsLibraryMappings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/linq.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .* 3 | bin 4 | obj 5 | *.user 6 | /tests 7 | /spec 8 | /src 9 | /planned 10 | /docs 11 | /archive 12 | /examples 13 | typedoc.json 14 | tsconfig.* 15 | pnpm-lock.yaml 16 | package-lock.json 17 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cSpell.words": [ 3 | "camelcase", 4 | "copyfiles", 5 | "electricessence", 6 | "Enumerables", 7 | "Linq", 8 | "pnpm", 9 | "postversion", 10 | "precommit", 11 | "preversion", 12 | "tsdotnet", 13 | "typedoc", 14 | "xyxyxy", 15 | "xyzxyzxyz" 16 | ] 17 | } -------------------------------------------------------------------------------- /dist-esm/applyFilters.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Applies a set of filters to a sequence. 7 | * @param {Iterable} sequence The sequence to apply to. 8 | * @param {Iterable>} filters The filters to apply. 9 | * @return {Iterable} The resultant sequence. 10 | */ 11 | export default function applyFilters(sequence, filters) { 12 | for (const filter of filters) { 13 | sequence = filter(sequence); 14 | } 15 | return sequence; 16 | } 17 | //# sourceMappingURL=applyFilters.js.map -------------------------------------------------------------------------------- /dist-esm/applyFilters.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"applyFilters.js","sourceRoot":"","sources":["../src/applyFilters.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CACnC,QAAqB,EACrB,OAAoC;IACpC,KAAI,MAAM,MAAM,IAAI,OAAO,EAC3B;QACC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC5B;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/append.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import concat from '../iterables/concat'; 6 | import same from './same'; 7 | /* 8 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 9 | */ 10 | export default function append(...elements) { 11 | if (elements.length === 0) 12 | return same; 13 | return function (sequence) { 14 | return concat(sequence, elements); 15 | }; 16 | } 17 | //# sourceMappingURL=append.js.map -------------------------------------------------------------------------------- /dist-esm/filters/append.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"append.js","sourceRoot":"","sources":["../../src/filters/append.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAEzC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAK,GAAG,QAAa;IAClD,IAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,UAAS,QAAqB;QACpC,OAAO,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/ascending.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import comparePrimitives from '@tsdotnet/compare/dist/comparePrimitives'; 6 | import toArray from '../resolutions/toArray'; 7 | /** 8 | * Default ascending sort delegate for primitive only iterables. 9 | * @param {Iterable} sequence 10 | * @return {Iterable} 11 | */ 12 | export default function ascending(sequence) { 13 | return { 14 | *[Symbol.iterator]() { 15 | for (const e of toArray(sequence).sort(comparePrimitives)) 16 | yield e; 17 | } 18 | }; 19 | } 20 | //# sourceMappingURL=ascending.js.map -------------------------------------------------------------------------------- /dist-esm/filters/ascending.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"ascending.js","sourceRoot":"","sources":["../../src/filters/ascending.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAuB,QAAqB;IAC5E,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC;gBAAE,MAAM,CAAC,CAAC;QACnE,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/buffer.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/filters/buffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAK,IAAY;IAC9C,IAAG,IAAI,IAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,MAAM,CAAC,GAAG,IAAI,KAAK,EAAK,CAAC;gBACzB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACb,IAAG,CAAC,CAAC,KAAK,GAAC,IAAI;wBAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACvC;gBACD,OAAM,CAAC,CAAC,CAAC,OAAO;oBAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/defaultIfEmpty.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * A iterable filter that returns the elements of the specified sequence or the specified value in a collection if the sequence is empty. 7 | * @param {T} defaultValue 8 | * @return {IterableFilter} 9 | */ 10 | export default function defaultIfEmpty(defaultValue) { 11 | return function (sequence) { 12 | return { 13 | *[Symbol.iterator]() { 14 | let hasElements = false; 15 | for (const e of sequence) { 16 | hasElements = true; 17 | yield e; 18 | } 19 | if (!hasElements) 20 | yield defaultValue; 21 | } 22 | }; 23 | }; 24 | } 25 | //# sourceMappingURL=defaultIfEmpty.js.map -------------------------------------------------------------------------------- /dist-esm/filters/defaultIfEmpty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"defaultIfEmpty.js","sourceRoot":"","sources":["../../src/filters/defaultIfEmpty.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAK,YAAe;IACzD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,WAAW,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,CAAC;iBACR;gBACD,IAAG,CAAC,WAAW;oBAAE,MAAM,YAAY,CAAC;YACrC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/descending.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import comparePrimitives from '@tsdotnet/compare/dist/comparePrimitives'; 6 | import toArray from '../resolutions/toArray'; 7 | /** 8 | * Default descending sort delegate for primitive only iterables. 9 | * @param {Iterable} sequence 10 | * @return {Iterable} 11 | */ 12 | export default function descending(sequence) { 13 | return { 14 | *[Symbol.iterator]() { 15 | for (const e of toArray(sequence).sort(comparePrimitives.inverted)) 16 | yield e; 17 | } 18 | }; 19 | } 20 | //# sourceMappingURL=descending.js.map -------------------------------------------------------------------------------- /dist-esm/filters/descending.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"descending.js","sourceRoot":"","sources":["../../src/filters/descending.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AACzE,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAuB,QAAqB;IAC7E,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC;gBAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/distinct.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * An iterable filter that returns distinct elements from a sequence. 7 | * @param {Iterable} sequence 8 | * @return {Iterable} 9 | */ 10 | export default function distinct(sequence) { 11 | return { 12 | *[Symbol.iterator]() { 13 | const s = new Set(); 14 | for (const e of sequence) { 15 | if (s.has(e)) 16 | continue; 17 | s.add(e); 18 | yield e; 19 | } 20 | s.clear(); 21 | } 22 | }; 23 | } 24 | //# sourceMappingURL=distinct.js.map -------------------------------------------------------------------------------- /dist-esm/filters/distinct.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../src/filters/distinct.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAK,QAAqB;IACzD,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,MAAM,CAAC,GAAG,IAAI,GAAG,EAAK,CAAC;YACvB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;gBACC,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACtB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,CAAC;aACR;YACD,CAAC,CAAC,KAAK,EAAE,CAAC;QACX,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/memoize.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import memoize from '@tsdotnet/memoize'; 6 | // included for re-indexing. 7 | export { memoize }; 8 | //# sourceMappingURL=memoize.js.map -------------------------------------------------------------------------------- /dist-esm/filters/memoize.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/filters/memoize.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAExC,4BAA4B;AAC5B,OAAO,EAAC,OAAO,EAAC,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/ofType.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"ofType.js","sourceRoot":"","sources":["../../src/filters/ofType.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,MAAM,SAAS,CAAC;AAsC5B;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAS,IAAa;IACnD,IAAI,QAAgB,CAAC;IACrB,QAAO,IAAI,EACX;QACC,KAAK,MAAM;YACV,QAAQ,GAAG,QAAQ,CAAC;YACpB,MAAM;QACP,KAAK,MAAM;YACV,QAAQ,GAAG,QAAQ,CAAC;YACpB,MAAM;QACP,KAAK,OAAO;YACX,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACP,KAAK,QAAQ;YACZ,QAAQ,GAAG,UAAU,CAAC;YACtB,MAAM;QACP;YACC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAa,IAAY,CAAC,CAAC;KAC/C;IACD,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAG,QAAQ,CAAC,CAAC;AACxC,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/onComplete.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 6 | /** 7 | * An iterable filter that invokes the provided action if there are no more entries to iterate. 8 | * @param {() => void} action 9 | * @return {IterableFilter} 10 | */ 11 | export default function onComplete(action) { 12 | if (!action) 13 | throw new ArgumentNullException('action'); 14 | return function (sequence) { 15 | return { 16 | *[Symbol.iterator]() { 17 | for (const e of sequence) 18 | yield e; 19 | action(); 20 | } 21 | }; 22 | }; 23 | } 24 | //# sourceMappingURL=onComplete.js.map -------------------------------------------------------------------------------- /dist-esm/filters/onComplete.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"onComplete.js","sourceRoot":"","sources":["../../src/filters/onComplete.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CAAK,MAAkB;IACxD,IAAG,CAAC,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBACjC,MAAM,EAAE,CAAC;YACV,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/onError.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"onError.js","sourceRoot":"","sources":["../../src/filters/onError.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC9B,OAAyC;IAEzC,IAAG,CAAC,OAAO;QAAE,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAM,IAAI,EACV;oBACC,IACA;wBACC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAC7B,IAAG,IAAI,CAAC,IAAI;4BAAE,MAAM;wBACpB,MAAM,IAAI,CAAC,KAAK,CAAC;qBACjB;oBACD,OAAM,EAAE,EACR;wBACC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBACf,MAAM;qBACN;oBACD,CAAC,EAAE,CAAC;iBACJ;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/onStart.js: -------------------------------------------------------------------------------- 1 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 2 | /** 3 | * An iterable filter that invokes the provided action before iterating results. 4 | * @param {() => void} action 5 | * @return {IterableFilter} 6 | */ 7 | export default function onStart(action) { 8 | if (!action) 9 | throw new ArgumentNullException('action'); 10 | return function (sequence) { 11 | return { 12 | *[Symbol.iterator]() { 13 | action(); 14 | for (const e of sequence) 15 | yield e; 16 | } 17 | }; 18 | }; 19 | } 20 | //# sourceMappingURL=onStart.js.map -------------------------------------------------------------------------------- /dist-esm/filters/onStart.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"onStart.js","sourceRoot":"","sources":["../../src/filters/onStart.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,MAAkB;IACrD,IAAG,CAAC,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,MAAM,EAAE,CAAC;gBACT,KAAI,MAAM,CAAC,IAAI,QAAQ;oBAAE,MAAM,CAAC,CAAC;YAClC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/orderBy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"orderBy.js","sourceRoot":"","sources":["../../src/filters/orderBy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AAGzE,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC9B,WAA8B,EAAE,+BAA8B;IAC9D,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,KAAI,MAAM,CAAC,IACV,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAC,KAAK,CAAC,EACpE;oBACC,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/orderUsing.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"orderUsing.js","sourceRoot":"","sources":["../../src/filters/orderUsing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,UAAU,CACjC,UAAyB,EACzB,+BAA8B;IAC9B,IAAG,CAAC,UAAU;QAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC9D,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,KAAI,MAAM,CAAC,IACV,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,6BAAkB;oBAC7C,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAU,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;oBAC1C,CAAC,CAAC,UAAU,CAAC,EACf;oBACC,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/prepend.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import concat from '../iterables/concat'; 6 | import same from './same'; 7 | /** 8 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 9 | * @param {T} elements 10 | * @return {IterableFilter} 11 | */ 12 | export default function prepend(...elements) { 13 | if (elements.length === 0) 14 | return same; 15 | return function (sequence) { 16 | return concat(elements, sequence); 17 | }; 18 | } 19 | //# sourceMappingURL=prepend.js.map -------------------------------------------------------------------------------- /dist-esm/filters/prepend.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"prepend.js","sourceRoot":"","sources":["../../src/filters/prepend.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAEzC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,GAAG,QAAa;IACnD,IAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,UAAS,QAAqB;QACpC,OAAO,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/reverse.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../src/filters/reverse.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,OAAO,MAAM,wBAAwB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,QAAqB;IACxD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,IAAG,QAAQ,YAAY,KAAK,EAC5B;gBACC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC5B,KAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,EAAE,EAC9B;oBACC,IAAG,GAAG,KAAG,QAAQ,CAAC,MAAM;wBAAE,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBAChF,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAClB;gBACD,OAAO;aACP;YAED,KAAI,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAC1C;gBACC,MAAM,CAAC,CAAC;aACR;QACF,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/same.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Returns the sequence provided. 7 | * @param {Iterable} sequence 8 | * @return {Iterable} 9 | */ 10 | export default function same(sequence) { 11 | return sequence; 12 | } 13 | //# sourceMappingURL=same.js.map -------------------------------------------------------------------------------- /dist-esm/filters/same.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"same.js","sourceRoot":"","sources":["../../src/filters/same.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAK,QAAqB;IACrD,OAAO,QAAQ,CAAC;AACjB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/skip.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"skip.js","sourceRoot":"","sources":["../../src/filters/skip.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAE1B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAK,KAAa;IAC7C,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAG,QAAQ,YAAY,KAAK,EAC5B;oBACC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC5B,KAAI,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC7B;wBACC,IAAG,GAAG,KAAG,QAAQ,CAAC,MAAM;4BAAE,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;wBAChF,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;qBAClB;oBACD,OAAO;iBACP;gBAED,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,CAAC,GAAC,MAAM,EAAE;wBAAE,SAAS;oBACxB,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/skipUntil.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import skipWhile from './skipWhile'; 6 | /** 7 | * An iterable filter that bypasses elements in sequence until the predicate condition returns is true. 8 | * Inverse of skipWhile. 9 | * @param {PredicateWithIndex} predicate 10 | * @return {IterableFilter} 11 | */ 12 | export default function skipUntil(predicate) { 13 | return skipWhile((e, i) => !predicate(e, i)); 14 | } 15 | //# sourceMappingURL=skipUntil.js.map -------------------------------------------------------------------------------- /dist-esm/filters/skipUntil.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"skipUntil.js","sourceRoot":"","sources":["../../src/filters/skipUntil.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAK,SAAgC;IACrE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/skipWhile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"skipWhile.js","sourceRoot":"","sources":["../../src/filters/skipWhile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAK,SAAgC;IACrE,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;gBAC3B,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B;wBACC,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,CAAC,CAAC;qBACR;oBACD,CAAC,EAAE,CAAC;iBACJ;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/takeUntil.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import takeWhile from './takeWhile'; 6 | /** 7 | * An iterable filter that will return results until the predicate condition is true. 8 | * @param {PredicateWithIndex} predicate 9 | * @return {IterableFilter} 10 | */ 11 | export default function takeUntil(predicate) { 12 | return takeWhile((e, i) => !predicate(e, i)); 13 | } 14 | //# sourceMappingURL=takeUntil.js.map -------------------------------------------------------------------------------- /dist-esm/filters/takeUntil.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"takeUntil.js","sourceRoot":"","sources":["../../src/filters/takeUntil.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAK,SAAgC;IACrE,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/takeWhile.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * An iterable filter that will return results while the predicate condition is true and stops when false. 7 | * @param {PredicateWithIndex} predicate 8 | * @return {IterableFilter} 9 | */ 10 | export default function takeWhile(predicate) { 11 | return function (sequence) { 12 | return { 13 | *[Symbol.iterator]() { 14 | let i = 0; 15 | for (const e of sequence) { 16 | if (!predicate(e, i++)) 17 | break; 18 | yield e; 19 | } 20 | } 21 | }; 22 | }; 23 | } 24 | //# sourceMappingURL=takeWhile.js.map -------------------------------------------------------------------------------- /dist-esm/filters/takeWhile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"takeWhile.js","sourceRoot":"","sources":["../../src/filters/takeWhile.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAK,SAAgC;IACrE,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAAE,MAAM;oBAC7B,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/filters/where.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * An iterable filter that only returns elements that match the provided predicate. 7 | * @param {PredicateWithIndex} predicate 8 | * @return {IterableFilter} 9 | */ 10 | export default function where(predicate) { 11 | return function (sequence) { 12 | return { 13 | *[Symbol.iterator]() { 14 | let i = 0; 15 | for (const e of sequence) { 16 | if (predicate(e, i++)) 17 | yield e; 18 | } 19 | } 20 | }; 21 | }; 22 | } 23 | //# sourceMappingURL=where.js.map -------------------------------------------------------------------------------- /dist-esm/filters/where.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/filters/where.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAK,SAAgC;IACjE,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAAE,MAAM,CAAC,CAAC;iBAC9B;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/identity.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | export default function identity(e) { return e; } 6 | //# sourceMappingURL=identity.js.map -------------------------------------------------------------------------------- /dist-esm/identity.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAE,CAAU,IAAS,OAAO,CAAC,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /dist-esm/index.js: -------------------------------------------------------------------------------- 1 | /**! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | * @ignore 5 | */ 6 | import * as filters from './filters'; 7 | import * as iterables from './iterables'; 8 | import linq from './linq'; 9 | import linqExtended from './linqExtended'; 10 | import * as resolutions from './resolutions'; 11 | import * as transforms from './transforms'; 12 | export { filters, iterables, resolutions, transforms, linqExtended }; 13 | export default linq; 14 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /dist-esm/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAQ3C,OAAO,EACN,OAAO,EACP,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,CAAC;AAEF,eAAe,IAAI,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import concat from './iterables/concat'; 6 | import empty from './iterables/empty'; 7 | import iterateIndexes from './iterables/iterateIndexes'; 8 | import merge from './iterables/merge'; 9 | import range from './iterables/range'; 10 | import repeat from './iterables/repeat'; 11 | import repeatSequence from './iterables/repeatSequence'; 12 | import unfold from './iterables/unfold'; 13 | import union from './iterables/union'; 14 | import zip from './iterables/zip'; 15 | export { empty, concat, iterateIndexes, merge, range, repeat, repeatSequence, unfold, union, zip }; 16 | //# sourceMappingURL=iterables.js.map -------------------------------------------------------------------------------- /dist-esm/iterables.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"iterables.js","sourceRoot":"","sources":["../src/iterables.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,cAAc,MAAM,4BAA4B,CAAC;AACxD,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC,OAAO,EACN,KAAK,EACL,MAAM,EACN,cAAc,EACd,KAAK,EACL,KAAK,EACL,MAAM,EACN,cAAc,EACd,MAAM,EACN,KAAK,EACL,GAAG,EACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/concat.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import merge from './merge'; 6 | /** 7 | * Concatenates the provided sequences. 8 | * @param {Iterable} sequences 9 | * @return {Iterable} 10 | */ 11 | export default function concat(...sequences) { 12 | return merge(sequences); 13 | } 14 | //# sourceMappingURL=concat.js.map -------------------------------------------------------------------------------- /dist-esm/iterables/concat.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/iterables/concat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAK,GAAG,SAAwB;IAC7D,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC;AACzB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/empty.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | export const doneResult = Object.freeze({ 6 | done: true, 7 | value: undefined 8 | }); 9 | export const emptyIterator = Object.freeze({ next() { return doneResult; } }); 10 | export const emptyIterable = Object.freeze({ [Symbol.iterator]() { return emptyIterator; } }); 11 | export default function () { 12 | return emptyIterable; 13 | } 14 | //# sourceMappingURL=empty.js.map -------------------------------------------------------------------------------- /dist-esm/iterables/empty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"empty.js","sourceRoot":"","sources":["../../src/iterables/empty.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,SAAS;CAChB,CAA8B,CAAC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,KAAM,OAAO,UAAU,CAAC,CAAC,CAAC,EAAC,CAAkB,CAAC;AAC9F,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAqB,OAAO,aAAa,CAAC,CAAC,CAAC,EAAC,CAAkB,CAAC;AAC7H,MAAM,CAAC,OAAO;IACb,OAAO,aAAa,CAAC;AACtB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/iterateIndexes.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"iterateIndexes.js","sourceRoot":"","sources":["../../src/iterables/iterateIndexes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAK,MAAoB;IAC9D,IAAG,CAAC,MAAM;QAAE,MAAM,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,MAAM,GAAG,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;YAC3B,IAAG,GAAG,EACN;gBACC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB;oBACC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;iBAChB;aACD;QACF,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/merge.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 6 | /** 7 | * Concatenates the sequences. 8 | * @param {Iterable>} sequences 9 | * @return {Iterable} 10 | */ 11 | export default function merge(sequences) { 12 | if (!sequences) 13 | throw new ArgumentNullException('sequences'); 14 | return { 15 | *[Symbol.iterator]() { 16 | for (const s of sequences) { 17 | for (const e of s) { 18 | yield e; 19 | } 20 | } 21 | } 22 | }; 23 | } 24 | //# sourceMappingURL=merge.js.map -------------------------------------------------------------------------------- /dist-esm/iterables/merge.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/iterables/merge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAK,SAAgC;IACjE,IAAG,CAAC,SAAS;QAAE,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC5D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,SAAS,EACxB;gBACC,KAAI,MAAM,CAAC,IAAI,CAAC,EAChB;oBACC,MAAM,CAAC,CAAC;iBACR;aACD;QACF,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/range.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Generates a sequence of numbers within a specified range. 7 | * @param {number} start 8 | * @param {number} maxInclusive 9 | * @param {number} step 10 | * @returns {Iterable} 11 | */ 12 | export default function range(start = 0, maxInclusive = Infinity, step = 1) { 13 | return { 14 | *[Symbol.iterator]() { 15 | for (let i = start; i <= maxInclusive; i += step) { 16 | yield i; 17 | } 18 | } 19 | }; 20 | } 21 | //# sourceMappingURL=range.js.map -------------------------------------------------------------------------------- /dist-esm/iterables/range.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/iterables/range.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAC5B,KAAK,GAAU,CAAC,EAChB,YAAY,GAAG,QAAQ,EACvB,IAAI,GAAW,CAAC;IAChB,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAE,YAAY,EAAE,CAAC,IAAI,IAAI,EAC7C;gBACC,MAAM,CAAC,CAAC;aACR;QACF,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/repeat.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Generates a sequence that contains one repeated value. 7 | * @param {T} entry 8 | * @param {number} count The number of times to repeat. 9 | * @return {Iterable} 10 | */ 11 | export default function repeat(entry, count) { 12 | return { 13 | *[Symbol.iterator]() { 14 | for (let i = 0; i < count; i++) 15 | yield entry; 16 | } 17 | }; 18 | } 19 | //# sourceMappingURL=repeat.js.map -------------------------------------------------------------------------------- /dist-esm/iterables/repeat.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../src/iterables/repeat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC7B,KAAQ,EACR,KAAa;IACb,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,KAAK,EAAE,CAAC,EAAE;gBAAE,MAAM,KAAK,CAAC;QAC1C,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/repeatSequence.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"repeatSequence.js","sourceRoot":"","sources":["../../src/iterables/repeatSequence.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CACrC,QAAqB,EAAE,KAAa;IACpC,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,KAAK,EAAE,CAAC,EAAE,EAC3B;gBACC,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,MAAM,CAAC,CAAC;iBACR;aACD;QACF,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/unfold.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"unfold.js","sourceRoot":"","sources":["../../src/iterables/unfold.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC7B,IAAO,EACP,YAAqC,EACrC,QAAQ,GAAG,KAAK;IAEhB,IAAG,CAAC,YAAY;QAAE,MAAM,IAAI,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAClE,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,IAAG,CAAC,QAAQ;gBAAE,MAAM,IAAI,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,OAAM,IAAI,EACV;gBACC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,KAAK,CAAC;aACZ;QACF,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/iterables/union.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import distinct from '../filters/distinct'; 6 | import merge from './merge'; 7 | /** 8 | * Produces the set union of all sequences provided.. 9 | * @param {Iterable} sequences 10 | * @return {Iterable} 11 | */ 12 | export default function union(...sequences) { 13 | return distinct(merge(sequences)); 14 | } 15 | //# sourceMappingURL=union.js.map -------------------------------------------------------------------------------- /dist-esm/iterables/union.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/iterables/union.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAK,GAAG,SAAwB;IAC5D,OAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,CAAC"} -------------------------------------------------------------------------------- /dist-esm/predicates/isNotNull.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /* eslint-ignore */ 6 | export default function isNotNull(e) { 7 | return e !== null; 8 | } 9 | //# sourceMappingURL=isNotNull.js.map -------------------------------------------------------------------------------- /dist-esm/predicates/isNotNull.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isNotNull.js","sourceRoot":"","sources":["../../src/predicates/isNotNull.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,mBAAmB;AACnB,MAAM,CAAC,OAAO,UAAU,SAAS,CAAW,CAAI;IAC/C,OAAO,CAAC,KAAG,IAAI,CAAC;AACjB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/predicates/isNotNullOrUndefined.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /* eslint-ignore */ 6 | export default function isNotNullOrUndefined(e) { 7 | return e != null; 8 | } 9 | //# sourceMappingURL=isNotNullOrUndefined.js.map -------------------------------------------------------------------------------- /dist-esm/predicates/isNotNullOrUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isNotNullOrUndefined.js","sourceRoot":"","sources":["../../src/predicates/isNotNullOrUndefined.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mBAAmB;AACnB,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAW,CAAI;IAC1D,OAAO,CAAC,IAAE,IAAI,CAAC;AAChB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/predicates/isNotUndefined.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /* eslint-ignore */ 6 | export default function isNotUndefined(e) { 7 | return e !== undefined; 8 | } 9 | //# sourceMappingURL=isNotUndefined.js.map -------------------------------------------------------------------------------- /dist-esm/predicates/isNotUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isNotUndefined.js","sourceRoot":"","sources":["../../src/predicates/isNotUndefined.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,mBAAmB;AACnB,MAAM,CAAC,OAAO,UAAU,cAAc,CAAW,CAAI;IACpD,OAAO,CAAC,KAAG,SAAS,CAAC;AACtB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/all.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/resolutions/all.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAK,SAAgC;IAC/D,IAAG,CAAC,SAAS;QAAE,MAAM,IAAI,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAC5D,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/any.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"any.js","sourceRoot":"","sources":["../../src/resolutions/any.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAK,SAAiC;IAChE,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAG,CAAC,SAAS,EACb;YACC,4CAA4C;YAC5C,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;SAClC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/asArray.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 6 | /** 7 | * Returns an array (copy) of all the elements in a sequence if the sequence isn't already an array. 8 | * If the sequence is an array, it's returned as is. 9 | * @param {Iterable} sequence 10 | * @return {T[]} 11 | */ 12 | export default function asArray(sequence) { 13 | if (!sequence) 14 | throw new ArgumentNullException('sequence'); 15 | if (sequence instanceof Array) 16 | return sequence; 17 | const result = []; 18 | for (const e of sequence) 19 | result.push(e); 20 | return result; 21 | } 22 | //# sourceMappingURL=asArray.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/asArray.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"asArray.js","sourceRoot":"","sources":["../../src/resolutions/asArray.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,QAAqB;IACxD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AACf,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/average.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"average.js","sourceRoot":"","sources":["../../src/resolutions/average.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAE5F;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAE,QAA0B;IAC1D,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,GAAG,IAAI,CAAC,CAAC;QACT,KAAK,EAAE,CAAC;KACR;IACD,IAAG,KAAK,KAAG,CAAC;QAAE,MAAM,IAAI,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;IACxE,OAAO,GAAG,GAAC,KAAK,CAAC;AAClB,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/contains.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import indexOf from './indexOf'; 6 | /** 7 | * An iterable transform that resolves true if the provided sequence contains the entry. Otherwise false. 8 | * @param {T} entry 9 | * @return {IterableTransform} 10 | */ 11 | export default function contains(entry) { 12 | return function (sequence) { 13 | return indexOf(entry)(sequence) !== -1; 14 | }; 15 | } 16 | //# sourceMappingURL=contains.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/contains.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"contains.js","sourceRoot":"","sources":["../../src/resolutions/contains.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAK,KAAQ;IAC5C,OAAO,UAAS,QAAqB;QACpC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/count.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import aggregate from './aggregate'; 6 | const a = aggregate((p) => p + 1, 0); 7 | /** 8 | * Returns the number of entries in a sequence. 9 | * @param {Iterable} sequence 10 | * @return {number} 11 | */ 12 | export default function count(sequence) { 13 | if (sequence instanceof Array) 14 | return sequence.length; 15 | return sequence ? a(sequence) : 0; 16 | } 17 | //# sourceMappingURL=count.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/count.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"count.js","sourceRoot":"","sources":["../../src/resolutions/count.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAErC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAK,QAAqB;IACtD,IAAG,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/elementAt.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"elementAt.js","sourceRoot":"","sources":["../../src/resolutions/elementAt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,2BAA2B,MAAM,uDAAuD,CAAC;AAChG,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAGxC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAK,KAAa;IAClD,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAG,QAAQ,YAAY,KAAK,EAC5B;YACC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxB,IAAG,KAAK,GAAC,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;SACvC;aAED;YACC,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;gBACC,IAAG,KAAK,KAAG,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC;aAC7B;SACD;QACD,MAAM,IAAI,2BAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,wCAAwC,GAAG,KAAK,CAAC,CAAC;IACzG,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/elementAtOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"elementAtOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/elementAtOrDefault.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAoBxC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAc,KAAa,EAAE,YAAgB;IAEtF,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK;YAC5B,OAAO,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEjE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;YACzB,IAAI,KAAK,KAAK,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC;SAChC;QACD,OAAO,YAAY,CAAC;IACrB,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/first.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"first.js","sourceRoot":"","sources":["../../src/resolutions/first.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAE5F;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAK,QAAqB;IACtD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK,EAC5B;QACC,IAAG,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC5C;SAED;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAG,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;KACnC;IACD,MAAM,IAAI,yBAAyB,CAAC,wBAAwB,CAAC,CAAC;AAC/D,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/firstOrDefault.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * An iterable transform that returns the first element of a sequence, or a default value if no element is found. 7 | * @param {TDefault} defaultValue 8 | * @return {IterableTransform} 9 | */ 10 | export default function firstOrDefault(defaultValue) { 11 | return function (sequence) { 12 | if (!sequence) 13 | return defaultValue; 14 | if (sequence instanceof Array) 15 | return sequence.length == 0 ? defaultValue : sequence[0]; 16 | const iterator = sequence[Symbol.iterator](); 17 | const first = iterator.next(); 18 | return first.done ? defaultValue : first.value; 19 | }; 20 | } 21 | //# sourceMappingURL=firstOrDefault.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/firstOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"firstOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/firstOrDefault.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAc,YAAuB;IAE1E,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK;YAC5B,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAChD,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/hasAny.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import isEmpty from './isEmpty'; 6 | /** 7 | * Returns true if the sequence is not empty. 8 | * @param {Iterable} sequence 9 | * @return {boolean} 10 | */ 11 | export default function hasAny(sequence) { 12 | return !isEmpty(sequence); 13 | } 14 | //# sourceMappingURL=hasAny.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/hasAny.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"hasAny.js","sourceRoot":"","sources":["../../src/resolutions/hasAny.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,QAAuB;IACtD,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/indexOf.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"indexOf.js","sourceRoot":"","sources":["../../src/resolutions/indexOf.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,KAAQ;IAC3C,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChC,CAAC,EAAE,CAAC;SACJ;QACD,OAAO,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/isEmpty.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Returns true if the sequence is empty. 7 | * @param {Iterable} sequence 8 | * @return {boolean} 9 | */ 10 | export default function isEmpty(sequence) { 11 | // noinspection PointlessBooleanExpressionJS 12 | return !sequence 13 | || sequence instanceof Array && (sequence.length === 0) 14 | || sequence[Symbol.iterator]().next().done === true; 15 | } 16 | //# sourceMappingURL=isEmpty.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/isEmpty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../src/resolutions/isEmpty.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAE,QAAuB;IACvD,4CAA4C;IAC5C,OAAO,CAAC,QAAQ;WACZ,QAAQ,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;WACpD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAG,IAAI,CAAC;AACpD,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/joinStrings.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"joinStrings.js","sourceRoot":"","sources":["../../src/resolutions/joinStrings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAE,SAAS,GAAG,EAAE;IAE1C,IAAG,SAAS,IAAE,IAAI;QAAE,SAAS,GAAG,EAAE,CAAC;IACnC,OAAO,UAAS,QAA0B;QACzC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACjB,IAAG,CAAC,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1B;YACC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;SAC9B;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/last.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"last.js","sourceRoot":"","sources":["../../src/resolutions/last.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAE5F;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,IAAI,CAAK,QAAqB;IACrD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK,EAC5B;QACC,IAAG,QAAQ,CAAC,MAAM,IAAI,CAAC;YACtB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACtC;SAED;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAG,CAAC,IAAI,CAAC,IAAI,EACb;YACC,IAAI,IAAO,CAAC;YACZ,GACA;gBACC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBAClB,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;aACvB,QACK,CAAC,IAAI,CAAC,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC;SACZ;KACD;IACD,MAAM,IAAI,yBAAyB,CAAC,wBAAwB,CAAC,CAAC;AAC/D,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/lastIndexOf.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"lastIndexOf.js","sourceRoot":"","sources":["../../src/resolutions/lastIndexOf.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AACvD,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAGpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAK,IAAO;IAC9C,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACrB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC/B,CAAC,EAAE,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/lastOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"lastOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/lastOrDefault.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAiBF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAc,YAAuB;IACzE,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC9B,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC;gBAC1B,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,GAA6B,YAAY,CAAC;QAClD,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,IAAI,GAAG,OAAO,CAAC;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/max.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"max.js","sourceRoot":"","sources":["../../src/resolutions/max.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAE5F;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAuB,QAAqB;IACtE,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjB,IAAG,CAAC,CAAC,IAAI;QAAE,MAAM,IAAI,yBAAyB,CAAC,mEAAmE,CAAC,CAAC;IAEpH,IAAI,GAAG,GAAM,CAAC,CAAC,KAAK,CAAC;IACrB,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1B;QACC,IAAG,CAAC,CAAC,KAAK,GAAC,GAAG;YAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;KAC9B;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"min.js","sourceRoot":"","sources":["../../src/resolutions/min.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAE5F;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAuB,QAAqB;IACtE,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjB,IAAG,CAAC,CAAC,IAAI;QAAE,MAAM,IAAI,yBAAyB,CAAC,mEAAmE,CAAC,CAAC;IAGpH,IAAI,GAAG,GAAM,CAAC,CAAC,KAAK,CAAC;IACrB,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1B;QACC,IAAG,CAAC,CAAC,KAAK,GAAC,GAAG;YAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;KAC9B;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/product.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/resolutions/product.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAE,QAA0B;IAC1D,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACpC,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC;KACb;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/sequenceEqual.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import { areEqual } from '@tsdotnet/compare'; 6 | import areSequencesEqual from '@tsdotnet/compare/dist/areSequencesEqual'; 7 | /** 8 | * Resolves true if the sequences are equal. 9 | * @param {Iterable} other 10 | * @param {EqualityComparison} equalityComparer 11 | * @return {IterableTransform} 12 | */ 13 | export default function sequenceEqual(other, equalityComparer = areEqual) { 14 | return function (sequence) { 15 | return areSequencesEqual(sequence, other, equalityComparer); 16 | }; 17 | } 18 | //# sourceMappingURL=sequenceEqual.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/sequenceEqual.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sequenceEqual.js","sourceRoot":"","sources":["../../src/resolutions/sequenceEqual.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,QAAQ,EAAqB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,iBAAiB,MAAM,0CAA0C,CAAC;AAGzE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACpC,KAAkB,EAClB,mBAA0C,QAAQ;IAClD,OAAO,UAAS,QAAqB;QACpC,OAAO,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/single.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"single.js","sourceRoot":"","sources":["../../src/resolutions/single.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AACpF,OAAO,yBAAyB,MAAM,qDAAqD,CAAC;AAE5F;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAK,QAAqB;IACvD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,WAAW,CAAC;IAChB,IAAG,QAAQ,YAAY,KAAK,EAC5B;QACC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5B,WAAW,GAAG,GAAG,KAAG,CAAC,CAAC;QACtB,IAAG,GAAG,KAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC/B;SAED;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,IAAG,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;KAC3D;IACD,MAAM,IAAI,yBAAyB,CAAC,WAAW;QAC9C,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAE9B,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/singleOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"singleOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/singleOrDefault.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAc,YAAuB;IAC3E,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC9B,QAAQ,QAAQ,CAAC,MAAM,EAAE;gBACxB,KAAK,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC3B;SACD;aACI;YACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI;gBAAE,OAAO,YAAY,CAAC;YACpC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAC;SAC7C;QACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/sum.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 6 | /** 7 | * Returns the sum (+) of a sequence of numbers. 8 | * Returns 0 if sequence is empty. Returns NaN if any entries are NaN. 9 | * @param {Iterable} sequence The sequence of numbers to sum (add+ together). 10 | * @return {number} The sum of the sequence. 11 | */ 12 | export default function sum(sequence) { 13 | if (!sequence) 14 | throw new ArgumentNullException('sequence'); 15 | let sum = 0; 16 | for (const s of sequence) { 17 | if (isNaN(s)) 18 | return NaN; 19 | sum += s; 20 | } 21 | return sum; 22 | } 23 | //# sourceMappingURL=sum.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/sum.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sum.js","sourceRoot":"","sources":["../../src/resolutions/sum.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAE,QAA0B;IACtD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,GAAG,IAAI,CAAC,CAAC;KACT;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/sumAndCount.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sumAndCount.js","sourceRoot":"","sources":["../../src/resolutions/sumAndCount.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,QAA0B;IAC9D,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;QAC7C,GAAG,IAAI,CAAC,CAAC;QACT,KAAK,EAAE,CAAC;KACR;IACD,OAAO;QACN,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,KAAK;KACZ,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/resolutions/toArray.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 6 | /** 7 | * Returns an array (copy) of all the elements in a sequence. 8 | * @param {Iterable} sequence 9 | * @return {T[]} 10 | */ 11 | export default function toArray(sequence) { 12 | if (!sequence) 13 | throw new ArgumentNullException('sequence'); 14 | if (sequence instanceof Array) 15 | return sequence.slice(); 16 | const result = []; 17 | for (const e of sequence) 18 | result.push(e); 19 | return result; 20 | } 21 | //# sourceMappingURL=toArray.js.map -------------------------------------------------------------------------------- /dist-esm/resolutions/toArray.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"toArray.js","sourceRoot":"","sources":["../../src/resolutions/toArray.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,qBAAqB,MAAM,iDAAiD,CAAC;AAEpF;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,QAAqB;IACxD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AACf,CAAC"} -------------------------------------------------------------------------------- /dist-esm/transforms.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import groupBy, { GroupingResult } from './transforms/groupBy'; 6 | import notNull from './transforms/notNull'; 7 | import notUndefined from './transforms/notUndefined'; 8 | import notNullOrUndefined from './transforms/notNullOrUndefined'; 9 | import rows from './transforms/rows'; 10 | import select from './transforms/select'; 11 | import selectMany from './transforms/selectMany'; 12 | import weave from './transforms/weave'; 13 | export { groupBy, GroupingResult, notNull, notNullOrUndefined, notUndefined, rows, select, selectMany, weave }; 14 | //# sourceMappingURL=transforms.js.map -------------------------------------------------------------------------------- /dist-esm/transforms.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,OAAO,EAAE,EAAW,cAAc,EAAC,MAAM,sBAAsB,CAAC;AACvE,OAAO,OAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,YAA4B,MAAM,2BAA2B,CAAC;AACrE,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AACjE,OAAO,IAAiB,MAAM,mBAAmB,CAAC;AAClD,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,KAAK,MAAM,oBAAoB,CAAC;AAEvC,OAAO,EACN,OAAO,EAEP,cAAc,EACd,OAAO,EACP,kBAAkB,EAClB,YAAY,EAGZ,IAAI,EAGJ,MAAM,EACN,UAAU,EACV,KAAK,EACL,CAAC"} -------------------------------------------------------------------------------- /dist-esm/transforms/notNull.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Filters out null values. 7 | * @param {Iterable} sequence 8 | * @return {Iterable>} 9 | */ 10 | export default function notNull(sequence) { 11 | return { 12 | *[Symbol.iterator]() { 13 | for (const e of sequence) 14 | if (e !== null) 15 | yield e; 16 | } 17 | }; 18 | } 19 | //# sourceMappingURL=notNull.js.map -------------------------------------------------------------------------------- /dist-esm/transforms/notNull.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"notNull.js","sourceRoot":"","sources":["../../src/transforms/notNull.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAK,QAAqB;IACxD,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;gBAAE,IAAG,CAAC,KAAG,IAAI;oBAAE,MAAM,CAAe,CAAC;QAC7D,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/transforms/notNullOrUndefined.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Filters out null or undefined values. 7 | * @param {Iterable} sequence 8 | * @return {Iterable>} 9 | */ 10 | export default function notNullOrUndefined(sequence) { 11 | return { 12 | *[Symbol.iterator]() { 13 | for (const e of sequence) 14 | if (e != null) 15 | yield e; 16 | } 17 | }; 18 | } 19 | //# sourceMappingURL=notNullOrUndefined.js.map -------------------------------------------------------------------------------- /dist-esm/transforms/notNullOrUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"notNullOrUndefined.js","sourceRoot":"","sources":["../../src/transforms/notNullOrUndefined.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAK,QAAqB;IACnE,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;gBAAE,IAAG,CAAC,IAAE,IAAI;oBAAE,MAAM,CAAmB,CAAC;QAChE,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/transforms/notUndefined.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Filters out undefined values. 7 | * @param {Iterable} sequence 8 | * @return {Iterable>} 9 | */ 10 | export default function notUndefined(sequence) { 11 | return { 12 | *[Symbol.iterator]() { 13 | for (const e of sequence) 14 | if (e !== undefined) 15 | yield e; 16 | } 17 | }; 18 | } 19 | //# sourceMappingURL=notUndefined.js.map -------------------------------------------------------------------------------- /dist-esm/transforms/notUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"notUndefined.js","sourceRoot":"","sources":["../../src/transforms/notUndefined.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAK,QAAqB;IAC7D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;gBAAE,IAAG,CAAC,KAAG,SAAS;oBAAE,MAAM,CAAoB,CAAC;QACvE,CAAC;KACD,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/transforms/select.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * An iterable filter that transforms (maps / projects) the output from the contained elements. 7 | * @param {SelectorWithIndex} selector 8 | * @return {(sequence: Iterable) => Iterable} 9 | */ 10 | export default function select(selector) { 11 | return function (sequence) { 12 | return { 13 | *[Symbol.iterator]() { 14 | let i = 0; 15 | for (const e of sequence) { 16 | yield selector(e, i++); 17 | } 18 | } 19 | }; 20 | }; 21 | } 22 | //# sourceMappingURL=select.js.map -------------------------------------------------------------------------------- /dist-esm/transforms/select.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/transforms/select.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC7B,QAAuC;IACvC,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvB;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist-esm/transforms/selectMany.js: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import identity from '../identity'; 6 | export default function selectMany(selector = identity) { 7 | return function (sequence) { 8 | return { 9 | *[Symbol.iterator]() { 10 | let i = 0; 11 | for (const outer of sequence) { 12 | for (const inner of selector(outer, i++)) 13 | yield inner; 14 | } 15 | } 16 | }; 17 | }; 18 | } 19 | //# sourceMappingURL=selectMany.js.map -------------------------------------------------------------------------------- /dist-esm/transforms/selectMany.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"selectMany.js","sourceRoot":"","sources":["../../src/transforms/selectMany.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,QAAQ,MAAM,aAAa,CAAC;AAanC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAc,WAAoD,QAAQ;IAC3G,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,KAAK,IAAI,QAAQ,EAC3B;oBACC,KAAI,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;wBAAE,MAAM,KAAK,CAAC;iBACrD;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"} -------------------------------------------------------------------------------- /dist/IterableTransform.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | export interface IterableTransform 7 | { 8 | (e: Iterable): TResult; 9 | } 10 | 11 | export type IterableValueTransform = IterableTransform>; 12 | 13 | export type IterableFilter = IterableValueTransform; 14 | -------------------------------------------------------------------------------- /dist/applyFilters.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import { IterableFilter } from './IterableTransform'; 6 | /** 7 | * Applies a set of filters to a sequence. 8 | * @param {Iterable} sequence The sequence to apply to. 9 | * @param {Iterable>} filters The filters to apply. 10 | * @return {Iterable} The resultant sequence. 11 | */ 12 | export default function applyFilters(sequence: Iterable, filters: Iterable>): Iterable; 13 | -------------------------------------------------------------------------------- /dist/applyFilters.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /** 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Applies a set of filters to a sequence. 9 | * @param {Iterable} sequence The sequence to apply to. 10 | * @param {Iterable>} filters The filters to apply. 11 | * @return {Iterable} The resultant sequence. 12 | */ 13 | function applyFilters(sequence, filters) { 14 | for (const filter of filters) { 15 | sequence = filter(sequence); 16 | } 17 | return sequence; 18 | } 19 | exports.default = applyFilters; 20 | //# sourceMappingURL=applyFilters.js.map -------------------------------------------------------------------------------- /dist/applyFilters.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"applyFilters.js","sourceRoot":"","sources":["../src/applyFilters.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH;;;;;GAKG;AACH,SAAwB,YAAY,CACnC,QAAqB,EACrB,OAAoC;IACpC,KAAI,MAAM,MAAM,IAAI,OAAO,EAC3B;QACC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC5B;IACD,OAAO,QAAQ,CAAC;AACjB,CAAC;AARD,+BAQC"} -------------------------------------------------------------------------------- /dist/filters/append.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | export default function append(...elements: T[]): IterableFilter; 3 | -------------------------------------------------------------------------------- /dist/filters/append.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const concat_1 = tslib_1.__importDefault(require("../iterables/concat")); 9 | const same_1 = tslib_1.__importDefault(require("./same")); 10 | /* 11 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 12 | */ 13 | function append(...elements) { 14 | if (elements.length === 0) 15 | return same_1.default; 16 | return function (sequence) { 17 | return (0, concat_1.default)(sequence, elements); 18 | }; 19 | } 20 | exports.default = append; 21 | //# sourceMappingURL=append.js.map -------------------------------------------------------------------------------- /dist/filters/append.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"append.js","sourceRoot":"","sources":["../../src/filters/append.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yEAAyC;AAEzC,0DAA0B;AAE1B;;GAEG;AACH,SAAwB,MAAM,CAAK,GAAG,QAAa;IAClD,IAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAI,CAAC;IACtC,OAAO,UAAS,QAAqB;QACpC,OAAO,IAAA,gBAAM,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACH,CAAC;AALD,yBAKC"} -------------------------------------------------------------------------------- /dist/filters/ascending.d.ts: -------------------------------------------------------------------------------- 1 | import { Primitive } from '@tsdotnet/common-interfaces'; 2 | /** 3 | * Default ascending sort delegate for primitive only iterables. 4 | * @param {Iterable} sequence 5 | * @return {Iterable} 6 | */ 7 | export default function ascending(sequence: Iterable): Iterable; 8 | -------------------------------------------------------------------------------- /dist/filters/ascending.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"ascending.js","sourceRoot":"","sources":["../../src/filters/ascending.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yGAAyE;AACzE,6EAA6C;AAE7C;;;;GAIG;AACH,SAAwB,SAAS,CAAuB,QAAqB;IAC5E,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,2BAAiB,CAAC;gBAAE,MAAM,CAAC,CAAC;QACnE,CAAC;KACD,CAAC;AACH,CAAC;AAPD,4BAOC"} -------------------------------------------------------------------------------- /dist/filters/buffer.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that (once started) pre-fetches entries from the source up to the size. 4 | * @param {number} size 5 | * @return {IterableFilter} 6 | */ 7 | export default function buffer(size: number): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/buffer.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/filters/buffer.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oEAAoC;AAEpC,0DAA0B;AAE1B;;;;GAIG;AACH,SAAwB,MAAM,CAAK,IAAY;IAC9C,IAAG,IAAI,IAAE,CAAC;QAAE,OAAO,cAAI,CAAC;IACxB,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,MAAM,CAAC,GAAG,IAAI,eAAK,EAAK,CAAC;gBACzB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACb,IAAG,CAAC,CAAC,KAAK,GAAC,IAAI;wBAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;iBACvC;gBACD,OAAM,CAAC,CAAC,CAAC,OAAO;oBAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAhBD,yBAgBC"} -------------------------------------------------------------------------------- /dist/filters/defaultIfEmpty.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * A iterable filter that returns the elements of the specified sequence or the specified value in a collection if the sequence is empty. 4 | * @param {T} defaultValue 5 | * @return {IterableFilter} 6 | */ 7 | export default function defaultIfEmpty(defaultValue: T): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/defaultIfEmpty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"defaultIfEmpty.js","sourceRoot":"","sources":["../../src/filters/defaultIfEmpty.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH;;;;GAIG;AACH,SAAwB,cAAc,CAAK,YAAe;IACzD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,WAAW,GAAG,IAAI,CAAC;oBACnB,MAAM,CAAC,CAAC;iBACR;gBACD,IAAG,CAAC,WAAW;oBAAE,MAAM,YAAY,CAAC;YACrC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAfD,iCAeC"} -------------------------------------------------------------------------------- /dist/filters/descending.d.ts: -------------------------------------------------------------------------------- 1 | import { Primitive } from '@tsdotnet/common-interfaces'; 2 | /** 3 | * Default descending sort delegate for primitive only iterables. 4 | * @param {Iterable} sequence 5 | * @return {Iterable} 6 | */ 7 | export default function descending(sequence: Iterable): Iterable; 8 | -------------------------------------------------------------------------------- /dist/filters/descending.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"descending.js","sourceRoot":"","sources":["../../src/filters/descending.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yGAAyE;AACzE,6EAA6C;AAE7C;;;;GAIG;AACH,SAAwB,UAAU,CAAuB,QAAqB;IAC7E,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,2BAAiB,CAAC,QAAQ,CAAC;gBAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;KACD,CAAC;AACH,CAAC;AAPD,6BAOC"} -------------------------------------------------------------------------------- /dist/filters/distinct.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * An iterable filter that returns distinct elements from a sequence. 3 | * @param {Iterable} sequence 4 | * @return {Iterable} 5 | */ 6 | export default function distinct(sequence: Iterable): Iterable; 7 | -------------------------------------------------------------------------------- /dist/filters/distinct.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * An iterable filter that returns distinct elements from a sequence. 9 | * @param {Iterable} sequence 10 | * @return {Iterable} 11 | */ 12 | function distinct(sequence) { 13 | return { 14 | *[Symbol.iterator]() { 15 | const s = new Set(); 16 | for (const e of sequence) { 17 | if (s.has(e)) 18 | continue; 19 | s.add(e); 20 | yield e; 21 | } 22 | s.clear(); 23 | } 24 | }; 25 | } 26 | exports.default = distinct; 27 | //# sourceMappingURL=distinct.js.map -------------------------------------------------------------------------------- /dist/filters/distinct.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"distinct.js","sourceRoot":"","sources":["../../src/filters/distinct.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH;;;;GAIG;AACH,SAAwB,QAAQ,CAAK,QAAqB;IACzD,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,MAAM,CAAC,GAAG,IAAI,GAAG,EAAK,CAAC;YACvB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;gBACC,IAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACtB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACT,MAAM,CAAC,CAAC;aACR;YACD,CAAC,CAAC,KAAK,EAAE,CAAC;QACX,CAAC;KACD,CAAC;AACH,CAAC;AAdD,2BAcC"} -------------------------------------------------------------------------------- /dist/filters/exclude.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that returns all elements except for any in the exclusion sequence. 4 | * @param {Iterable} exclusions 5 | * @return {IterableFilter} 6 | */ 7 | export default function exclude(exclusions: Iterable): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/memoize.d.ts: -------------------------------------------------------------------------------- 1 | import memoize from '@tsdotnet/memoize'; 2 | export { memoize }; 3 | -------------------------------------------------------------------------------- /dist/filters/memoize.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | exports.memoize = void 0; 8 | const tslib_1 = require("tslib"); 9 | const memoize_1 = tslib_1.__importDefault(require("@tsdotnet/memoize")); 10 | exports.memoize = memoize_1.default; 11 | //# sourceMappingURL=memoize.js.map -------------------------------------------------------------------------------- /dist/filters/memoize.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"memoize.js","sourceRoot":"","sources":["../../src/filters/memoize.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,wEAAwC;AAGhC,kBAHD,iBAAO,CAGC"} -------------------------------------------------------------------------------- /dist/filters/ofType.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"ofType.js","sourceRoot":"","sources":["../../src/filters/ofType.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,4DAA4B;AAsC5B;;;;;GAKG;AACH,SAAwB,MAAM,CAAS,IAAa;IACnD,IAAI,QAAgB,CAAC;IACrB,QAAO,IAAI,EACX;QACC,KAAK,MAAM;YACV,QAAQ,GAAG,QAAQ,CAAC;YACpB,MAAM;QACP,KAAK,MAAM;YACV,QAAQ,GAAG,QAAQ,CAAC;YACpB,MAAM;QACP,KAAK,OAAO;YACX,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACP,KAAK,QAAQ;YACZ,QAAQ,GAAG,UAAU,CAAC;YACtB,MAAM;QACP;YACC,OAAO,IAAA,eAAK,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,YAAa,IAAY,CAAC,CAAC;KAC/C;IACD,OAAO,IAAA,eAAK,EAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAG,QAAQ,CAAC,CAAC;AACxC,CAAC;AApBD,yBAoBC"} -------------------------------------------------------------------------------- /dist/filters/onComplete.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that invokes the provided action if there are no more entries to iterate. 4 | * @param {() => void} action 5 | * @return {IterableFilter} 6 | */ 7 | export default function onComplete(action: () => void): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/onComplete.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"onComplete.js","sourceRoot":"","sources":["../../src/filters/onComplete.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAGpF;;;;GAIG;AACH,SAAwB,UAAU,CAAK,MAAkB;IACxD,IAAG,CAAC,MAAM;QAAE,MAAM,IAAI,+BAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;oBAAE,MAAM,CAAC,CAAC;gBACjC,MAAM,EAAE,CAAC;YACV,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAXD,6BAWC"} -------------------------------------------------------------------------------- /dist/filters/onError.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that invokes the provided handler if there was an error while iterating. 4 | * Any error while iterating assumes no more results and the iteration will be complete after the error. 5 | * The handler can decide if it wants to rethrow the error or not. 6 | * @param {(ex: any, index: number) => void} handler 7 | * @return {IterableFilter} 8 | */ 9 | export default function onError(handler: (ex: any, index: number) => void): IterableFilter; 10 | -------------------------------------------------------------------------------- /dist/filters/onError.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"onError.js","sourceRoot":"","sources":["../../src/filters/onError.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAGpF;;;;;;GAMG;AACH,SAAwB,OAAO,CAC9B,OAAyC;IAEzC,IAAG,CAAC,OAAO;QAAE,MAAM,IAAI,+BAAqB,CAAC,QAAQ,CAAC,CAAC;IACvD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,OAAM,IAAI,EACV;oBACC,IACA;wBACC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAC7B,IAAG,IAAI,CAAC,IAAI;4BAAE,MAAM;wBACpB,MAAM,IAAI,CAAC,KAAK,CAAC;qBACjB;oBACD,OAAM,EAAE,EACR;wBACC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;wBACf,MAAM;qBACN;oBACD,CAAC,EAAE,CAAC;iBACJ;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AA5BD,0BA4BC"} -------------------------------------------------------------------------------- /dist/filters/onStart.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that invokes the provided action before iterating results. 4 | * @param {() => void} action 5 | * @return {IterableFilter} 6 | */ 7 | export default function onStart(action: () => void): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/onStart.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const tslib_1 = require("tslib"); 4 | const ArgumentNullException_1 = tslib_1.__importDefault(require("@tsdotnet/exceptions/dist/ArgumentNullException")); 5 | /** 6 | * An iterable filter that invokes the provided action before iterating results. 7 | * @param {() => void} action 8 | * @return {IterableFilter} 9 | */ 10 | function onStart(action) { 11 | if (!action) 12 | throw new ArgumentNullException_1.default('action'); 13 | return function (sequence) { 14 | return { 15 | *[Symbol.iterator]() { 16 | action(); 17 | for (const e of sequence) 18 | yield e; 19 | } 20 | }; 21 | }; 22 | } 23 | exports.default = onStart; 24 | //# sourceMappingURL=onStart.js.map -------------------------------------------------------------------------------- /dist/filters/onStart.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"onStart.js","sourceRoot":"","sources":["../../src/filters/onStart.ts"],"names":[],"mappings":";;;AACA,oHAAoF;AAGpF;;;;GAIG;AACH,SAAwB,OAAO,CAAK,MAAkB;IACrD,IAAG,CAAC,MAAM;QAAE,MAAM,IAAI,+BAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,MAAM,EAAE,CAAC;gBACT,KAAI,MAAM,CAAC,IAAI,QAAQ;oBAAE,MAAM,CAAC,CAAC;YAClC,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAXD,0BAWC"} -------------------------------------------------------------------------------- /dist/filters/orderBy.d.ts: -------------------------------------------------------------------------------- 1 | import { Primitive, Selector } from '@tsdotnet/common-interfaces'; 2 | import Order from '@tsdotnet/compare/dist/Order'; 3 | import { IterableFilter } from '../IterableTransform'; 4 | /** 5 | * An iterable filter that orders elements by a primitive value provided by the key selector. 6 | * @param {Selector} keySelector 7 | * @param {Order} order 8 | * @return {IterableFilter} 9 | */ 10 | export default function orderBy(keySelector: Selector, order?: Order): IterableFilter; 11 | -------------------------------------------------------------------------------- /dist/filters/orderBy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"orderBy.js","sourceRoot":"","sources":["../../src/filters/orderBy.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,yGAAyE;AAGzE,6EAA6C;AAE7C;;;;;GAKG;AACH,SAAwB,OAAO,CAC9B,WAA8B,EAAE,+BAA8B;IAC9D,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,KAAI,MAAM,CAAC,IACV,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC,IAAI,CACrB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,2BAAiB,EAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,GAAC,KAAK,CAAC,EACpE;oBACC,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAfD,0BAeC"} -------------------------------------------------------------------------------- /dist/filters/orderUsing.d.ts: -------------------------------------------------------------------------------- 1 | import { Comparison } from '@tsdotnet/compare/dist/Comparable'; 2 | import Order from '@tsdotnet/compare/dist/Order'; 3 | import { IterableFilter } from '../IterableTransform'; 4 | /** 5 | * An iterable filter that orders elements by use of a comparison function. 6 | * @param {Comparison} comparison The function to decide if elements are greater, lesser or equal. 7 | * @param {Order} order Default is ascending. 8 | * @return {IterableFilter} 9 | */ 10 | export default function orderUsing(comparison: Comparison, order?: Order): IterableFilter; 11 | -------------------------------------------------------------------------------- /dist/filters/orderUsing.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"orderUsing.js","sourceRoot":"","sources":["../../src/filters/orderUsing.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,oHAAoF;AAEpF,6EAA6C;AAE7C;;;;;GAKG;AACH,SAAwB,UAAU,CACjC,UAAyB,EACzB,+BAA8B;IAC9B,IAAG,CAAC,UAAU;QAAE,MAAM,IAAI,+BAAqB,CAAC,YAAY,CAAC,CAAC;IAC9D,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,KAAI,MAAM,CAAC,IACV,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,6BAAkB;oBAC7C,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAU,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC;oBAC1C,CAAC,CAAC,UAAU,CAAC,EACf;oBACC,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAlBD,6BAkBC"} -------------------------------------------------------------------------------- /dist/filters/prepend.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 4 | * @param {T} elements 5 | * @return {IterableFilter} 6 | */ 7 | export default function prepend(...elements: T[]): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/prepend.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const concat_1 = tslib_1.__importDefault(require("../iterables/concat")); 9 | const same_1 = tslib_1.__importDefault(require("./same")); 10 | /** 11 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 12 | * @param {T} elements 13 | * @return {IterableFilter} 14 | */ 15 | function prepend(...elements) { 16 | if (elements.length === 0) 17 | return same_1.default; 18 | return function (sequence) { 19 | return (0, concat_1.default)(elements, sequence); 20 | }; 21 | } 22 | exports.default = prepend; 23 | //# sourceMappingURL=prepend.js.map -------------------------------------------------------------------------------- /dist/filters/prepend.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"prepend.js","sourceRoot":"","sources":["../../src/filters/prepend.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yEAAyC;AAEzC,0DAA0B;AAE1B;;;;GAIG;AACH,SAAwB,OAAO,CAAK,GAAG,QAAa;IACnD,IAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAI,CAAC;IACtC,OAAO,UAAS,QAAqB;QACpC,OAAO,IAAA,gBAAM,EAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC,CAAC;AACH,CAAC;AALD,0BAKC"} -------------------------------------------------------------------------------- /dist/filters/reverse.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns an array (copy) of all the elements of a sequence in reverse order. 3 | * @param {Iterable} sequence 4 | * @return {Iterable} 5 | */ 6 | export default function reverse(sequence: Iterable): Iterable; 7 | -------------------------------------------------------------------------------- /dist/filters/reverse.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"reverse.js","sourceRoot":"","sources":["../../src/filters/reverse.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AACpF,6EAA6C;AAE7C;;;;GAIG;AACH,SAAwB,OAAO,CAAK,QAAqB;IACxD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,IAAG,QAAQ,YAAY,KAAK,EAC5B;gBACC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;gBAC5B,KAAI,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,IAAE,CAAC,EAAE,CAAC,EAAE,EAC9B;oBACC,IAAG,GAAG,KAAG,QAAQ,CAAC,MAAM;wBAAE,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBAChF,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAClB;gBACD,OAAO;aACP;YAED,KAAI,MAAM,CAAC,IAAI,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,EAC1C;gBACC,MAAM,CAAC,CAAC;aACR;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAtBD,0BAsBC"} -------------------------------------------------------------------------------- /dist/filters/same.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the sequence provided. 3 | * @param {Iterable} sequence 4 | * @return {Iterable} 5 | */ 6 | export default function same(sequence: Iterable): Iterable; 7 | -------------------------------------------------------------------------------- /dist/filters/same.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Returns the sequence provided. 9 | * @param {Iterable} sequence 10 | * @return {Iterable} 11 | */ 12 | function same(sequence) { 13 | return sequence; 14 | } 15 | exports.default = same; 16 | //# sourceMappingURL=same.js.map -------------------------------------------------------------------------------- /dist/filters/same.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"same.js","sourceRoot":"","sources":["../../src/filters/same.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH;;;;GAIG;AACH,SAAwB,IAAI,CAAK,QAAqB;IACrD,OAAO,QAAQ,CAAC;AACjB,CAAC;AAFD,uBAEC"} -------------------------------------------------------------------------------- /dist/filters/skip.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 4 | * @param {number} count 5 | * @return {IterableFilter} 6 | */ 7 | export default function skip(count: number): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/skip.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"skip.js","sourceRoot":"","sources":["../../src/filters/skip.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uEAAuC;AAEvC,0DAA0B;AAE1B;;;;GAIG;AACH,SAAwB,IAAI,CAAK,KAAa;IAC7C,IAAG,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAE,CAAC;QAAE,OAAO,cAAI,CAAC;IACzC,IAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,eAAK,CAAC;IAClC,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAG,QAAQ,YAAY,KAAK,EAC5B;oBACC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC5B,KAAI,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EAC7B;wBACC,IAAG,GAAG,KAAG,QAAQ,CAAC,MAAM;4BAAE,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;wBAChF,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;qBAClB;oBACD,OAAO;iBACP;gBAED,IAAI,MAAM,GAAG,KAAK,CAAC;gBACnB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,CAAC,GAAC,MAAM,EAAE;wBAAE,SAAS;oBACxB,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AA3BD,uBA2BC"} -------------------------------------------------------------------------------- /dist/filters/skipLast.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that returns everything from the sequence except the last count of items. 4 | * @param {number} count 5 | * @return {IterableFilter} 6 | */ 7 | export default function skipLast(count: number): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/skipUntil.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableFilter } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that bypasses elements in sequence until the predicate condition returns is true. 5 | * Inverse of skipWhile. 6 | * @param {PredicateWithIndex} predicate 7 | * @return {IterableFilter} 8 | */ 9 | export default function skipUntil(predicate: PredicateWithIndex): IterableFilter; 10 | -------------------------------------------------------------------------------- /dist/filters/skipUntil.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const skipWhile_1 = tslib_1.__importDefault(require("./skipWhile")); 9 | /** 10 | * An iterable filter that bypasses elements in sequence until the predicate condition returns is true. 11 | * Inverse of skipWhile. 12 | * @param {PredicateWithIndex} predicate 13 | * @return {IterableFilter} 14 | */ 15 | function skipUntil(predicate) { 16 | return (0, skipWhile_1.default)((e, i) => !predicate(e, i)); 17 | } 18 | exports.default = skipUntil; 19 | //# sourceMappingURL=skipUntil.js.map -------------------------------------------------------------------------------- /dist/filters/skipUntil.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"skipUntil.js","sourceRoot":"","sources":["../../src/filters/skipUntil.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,oEAAoC;AAEpC;;;;;GAKG;AACH,SAAwB,SAAS,CAAK,SAAgC;IACrE,OAAO,IAAA,mBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAFD,4BAEC"} -------------------------------------------------------------------------------- /dist/filters/skipWhile.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableFilter } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that bypasses elements in sequence while the predicate condition is true and if false will iterate the rest. 5 | * Inverse of skipUntil. 6 | * @param {PredicateWithIndex} predicate 7 | * @return {IterableFilter} 8 | */ 9 | export default function skipWhile(predicate: PredicateWithIndex): IterableFilter; 10 | -------------------------------------------------------------------------------- /dist/filters/skipWhile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"skipWhile.js","sourceRoot":"","sources":["../../src/filters/skipWhile.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH;;;;;GAKG;AACH,SAAwB,SAAS,CAAK,SAAgC;IACrE,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;gBAC3B,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAC9B;wBACC,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,CAAC,CAAC;qBACR;oBACD,CAAC,EAAE,CAAC;iBACJ;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAlBD,4BAkBC"} -------------------------------------------------------------------------------- /dist/filters/take.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that returns a specified number of contiguous elements from the start of a sequence. 4 | * @param {number} count 5 | * @return {IterableFilter} 6 | */ 7 | export default function take(count: number): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/takeLast.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableFilter } from '../IterableTransform'; 2 | /** 3 | * An iterable filter that returns a specified number of contiguous elements from the start of a sequence. 4 | * @param {number} count 5 | * @return {IterableFilter} 6 | */ 7 | export default function takeLast(count: number): IterableFilter; 8 | -------------------------------------------------------------------------------- /dist/filters/takeUntil.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableFilter } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that will return results until the predicate condition is true. 5 | * @param {PredicateWithIndex} predicate 6 | * @return {IterableFilter} 7 | */ 8 | export default function takeUntil(predicate: PredicateWithIndex): IterableFilter; 9 | -------------------------------------------------------------------------------- /dist/filters/takeUntil.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const takeWhile_1 = tslib_1.__importDefault(require("./takeWhile")); 9 | /** 10 | * An iterable filter that will return results until the predicate condition is true. 11 | * @param {PredicateWithIndex} predicate 12 | * @return {IterableFilter} 13 | */ 14 | function takeUntil(predicate) { 15 | return (0, takeWhile_1.default)((e, i) => !predicate(e, i)); 16 | } 17 | exports.default = takeUntil; 18 | //# sourceMappingURL=takeUntil.js.map -------------------------------------------------------------------------------- /dist/filters/takeUntil.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"takeUntil.js","sourceRoot":"","sources":["../../src/filters/takeUntil.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,oEAAoC;AAEpC;;;;GAIG;AACH,SAAwB,SAAS,CAAK,SAAgC;IACrE,OAAO,IAAA,mBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAFD,4BAEC"} -------------------------------------------------------------------------------- /dist/filters/takeWhile.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableFilter } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that will return results while the predicate condition is true and stops when false. 5 | * @param {PredicateWithIndex} predicate 6 | * @return {IterableFilter} 7 | */ 8 | export default function takeWhile(predicate: PredicateWithIndex): IterableFilter; 9 | -------------------------------------------------------------------------------- /dist/filters/takeWhile.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * An iterable filter that will return results while the predicate condition is true and stops when false. 9 | * @param {PredicateWithIndex} predicate 10 | * @return {IterableFilter} 11 | */ 12 | function takeWhile(predicate) { 13 | return function (sequence) { 14 | return { 15 | *[Symbol.iterator]() { 16 | let i = 0; 17 | for (const e of sequence) { 18 | if (!predicate(e, i++)) 19 | break; 20 | yield e; 21 | } 22 | } 23 | }; 24 | }; 25 | } 26 | exports.default = takeWhile; 27 | //# sourceMappingURL=takeWhile.js.map -------------------------------------------------------------------------------- /dist/filters/takeWhile.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"takeWhile.js","sourceRoot":"","sources":["../../src/filters/takeWhile.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH;;;;GAIG;AACH,SAAwB,SAAS,CAAK,SAAgC;IACrE,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAAE,MAAM;oBAC7B,MAAM,CAAC,CAAC;iBACR;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAdD,4BAcC"} -------------------------------------------------------------------------------- /dist/filters/where.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableFilter } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that only returns elements that match the provided predicate. 5 | * @param {PredicateWithIndex} predicate 6 | * @return {IterableFilter} 7 | */ 8 | export default function where(predicate: PredicateWithIndex): IterableFilter; 9 | -------------------------------------------------------------------------------- /dist/filters/where.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * An iterable filter that only returns elements that match the provided predicate. 9 | * @param {PredicateWithIndex} predicate 10 | * @return {IterableFilter} 11 | */ 12 | function where(predicate) { 13 | return function (sequence) { 14 | return { 15 | *[Symbol.iterator]() { 16 | let i = 0; 17 | for (const e of sequence) { 18 | if (predicate(e, i++)) 19 | yield e; 20 | } 21 | } 22 | }; 23 | }; 24 | } 25 | exports.default = where; 26 | //# sourceMappingURL=where.js.map -------------------------------------------------------------------------------- /dist/filters/where.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"where.js","sourceRoot":"","sources":["../../src/filters/where.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH;;;;GAIG;AACH,SAAwB,KAAK,CAAK,SAAgC;IACjE,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,IAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBAAE,MAAM,CAAC,CAAC;iBAC9B;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAbD,wBAaC"} -------------------------------------------------------------------------------- /dist/identity.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | export default function identity(e: unknown): any; 6 | -------------------------------------------------------------------------------- /dist/identity.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /** 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | function identity(e) { return e; } 8 | exports.default = identity; 9 | //# sourceMappingURL=identity.js.map -------------------------------------------------------------------------------- /dist/identity.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,SAAwB,QAAQ,CAAE,CAAU,IAAS,OAAO,CAAC,CAAC,CAAC,CAAC;AAAhE,2BAAgE"} -------------------------------------------------------------------------------- /dist/index.d.ts: -------------------------------------------------------------------------------- 1 | /**! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | * @ignore 5 | */ 6 | import * as filters from './filters'; 7 | import * as iterables from './iterables'; 8 | import linq from './linq'; 9 | import linqExtended from './linqExtended'; 10 | import * as resolutions from './resolutions'; 11 | import * as transforms from './transforms'; 12 | export { IterableTransform, IterableValueTransform, IterableFilter, } from './IterableTransform'; 13 | export { filters, iterables, resolutions, transforms, linqExtended }; 14 | export default linq; 15 | -------------------------------------------------------------------------------- /dist/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,2DAAqC;AAcpC,0BAAO;AAbR,+DAAyC;AAcxC,8BAAS;AAbV,0DAA0B;AAC1B,0EAA0C;AAezC,uBAfM,sBAAY,CAeN;AAdb,mEAA6C;AAY5C,kCAAW;AAXZ,iEAA2C;AAY1C,gCAAU;AAIX,kBAAe,cAAI,CAAC"} -------------------------------------------------------------------------------- /dist/iterables.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import concat from './iterables/concat'; 6 | import empty from './iterables/empty'; 7 | import iterateIndexes from './iterables/iterateIndexes'; 8 | import merge from './iterables/merge'; 9 | import range from './iterables/range'; 10 | import repeat from './iterables/repeat'; 11 | import repeatSequence from './iterables/repeatSequence'; 12 | import unfold from './iterables/unfold'; 13 | import union from './iterables/union'; 14 | import zip from './iterables/zip'; 15 | export { empty, concat, iterateIndexes, merge, range, repeat, repeatSequence, unfold, union, zip }; 16 | -------------------------------------------------------------------------------- /dist/iterables.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"iterables.js","sourceRoot":"","sources":["../src/iterables.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,wEAAwC;AAavC,iBAbM,gBAAM,CAaN;AAZP,sEAAsC;AAWrC,gBAXM,eAAK,CAWN;AAVN,wFAAwD;AAYvD,yBAZM,wBAAc,CAYN;AAXf,sEAAsC;AAYrC,gBAZM,eAAK,CAYN;AAXN,sEAAsC;AAYrC,gBAZM,eAAK,CAYN;AAXN,wEAAwC;AAYvC,iBAZM,gBAAM,CAYN;AAXP,wFAAwD;AAYvD,yBAZM,wBAAc,CAYN;AAXf,wEAAwC;AAYvC,iBAZM,gBAAM,CAYN;AAXP,sEAAsC;AAYrC,gBAZM,eAAK,CAYN;AAXN,kEAAkC;AAYjC,cAZM,aAAG,CAYN"} -------------------------------------------------------------------------------- /dist/iterables/concat.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Concatenates the provided sequences. 3 | * @param {Iterable} sequences 4 | * @return {Iterable} 5 | */ 6 | export default function concat(...sequences: Iterable[]): Iterable; 7 | -------------------------------------------------------------------------------- /dist/iterables/concat.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const merge_1 = tslib_1.__importDefault(require("./merge")); 9 | /** 10 | * Concatenates the provided sequences. 11 | * @param {Iterable} sequences 12 | * @return {Iterable} 13 | */ 14 | function concat(...sequences) { 15 | return (0, merge_1.default)(sequences); 16 | } 17 | exports.default = concat; 18 | //# sourceMappingURL=concat.js.map -------------------------------------------------------------------------------- /dist/iterables/concat.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"concat.js","sourceRoot":"","sources":["../../src/iterables/concat.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,4DAA4B;AAE5B;;;;GAIG;AACH,SAAwB,MAAM,CAAK,GAAG,SAAwB;IAC7D,OAAO,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC;AACzB,CAAC;AAFD,yBAEC"} -------------------------------------------------------------------------------- /dist/iterables/empty.d.ts: -------------------------------------------------------------------------------- 1 | export declare const doneResult: IteratorReturnResult; 2 | export declare const emptyIterator: Iterator; 3 | export declare const emptyIterable: Iterable; 4 | export default function (): Iterable; 5 | -------------------------------------------------------------------------------- /dist/iterables/empty.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | exports.emptyIterable = exports.emptyIterator = exports.doneResult = void 0; 8 | exports.doneResult = Object.freeze({ 9 | done: true, 10 | value: undefined 11 | }); 12 | exports.emptyIterator = Object.freeze({ next() { return exports.doneResult; } }); 13 | exports.emptyIterable = Object.freeze({ [Symbol.iterator]() { return exports.emptyIterator; } }); 14 | function default_1() { 15 | return exports.emptyIterable; 16 | } 17 | exports.default = default_1; 18 | //# sourceMappingURL=empty.js.map -------------------------------------------------------------------------------- /dist/iterables/empty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"empty.js","sourceRoot":"","sources":["../../src/iterables/empty.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEU,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,SAAS;CAChB,CAA8B,CAAC;AACnB,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,KAAM,OAAO,kBAAU,CAAC,CAAC,CAAC,EAAC,CAAkB,CAAC;AACjF,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,EAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAqB,OAAO,qBAAa,CAAC,CAAC,CAAC,EAAC,CAAkB,CAAC;AAC7H;IACC,OAAO,qBAAa,CAAC;AACtB,CAAC;AAFD,4BAEC"} -------------------------------------------------------------------------------- /dist/iterables/iterateIndexes.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns an iterator that iterates the provided ArrayLike using length and index. 3 | * @param {ArrayLike} source 4 | * @return {Iterable} 5 | */ 6 | export default function iterateIndexes(source: ArrayLike): Iterable; 7 | -------------------------------------------------------------------------------- /dist/iterables/iterateIndexes.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"iterateIndexes.js","sourceRoot":"","sources":["../../src/iterables/iterateIndexes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;GAIG;AACH,SAAwB,cAAc,CAAK,MAAoB;IAC9D,IAAG,CAAC,MAAM;QAAE,MAAM,IAAI,+BAAqB,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,MAAM,GAAG,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC;YAC3B,IAAG,GAAG,EACN;gBACC,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,GAAG,EAAE,CAAC,EAAE,EACzB;oBACC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;iBAChB;aACD;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAfD,iCAeC"} -------------------------------------------------------------------------------- /dist/iterables/merge.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Concatenates the sequences. 3 | * @param {Iterable>} sequences 4 | * @return {Iterable} 5 | */ 6 | export default function merge(sequences: Iterable>): Iterable; 7 | -------------------------------------------------------------------------------- /dist/iterables/merge.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../src/iterables/merge.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;GAIG;AACH,SAAwB,KAAK,CAAK,SAAgC;IACjE,IAAG,CAAC,SAAS;QAAE,MAAM,IAAI,+BAAqB,CAAC,WAAW,CAAC,CAAC;IAC5D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,SAAS,EACxB;gBACC,KAAI,MAAM,CAAC,IAAI,CAAC,EAChB;oBACC,MAAM,CAAC,CAAC;iBACR;aACD;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAdD,wBAcC"} -------------------------------------------------------------------------------- /dist/iterables/range.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Generates a sequence of numbers within a specified range. 3 | * @param {number} start 4 | * @param {number} maxInclusive 5 | * @param {number} step 6 | * @returns {Iterable} 7 | */ 8 | export default function range(start?: number, maxInclusive?: number, step?: number): Iterable; 9 | -------------------------------------------------------------------------------- /dist/iterables/range.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Generates a sequence of numbers within a specified range. 9 | * @param {number} start 10 | * @param {number} maxInclusive 11 | * @param {number} step 12 | * @returns {Iterable} 13 | */ 14 | function range(start = 0, maxInclusive = Infinity, step = 1) { 15 | return { 16 | *[Symbol.iterator]() { 17 | for (let i = start; i <= maxInclusive; i += step) { 18 | yield i; 19 | } 20 | } 21 | }; 22 | } 23 | exports.default = range; 24 | //# sourceMappingURL=range.js.map -------------------------------------------------------------------------------- /dist/iterables/range.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/iterables/range.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH;;;;;;GAMG;AACH,SAAwB,KAAK,CAC5B,KAAK,GAAU,CAAC,EAChB,YAAY,GAAG,QAAQ,EACvB,IAAI,GAAW,CAAC;IAChB,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAE,YAAY,EAAE,CAAC,IAAI,IAAI,EAC7C;gBACC,MAAM,CAAC,CAAC;aACR;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAbD,wBAaC"} -------------------------------------------------------------------------------- /dist/iterables/repeat.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Generates a sequence that contains one repeated value. 3 | * @param {T} entry 4 | * @param {number} count The number of times to repeat. 5 | * @return {Iterable} 6 | */ 7 | export default function repeat(entry: T, count: number): Iterable; 8 | -------------------------------------------------------------------------------- /dist/iterables/repeat.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Generates a sequence that contains one repeated value. 9 | * @param {T} entry 10 | * @param {number} count The number of times to repeat. 11 | * @return {Iterable} 12 | */ 13 | function repeat(entry, count) { 14 | return { 15 | *[Symbol.iterator]() { 16 | for (let i = 0; i < count; i++) 17 | yield entry; 18 | } 19 | }; 20 | } 21 | exports.default = repeat; 22 | //# sourceMappingURL=repeat.js.map -------------------------------------------------------------------------------- /dist/iterables/repeat.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"repeat.js","sourceRoot":"","sources":["../../src/iterables/repeat.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH;;;;;GAKG;AACH,SAAwB,MAAM,CAC7B,KAAQ,EACR,KAAa;IACb,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,KAAK,EAAE,CAAC,EAAE;gBAAE,MAAM,KAAK,CAAC;QAC1C,CAAC;KACD,CAAC;AACH,CAAC;AATD,yBASC"} -------------------------------------------------------------------------------- /dist/iterables/repeatSequence.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Generates a sequence that contains each value in the provided sequence and repeats. 3 | * @param {Iterable} sequence The sequence to repeat. 4 | * @param {number} count The number of times to repeat the sequence. 5 | * @return {Iterable} 6 | */ 7 | export default function repeatSequence(sequence: Iterable, count: number): Iterable; 8 | -------------------------------------------------------------------------------- /dist/iterables/repeatSequence.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"repeatSequence.js","sourceRoot":"","sources":["../../src/iterables/repeatSequence.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;;GAKG;AACH,SAAwB,cAAc,CACrC,QAAqB,EAAE,KAAa;IACpC,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,KAAK,EAAE,CAAC,EAAE,EAC3B;gBACC,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,MAAM,CAAC,CAAC;iBACR;aACD;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAfD,iCAeC"} -------------------------------------------------------------------------------- /dist/iterables/unfold.d.ts: -------------------------------------------------------------------------------- 1 | import { SelectorWithIndex } from '@tsdotnet/common-interfaces'; 2 | /** 3 | * A generator function for creating entries based upon the previous entry. 4 | * @param {T} seed The first value to be fed the valueFactory. 5 | * @param {SelectorWithIndex} valueFactory 6 | * @param {boolean} skipSeed If false (default), the seed value is the first value returned. Otherwise it is skipped. 7 | * @return {Iterable} 8 | */ 9 | export default function unfold(seed: T, valueFactory: SelectorWithIndex, skipSeed?: boolean): Iterable; 10 | -------------------------------------------------------------------------------- /dist/iterables/unfold.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"unfold.js","sourceRoot":"","sources":["../../src/iterables/unfold.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,oHAAoF;AAEpF;;;;;;GAMG;AACH,SAAwB,MAAM,CAC7B,IAAO,EACP,YAAqC,EACrC,QAAQ,GAAG,KAAK;IAEhB,IAAG,CAAC,YAAY;QAAE,MAAM,IAAI,+BAAqB,CAAC,cAAc,CAAC,CAAC;IAClE,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,IAAG,CAAC,QAAQ;gBAAE,MAAM,IAAI,CAAC;YACzB,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,OAAM,IAAI,EACV;gBACC,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;gBACjC,MAAM,KAAK,CAAC;aACZ;QACF,CAAC;KACD,CAAC;AACH,CAAC;AAlBD,yBAkBC"} -------------------------------------------------------------------------------- /dist/iterables/union.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Produces the set union of all sequences provided.. 3 | * @param {Iterable} sequences 4 | * @return {Iterable} 5 | */ 6 | export default function union(...sequences: Iterable[]): Iterable; 7 | -------------------------------------------------------------------------------- /dist/iterables/union.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const distinct_1 = tslib_1.__importDefault(require("../filters/distinct")); 9 | const merge_1 = tslib_1.__importDefault(require("./merge")); 10 | /** 11 | * Produces the set union of all sequences provided.. 12 | * @param {Iterable} sequences 13 | * @return {Iterable} 14 | */ 15 | function union(...sequences) { 16 | return (0, distinct_1.default)((0, merge_1.default)(sequences)); 17 | } 18 | exports.default = union; 19 | //# sourceMappingURL=union.js.map -------------------------------------------------------------------------------- /dist/iterables/union.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"union.js","sourceRoot":"","sources":["../../src/iterables/union.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2EAA2C;AAC3C,4DAA4B;AAE5B;;;;GAIG;AACH,SAAwB,KAAK,CAAK,GAAG,SAAwB;IAC5D,OAAO,IAAA,kBAAQ,EAAC,IAAA,eAAK,EAAC,SAAS,CAAC,CAAC,CAAC;AACnC,CAAC;AAFD,wBAEC"} -------------------------------------------------------------------------------- /dist/iterables/zip.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Produces a sequence that is combination of the two sequences.. 3 | * @param {Iterable} sequence1 4 | * @param {Iterable} sequence2 5 | * @param {(r1: IteratorResult, r2: IteratorResult, i: number) => TResult} selector 6 | * @return {Iterable} 7 | */ 8 | export default function zip(sequence1: Iterable, sequence2: Iterable, selector: (r1: IteratorResult, r2: IteratorResult, i: number) => TResult): Iterable; 9 | -------------------------------------------------------------------------------- /dist/predicates/isNotNull.d.ts: -------------------------------------------------------------------------------- 1 | type NotNull = T extends null ? never : T; 2 | export default function isNotNull(e: T): e is NotNull; 3 | export {}; 4 | -------------------------------------------------------------------------------- /dist/predicates/isNotNull.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /* eslint-ignore */ 8 | function isNotNull(e) { 9 | return e !== null; 10 | } 11 | exports.default = isNotNull; 12 | //# sourceMappingURL=isNotNull.js.map -------------------------------------------------------------------------------- /dist/predicates/isNotNull.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isNotNull.js","sourceRoot":"","sources":["../../src/predicates/isNotNull.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,mBAAmB;AACnB,SAAwB,SAAS,CAAW,CAAI;IAC/C,OAAO,CAAC,KAAG,IAAI,CAAC;AACjB,CAAC;AAFD,4BAEC"} -------------------------------------------------------------------------------- /dist/predicates/isNotNullOrUndefined.d.ts: -------------------------------------------------------------------------------- 1 | export default function isNotNullOrUndefined(e: T): e is NonNullable; 2 | -------------------------------------------------------------------------------- /dist/predicates/isNotNullOrUndefined.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /* eslint-ignore */ 8 | function isNotNullOrUndefined(e) { 9 | return e != null; 10 | } 11 | exports.default = isNotNullOrUndefined; 12 | //# sourceMappingURL=isNotNullOrUndefined.js.map -------------------------------------------------------------------------------- /dist/predicates/isNotNullOrUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isNotNullOrUndefined.js","sourceRoot":"","sources":["../../src/predicates/isNotNullOrUndefined.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH,mBAAmB;AACnB,SAAwB,oBAAoB,CAAW,CAAI;IAC1D,OAAO,CAAC,IAAE,IAAI,CAAC;AAChB,CAAC;AAFD,uCAEC"} -------------------------------------------------------------------------------- /dist/predicates/isNotUndefined.d.ts: -------------------------------------------------------------------------------- 1 | type NotUndefined = T extends undefined ? never : T; 2 | export default function isNotUndefined(e: T): e is NotUndefined; 3 | export {}; 4 | -------------------------------------------------------------------------------- /dist/predicates/isNotUndefined.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /* eslint-ignore */ 8 | function isNotUndefined(e) { 9 | return e !== undefined; 10 | } 11 | exports.default = isNotUndefined; 12 | //# sourceMappingURL=isNotUndefined.js.map -------------------------------------------------------------------------------- /dist/predicates/isNotUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isNotUndefined.js","sourceRoot":"","sources":["../../src/predicates/isNotUndefined.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH,mBAAmB;AACnB,SAAwB,cAAc,CAAW,CAAI;IACpD,OAAO,CAAC,KAAG,SAAS,CAAC;AACtB,CAAC;AAFD,iCAEC"} -------------------------------------------------------------------------------- /dist/resolutions/all.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableTransform } from '../IterableTransform'; 3 | /** 4 | * An iterable transform that resolves false if the predicate ever returns false. Otherwise true. 5 | * @param {PredicateWithIndex} predicate 6 | * @return {IterableTransform} 7 | */ 8 | export default function all(predicate: PredicateWithIndex): IterableTransform; 9 | -------------------------------------------------------------------------------- /dist/resolutions/all.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/resolutions/all.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,oHAAoF;AAGpF;;;;GAIG;AACH,SAAwB,GAAG,CAAK,SAAgC;IAC/D,IAAG,CAAC,SAAS;QAAE,MAAM,IAAI,+BAAqB,CAAC,WAAW,CAAC,CAAC;IAC5D,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,OAAO,KAAK,CAAC;SACpC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC;AAZD,sBAYC"} -------------------------------------------------------------------------------- /dist/resolutions/any.d.ts: -------------------------------------------------------------------------------- 1 | import { PredicateWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableTransform } from '../IterableTransform'; 3 | /** 4 | * An iterable transform that resolves true if the predicate ever returns true. Otherwise false. 5 | * If no predicate is provided, will resolve true if the sequence is not empty. 6 | * @param {PredicateWithIndex} predicate 7 | * @return {IterableTransform} 8 | */ 9 | export default function any(predicate?: PredicateWithIndex): IterableTransform; 10 | -------------------------------------------------------------------------------- /dist/resolutions/any.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"any.js","sourceRoot":"","sources":["../../src/resolutions/any.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,gEAAgC;AAEhC;;;;;GAKG;AACH,SAAwB,GAAG,CAAK,SAAiC;IAChE,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAG,CAAC,SAAS,EACb;YACC,4CAA4C;YAC5C,OAAO,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC;SAC1B;QACD,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAE,OAAO,IAAI,CAAC;SAClC;QACD,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;AACH,CAAC;AAhBD,sBAgBC"} -------------------------------------------------------------------------------- /dist/resolutions/asArray.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns an array (copy) of all the elements in a sequence if the sequence isn't already an array. 3 | * If the sequence is an array, it's returned as is. 4 | * @param {Iterable} sequence 5 | * @return {T[]} 6 | */ 7 | export default function asArray(sequence: Iterable): T[]; 8 | -------------------------------------------------------------------------------- /dist/resolutions/asArray.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"asArray.js","sourceRoot":"","sources":["../../src/resolutions/asArray.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;;GAKG;AACH,SAAwB,OAAO,CAAK,QAAqB;IACxD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AACf,CAAC;AAND,0BAMC"} -------------------------------------------------------------------------------- /dist/resolutions/average.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the average of a sequence of numbers. 3 | * @param {Iterable} sequence 4 | * @return {number} 5 | */ 6 | export default function average(sequence: Iterable): number; 7 | -------------------------------------------------------------------------------- /dist/resolutions/average.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"average.js","sourceRoot":"","sources":["../../src/resolutions/average.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AACpF,4HAA4F;AAE5F;;;;GAIG;AACH,SAAwB,OAAO,CAAE,QAA0B;IAC1D,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,GAAG,IAAI,CAAC,CAAC;QACT,KAAK,EAAE,CAAC;KACR;IACD,IAAG,KAAK,KAAG,CAAC;QAAE,MAAM,IAAI,mCAAyB,CAAC,oBAAoB,CAAC,CAAC;IACxE,OAAO,GAAG,GAAC,KAAK,CAAC;AAClB,CAAC;AAXD,0BAWC"} -------------------------------------------------------------------------------- /dist/resolutions/contains.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * An iterable transform that resolves true if the provided sequence contains the entry. Otherwise false. 4 | * @param {T} entry 5 | * @return {IterableTransform} 6 | */ 7 | export default function contains(entry: T): IterableTransform; 8 | -------------------------------------------------------------------------------- /dist/resolutions/contains.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const indexOf_1 = tslib_1.__importDefault(require("./indexOf")); 9 | /** 10 | * An iterable transform that resolves true if the provided sequence contains the entry. Otherwise false. 11 | * @param {T} entry 12 | * @return {IterableTransform} 13 | */ 14 | function contains(entry) { 15 | return function (sequence) { 16 | return (0, indexOf_1.default)(entry)(sequence) !== -1; 17 | }; 18 | } 19 | exports.default = contains; 20 | //# sourceMappingURL=contains.js.map -------------------------------------------------------------------------------- /dist/resolutions/contains.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"contains.js","sourceRoot":"","sources":["../../src/resolutions/contains.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,gEAAgC;AAEhC;;;;GAIG;AACH,SAAwB,QAAQ,CAAK,KAAQ;IAC5C,OAAO,UAAS,QAAqB;QACpC,OAAO,IAAA,iBAAO,EAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAI,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC;AACH,CAAC;AAJD,2BAIC"} -------------------------------------------------------------------------------- /dist/resolutions/count.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the number of entries in a sequence. 3 | * @param {Iterable} sequence 4 | * @return {number} 5 | */ 6 | export default function count(sequence: Iterable): number; 7 | -------------------------------------------------------------------------------- /dist/resolutions/count.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const aggregate_1 = tslib_1.__importDefault(require("./aggregate")); 9 | const a = (0, aggregate_1.default)((p) => p + 1, 0); 10 | /** 11 | * Returns the number of entries in a sequence. 12 | * @param {Iterable} sequence 13 | * @return {number} 14 | */ 15 | function count(sequence) { 16 | if (sequence instanceof Array) 17 | return sequence.length; 18 | return sequence ? a(sequence) : 0; 19 | } 20 | exports.default = count; 21 | //# sourceMappingURL=count.js.map -------------------------------------------------------------------------------- /dist/resolutions/count.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"count.js","sourceRoot":"","sources":["../../src/resolutions/count.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oEAAoC;AAEpC,MAAM,CAAC,GAAG,IAAA,mBAAS,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAErC;;;;GAIG;AACH,SAAwB,KAAK,CAAK,QAAqB;IACtD,IAAG,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAC,MAAM,CAAC;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC;AAHD,wBAGC"} -------------------------------------------------------------------------------- /dist/resolutions/elementAt.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * Produces a function that returns the element at a specified index in a sequence. 4 | * @param {number} index 5 | * @return {IterableTransform} A function that when passed a sequence of elements selects the specific element. 6 | */ 7 | export default function elementAt(index: number): IterableTransform; 8 | -------------------------------------------------------------------------------- /dist/resolutions/elementAt.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"elementAt.js","sourceRoot":"","sources":["../../src/resolutions/elementAt.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AACpF,gIAAgG;AAChG,wEAAwC;AAGxC;;;;GAIG;AACH,SAAwB,SAAS,CAAK,KAAa;IAClD,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAG,QAAQ,YAAY,KAAK,EAC5B;YACC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxB,IAAG,KAAK,GAAC,KAAK;gBAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;SACvC;aAED;YACC,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;gBACC,IAAG,KAAK,KAAG,KAAK,EAAE;oBAAE,OAAO,CAAC,CAAC;aAC7B;SACD;QACD,MAAM,IAAI,qCAA2B,CAAC,OAAO,EAAE,KAAK,EAAE,wCAAwC,GAAG,KAAK,CAAC,CAAC;IACzG,CAAC,CAAC;AACH,CAAC;AAnBD,4BAmBC"} -------------------------------------------------------------------------------- /dist/resolutions/elementAtOrDefault.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * Produces a function that returns the element at a specified index in a sequence or `undefined` if out of bounds. 4 | * @param {number} index 5 | * @return {IterableTransform} 6 | */ 7 | export default function elementAtOrDefault(index: number): IterableTransform; 8 | /** 9 | * Produces a function that returns the element at a specified index in a sequence or the default value if out of bounds. 10 | * @param {number} index 11 | * @param {TDefault} defaultValue 12 | * @return {IterableTransform} 13 | */ 14 | export default function elementAtOrDefault(index: number, defaultValue: T): IterableTransform; 15 | -------------------------------------------------------------------------------- /dist/resolutions/elementAtOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"elementAtOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/elementAtOrDefault.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,wEAAwC;AAoBxC;;;;;GAKG;AACH,SAAwB,kBAAkB,CAAc,KAAa,EAAE,YAAgB;IAEtF,iBAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK;YAC5B,OAAO,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAEjE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;YACzB,IAAI,KAAK,KAAK,KAAK,EAAE;gBAAE,OAAO,CAAC,CAAC;SAChC;QACD,OAAO,YAAY,CAAC;IACrB,CAAC,CAAC;AACH,CAAC;AAdD,qCAcC"} -------------------------------------------------------------------------------- /dist/resolutions/first.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the first element of a sequence. 3 | * @param {Iterable} sequence 4 | * @return {T} 5 | */ 6 | export default function first(sequence: Iterable): T; 7 | -------------------------------------------------------------------------------- /dist/resolutions/first.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"first.js","sourceRoot":"","sources":["../../src/resolutions/first.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AACpF,4HAA4F;AAE5F;;;;GAIG;AACH,SAAwB,KAAK,CAAK,QAAqB;IACtD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK,EAC5B;QACC,IAAG,QAAQ,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC5C;SAED;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAG,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;KACnC;IACD,MAAM,IAAI,mCAAyB,CAAC,wBAAwB,CAAC,CAAC;AAC/D,CAAC;AAbD,wBAaC"} -------------------------------------------------------------------------------- /dist/resolutions/firstOrDefault.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * An iterable transform that returns the first element of a sequence, or `undefined` if no element is found. 4 | * @return {IterableTransform} 5 | */ 6 | export default function firstOrDefault(): IterableTransform; 7 | /** 8 | * An iterable transform that returns the first element of a sequence, or the default value if no element is found. 9 | * @param {TDefault} defaultValue 10 | * @return {IterableTransform} 11 | */ 12 | export default function firstOrDefault(defaultValue: TDefault): IterableTransform; 13 | -------------------------------------------------------------------------------- /dist/resolutions/firstOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"firstOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/firstOrDefault.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAmBH;;;;GAIG;AACH,SAAwB,cAAc,CAAc,YAAuB;IAE1E,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK;YAC5B,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;IAChD,CAAC,CAAC;AACH,CAAC;AAXD,iCAWC"} -------------------------------------------------------------------------------- /dist/resolutions/hasAny.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns true if the sequence is not empty. 3 | * @param {Iterable} sequence 4 | * @return {boolean} 5 | */ 6 | export default function hasAny(sequence: Iterable): boolean; 7 | -------------------------------------------------------------------------------- /dist/resolutions/hasAny.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const isEmpty_1 = tslib_1.__importDefault(require("./isEmpty")); 9 | /** 10 | * Returns true if the sequence is not empty. 11 | * @param {Iterable} sequence 12 | * @return {boolean} 13 | */ 14 | function hasAny(sequence) { 15 | return !(0, isEmpty_1.default)(sequence); 16 | } 17 | exports.default = hasAny; 18 | //# sourceMappingURL=hasAny.js.map -------------------------------------------------------------------------------- /dist/resolutions/hasAny.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"hasAny.js","sourceRoot":"","sources":["../../src/resolutions/hasAny.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,gEAAgC;AAEhC;;;;GAIG;AACH,SAAwB,MAAM,CAAE,QAAuB;IACtD,OAAO,CAAC,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC;AAC3B,CAAC;AAFD,yBAEC"} -------------------------------------------------------------------------------- /dist/resolutions/indexOf.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * An iterable transform that resolves true if the provided sequence contains the value. Otherwise false. 4 | * @param {T} entry The item to look for. 5 | * @return {IterableTransform} The transform that will look for the provided item. 6 | */ 7 | export default function indexOf(entry: T): IterableTransform; 8 | -------------------------------------------------------------------------------- /dist/resolutions/indexOf.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"indexOf.js","sourceRoot":"","sources":["../../src/resolutions/indexOf.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uFAAuD;AACvD,oHAAoF;AAGpF;;;;GAIG;AACH,SAAwB,OAAO,CAAK,KAAQ;IAC3C,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,IAAA,kBAAQ,EAAC,CAAC,EAAE,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAChC,CAAC,EAAE,CAAC;SACJ;QACD,OAAO,CAAC,CAAC,CAAC;IACX,CAAC,CAAC;AACH,CAAC;AAZD,0BAYC"} -------------------------------------------------------------------------------- /dist/resolutions/isEmpty.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns true if the sequence is empty. 3 | * @param {Iterable} sequence 4 | * @return {boolean} 5 | */ 6 | export default function isEmpty(sequence: Iterable): boolean; 7 | -------------------------------------------------------------------------------- /dist/resolutions/isEmpty.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | /* 4 | * @author electricessence / https://github.com/electricessence/ 5 | * @license MIT 6 | */ 7 | /** 8 | * Returns true if the sequence is empty. 9 | * @param {Iterable} sequence 10 | * @return {boolean} 11 | */ 12 | function isEmpty(sequence) { 13 | // noinspection PointlessBooleanExpressionJS 14 | return !sequence 15 | || sequence instanceof Array && (sequence.length === 0) 16 | || sequence[Symbol.iterator]().next().done === true; 17 | } 18 | exports.default = isEmpty; 19 | //# sourceMappingURL=isEmpty.js.map -------------------------------------------------------------------------------- /dist/resolutions/isEmpty.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"isEmpty.js","sourceRoot":"","sources":["../../src/resolutions/isEmpty.ts"],"names":[],"mappings":";;AAAA;;;GAGG;AACH;;;;GAIG;AACH,SAAwB,OAAO,CAAE,QAAuB;IACvD,4CAA4C;IAC5C,OAAO,CAAC,QAAQ;WACZ,QAAQ,YAAY,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;WACpD,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAG,IAAI,CAAC;AACpD,CAAC;AALD,0BAKC"} -------------------------------------------------------------------------------- /dist/resolutions/joinStrings.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * Joins a set of strings using the provided separator. 4 | * @param {string} separator 5 | * @return {IterableTransform} 6 | */ 7 | export declare function joinStrings(separator?: string): IterableTransform; 8 | -------------------------------------------------------------------------------- /dist/resolutions/joinStrings.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"joinStrings.js","sourceRoot":"","sources":["../../src/resolutions/joinStrings.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,oHAAoF;AAGpF;;;;GAIG;AACH,SAAgB,WAAW,CAAE,SAAS,GAAG,EAAE;IAE1C,IAAG,SAAS,IAAE,IAAI;QAAE,SAAS,GAAG,EAAE,CAAC;IACnC,OAAO,UAAS,QAA0B;QACzC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACjB,IAAG,CAAC,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;QAC1B,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1B;YACC,MAAM,IAAI,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;SAC9B;QACD,OAAO,MAAM,CAAC;IACf,CAAC,CAAC;AACH,CAAC;AAfD,kCAeC"} -------------------------------------------------------------------------------- /dist/resolutions/last.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the first element of a sequence. 3 | * @param {Iterable} sequence 4 | * @return {T} 5 | */ 6 | export default function last(sequence: Iterable): T; 7 | -------------------------------------------------------------------------------- /dist/resolutions/last.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"last.js","sourceRoot":"","sources":["../../src/resolutions/last.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AACpF,4HAA4F;AAE5F;;;;GAIG;AACH,SAAwB,IAAI,CAAK,QAAqB;IACrD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK,EAC5B;QACC,IAAG,QAAQ,CAAC,MAAM,IAAI,CAAC;YACtB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KACtC;SAED;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAG,CAAC,IAAI,CAAC,IAAI,EACb;YACC,IAAI,IAAO,CAAC;YACZ,GACA;gBACC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;gBAClB,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;aACvB,QACK,CAAC,IAAI,CAAC,IAAI,EAAE;YAClB,OAAO,IAAI,CAAC;SACZ;KACD;IACD,MAAM,IAAI,mCAAyB,CAAC,wBAAwB,CAAC,CAAC;AAC/D,CAAC;AAxBD,uBAwBC"} -------------------------------------------------------------------------------- /dist/resolutions/lastIndexOf.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * An iterable transform that resolves true if the provided sequence contains the value. Otherwise false. 4 | * @param {T} item 5 | * @return {IterableTransform} 6 | */ 7 | export default function lastIndexOf(item: T): IterableTransform; 8 | -------------------------------------------------------------------------------- /dist/resolutions/lastIndexOf.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"lastIndexOf.js","sourceRoot":"","sources":["../../src/resolutions/lastIndexOf.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uFAAuD;AACvD,oHAAoF;AAGpF;;;;GAIG;AACH,SAAwB,WAAW,CAAK,IAAO;IAC9C,OAAO,UAAS,QAAqB;QACpC,IAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAG,QAAQ,YAAY,KAAK;YAAE,OAAO,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QACrB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;YACC,IAAG,IAAA,kBAAQ,EAAC,CAAC,EAAE,IAAI,CAAC;gBAAE,IAAI,GAAG,CAAC,CAAC;YAC/B,CAAC,EAAE,CAAC;SACJ;QACD,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC;AAZD,8BAYC"} -------------------------------------------------------------------------------- /dist/resolutions/lastOrDefault.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * An iterable transform that returns the last element of a sequence, or `undefined` if no element is found. 4 | * @return {IterableTransform} 5 | */ 6 | export default function lastOrDefault(): IterableTransform; 7 | /** 8 | * An iterable transform that returns the last element of a sequence, or the default value if no element is found. 9 | * @param {TDefault} defaultValue 10 | * @return {IterableTransform} 11 | */ 12 | export default function lastOrDefault(defaultValue: TDefault): IterableTransform; 13 | -------------------------------------------------------------------------------- /dist/resolutions/lastOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"lastOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/lastOrDefault.ts"],"names":[],"mappings":";AAAA;;;EAGE;;AAiBF;;;;GAIG;AACH,SAAwB,aAAa,CAAc,YAAuB;IACzE,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC9B,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC;gBAC1B,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjC;QAED,IAAI,IAAI,GAA6B,YAAY,CAAC;QAClD,KAAK,MAAM,OAAO,IAAI,QAAQ;YAAE,IAAI,GAAG,OAAO,CAAC;QAC/C,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC;AAbD,gCAaC"} -------------------------------------------------------------------------------- /dist/resolutions/max.d.ts: -------------------------------------------------------------------------------- 1 | import { Primitive } from '@tsdotnet/common-interfaces'; 2 | /** 3 | * Returns the entry in the sequence that has the highest/greatest value. 4 | * @param {Iterable} sequence 5 | * @return {T} 6 | */ 7 | export default function max(sequence: Iterable): T; 8 | -------------------------------------------------------------------------------- /dist/resolutions/max.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"max.js","sourceRoot":"","sources":["../../src/resolutions/max.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,oHAAoF;AACpF,4HAA4F;AAE5F;;;;GAIG;AACH,SAAwB,GAAG,CAAuB,QAAqB;IACtE,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjB,IAAG,CAAC,CAAC,IAAI;QAAE,MAAM,IAAI,mCAAyB,CAAC,mEAAmE,CAAC,CAAC;IAEpH,IAAI,GAAG,GAAM,CAAC,CAAC,KAAK,CAAC;IACrB,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1B;QACC,IAAG,CAAC,CAAC,KAAK,GAAC,GAAG;YAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;KAC9B;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAZD,sBAYC"} -------------------------------------------------------------------------------- /dist/resolutions/min.d.ts: -------------------------------------------------------------------------------- 1 | import { Primitive } from '@tsdotnet/common-interfaces'; 2 | /** 3 | * Returns the entry in the sequence that has the lowest/least value. 4 | * @param {Iterable} sequence 5 | * @return {T} 6 | */ 7 | export default function min(sequence: Iterable): T; 8 | -------------------------------------------------------------------------------- /dist/resolutions/min.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"min.js","sourceRoot":"","sources":["../../src/resolutions/min.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,oHAAoF;AACpF,4HAA4F;AAE5F;;;;GAIG;AACH,SAAwB,GAAG,CAAuB,QAAqB;IACtE,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACjB,IAAG,CAAC,CAAC,IAAI;QAAE,MAAM,IAAI,mCAAyB,CAAC,mEAAmE,CAAC,CAAC;IAGpH,IAAI,GAAG,GAAM,CAAC,CAAC,KAAK,CAAC;IACrB,OAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAC1B;QACC,IAAG,CAAC,CAAC,KAAK,GAAC,GAAG;YAAE,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;KAC9B;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAbD,sBAaC"} -------------------------------------------------------------------------------- /dist/resolutions/product.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the product (*) of a sequence of numbers. 3 | * Returns NaN if sequence is empty or if any entries are NaN. 4 | * @param {Iterable} sequence The sequence of numbers to multiply together. 5 | * @return {number} The product of the sequence. 6 | */ 7 | export default function product(sequence: Iterable): number; 8 | -------------------------------------------------------------------------------- /dist/resolutions/product.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/resolutions/product.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;;GAKG;AACH,SAAwB,OAAO,CAAE,QAA0B;IAC1D,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IACpC,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,IAAI,CAAC,CAAC;KACb;IACD,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACnC,CAAC;AAVD,0BAUC"} -------------------------------------------------------------------------------- /dist/resolutions/sequenceEqual.d.ts: -------------------------------------------------------------------------------- 1 | import { EqualityComparison } from '@tsdotnet/compare'; 2 | import { IterableTransform } from '../IterableTransform'; 3 | /** 4 | * Resolves true if the sequences are equal. 5 | * @param {Iterable} other 6 | * @param {EqualityComparison} equalityComparer 7 | * @return {IterableTransform} 8 | */ 9 | export default function sequenceEqual(other: Iterable, equalityComparer?: EqualityComparison): IterableTransform; 10 | -------------------------------------------------------------------------------- /dist/resolutions/sequenceEqual.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sequenceEqual.js","sourceRoot":"","sources":["../../src/resolutions/sequenceEqual.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+CAA+D;AAC/D,yGAAyE;AAGzE;;;;;GAKG;AACH,SAAwB,aAAa,CACpC,KAAkB,EAClB,mBAA0C,kBAAQ;IAClD,OAAO,UAAS,QAAqB;QACpC,OAAO,IAAA,2BAAiB,EAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC,CAAC;AACH,CAAC;AAND,gCAMC"} -------------------------------------------------------------------------------- /dist/resolutions/single.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns an entry from a singular sequence. 3 | * Will throw if no elements or more than one. 4 | * @param {Iterable} sequence 5 | * @return {T} 6 | */ 7 | export default function single(sequence: Iterable): T; 8 | -------------------------------------------------------------------------------- /dist/resolutions/single.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"single.js","sourceRoot":"","sources":["../../src/resolutions/single.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AACpF,4HAA4F;AAE5F;;;;;GAKG;AACH,SAAwB,MAAM,CAAK,QAAqB;IACvD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,WAAW,CAAC;IAChB,IAAG,QAAQ,YAAY,KAAK,EAC5B;QACC,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC5B,WAAW,GAAG,GAAG,KAAG,CAAC,CAAC;QACtB,IAAG,GAAG,KAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC/B;SAED;QACC,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC9B,WAAW,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1B,IAAG,WAAW,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI;YAAE,OAAO,KAAK,CAAC,KAAK,CAAC;KAC3D;IACD,MAAM,IAAI,mCAAyB,CAAC,WAAW;QAC9C,CAAC,CAAC,0CAA0C;QAC5C,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAE9B,CAAC;AApBD,yBAoBC"} -------------------------------------------------------------------------------- /dist/resolutions/singleOrDefault.d.ts: -------------------------------------------------------------------------------- 1 | import { IterableTransform } from '../IterableTransform'; 2 | /** 3 | * Returns an entry from a singular sequence or `undefined` if empty. 4 | * @return {IterableTransform} 5 | */ 6 | export default function singleOrDefault(): IterableTransform; 7 | /** 8 | * Returns an entry from a singular sequence or the default value if empty. 9 | * Throws if more than one entry. 10 | * @param {TDefault} defaultValue 11 | * @return {IterableTransform} 12 | */ 13 | export default function singleOrDefault(defaultValue: TDefault): IterableTransform; 14 | -------------------------------------------------------------------------------- /dist/resolutions/singleOrDefault.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"singleOrDefault.js","sourceRoot":"","sources":["../../src/resolutions/singleOrDefault.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAkBH;;;;;GAKG;AACH,SAAwB,eAAe,CAAc,YAAuB;IAC3E,OAAO,UAAU,QAAqB;QACrC,IAAI,CAAC,QAAQ;YAAE,OAAO,YAAY,CAAC;QACnC,IAAI,QAAQ,YAAY,KAAK,EAAE;YAC9B,QAAQ,QAAQ,CAAC,MAAM,EAAE;gBACxB,KAAK,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC;gBAC5B,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;aAC3B;SACD;aACI;YACJ,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,IAAI;gBAAE,OAAO,YAAY,CAAC;YACpC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI;gBAAE,OAAO,KAAK,CAAC,KAAK,CAAC;SAC7C;QACD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC7D,CAAC,CAAC;AACH,CAAC;AAjBD,kCAiBC"} -------------------------------------------------------------------------------- /dist/resolutions/sum.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the sum (+) of a sequence of numbers. 3 | * Returns 0 if sequence is empty. Returns NaN if any entries are NaN. 4 | * @param {Iterable} sequence The sequence of numbers to sum (add+ together). 5 | * @return {number} The sum of the sequence. 6 | */ 7 | export default function sum(sequence: Iterable): number; 8 | -------------------------------------------------------------------------------- /dist/resolutions/sum.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sum.js","sourceRoot":"","sources":["../../src/resolutions/sum.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;;GAKG;AACH,SAAwB,GAAG,CAAE,QAA0B;IACtD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,CAAC;QACxB,GAAG,IAAI,CAAC,CAAC;KACT;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AATD,sBASC"} -------------------------------------------------------------------------------- /dist/resolutions/sumAndCount.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns the sum (.value) of a sequence and the number of entries (.count). 3 | * @param {Iterable} sequence The sequence of numbers to sum and count. 4 | * @return {{value: number; count: number}} The result. 5 | */ 6 | export default function sumAndCount(sequence: Iterable): { 7 | value: number; 8 | count: number; 9 | }; 10 | -------------------------------------------------------------------------------- /dist/resolutions/sumAndCount.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"sumAndCount.js","sourceRoot":"","sources":["../../src/resolutions/sumAndCount.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;GAIG;AACH,SAAwB,WAAW,CAAE,QAA0B;IAC9D,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;QACC,IAAG,KAAK,CAAC,CAAC,CAAC;YAAE,OAAO,EAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAC,CAAC;QAC7C,GAAG,IAAI,CAAC,CAAC;QACT,KAAK,EAAE,CAAC;KACR;IACD,OAAO;QACN,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,KAAK;KACZ,CAAC;AACH,CAAC;AAbD,8BAaC"} -------------------------------------------------------------------------------- /dist/resolutions/toArray.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns an array (copy) of all the elements in a sequence. 3 | * @param {Iterable} sequence 4 | * @return {T[]} 5 | */ 6 | export default function toArray(sequence: Iterable): T[]; 7 | -------------------------------------------------------------------------------- /dist/resolutions/toArray.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const ArgumentNullException_1 = tslib_1.__importDefault(require("@tsdotnet/exceptions/dist/ArgumentNullException")); 9 | /** 10 | * Returns an array (copy) of all the elements in a sequence. 11 | * @param {Iterable} sequence 12 | * @return {T[]} 13 | */ 14 | function toArray(sequence) { 15 | if (!sequence) 16 | throw new ArgumentNullException_1.default('sequence'); 17 | if (sequence instanceof Array) 18 | return sequence.slice(); 19 | const result = []; 20 | for (const e of sequence) 21 | result.push(e); 22 | return result; 23 | } 24 | exports.default = toArray; 25 | //# sourceMappingURL=toArray.js.map -------------------------------------------------------------------------------- /dist/resolutions/toArray.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"toArray.js","sourceRoot":"","sources":["../../src/resolutions/toArray.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,oHAAoF;AAEpF;;;;GAIG;AACH,SAAwB,OAAO,CAAK,QAAqB;IACxD,IAAG,CAAC,QAAQ;QAAE,MAAM,IAAI,+BAAqB,CAAC,UAAU,CAAC,CAAC;IAC1D,IAAG,QAAQ,YAAY,KAAK;QAAE,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC;IACtD,MAAM,MAAM,GAAQ,EAAE,CAAC;IACvB,KAAI,MAAM,CAAC,IAAI,QAAQ;QAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC;AACf,CAAC;AAND,0BAMC"} -------------------------------------------------------------------------------- /dist/transforms.d.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | import groupBy, { Grouping, GroupingResult } from './transforms/groupBy'; 6 | import notNull, { NotNull } from './transforms/notNull'; 7 | import notUndefined, { NotUndefined } from './transforms/notUndefined'; 8 | import notNullOrUndefined from './transforms/notNullOrUndefined'; 9 | import rows, { Cell, Row } from './transforms/rows'; 10 | import select from './transforms/select'; 11 | import selectMany from './transforms/selectMany'; 12 | import weave from './transforms/weave'; 13 | export { groupBy, Grouping, GroupingResult, notNull, notNullOrUndefined, notUndefined, NotNull, NotUndefined, rows, Cell, Row, select, selectMany, weave }; 14 | -------------------------------------------------------------------------------- /dist/transforms.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"transforms.js","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,wEAAuE;AAUtE,kBAVM,iBAAO,CAUN;AAEP,+FAZ0B,wBAAc,OAY1B;AAXf,2EAAsD;AAYrD,kBAZM,iBAAO,CAYN;AAXR,qFAAqE;AAapE,uBAbM,sBAAY,CAaN;AAZb,iGAAiE;AAWhE,6BAXM,4BAAkB,CAWN;AAVnB,qEAAkD;AAcjD,eAdM,cAAI,CAcN;AAbL,yEAAyC;AAgBxC,iBAhBM,gBAAM,CAgBN;AAfP,iFAAiD;AAgBhD,qBAhBM,oBAAU,CAgBN;AAfX,uEAAuC;AAgBtC,gBAhBM,eAAK,CAgBN"} -------------------------------------------------------------------------------- /dist/transforms/notNull.d.ts: -------------------------------------------------------------------------------- 1 | export type NotNull = T extends null ? never : T; 2 | /** 3 | * Filters out null values. 4 | * @param {Iterable} sequence 5 | * @return {Iterable>} 6 | */ 7 | export default function notNull(sequence: Iterable): Iterable>; 8 | -------------------------------------------------------------------------------- /dist/transforms/notNull.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Filters out null values. 9 | * @param {Iterable} sequence 10 | * @return {Iterable>} 11 | */ 12 | function notNull(sequence) { 13 | return { 14 | *[Symbol.iterator]() { 15 | for (const e of sequence) 16 | if (e !== null) 17 | yield e; 18 | } 19 | }; 20 | } 21 | exports.default = notNull; 22 | //# sourceMappingURL=notNull.js.map -------------------------------------------------------------------------------- /dist/transforms/notNull.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"notNull.js","sourceRoot":"","sources":["../../src/transforms/notNull.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH;;;;GAIG;AACH,SAAwB,OAAO,CAAK,QAAqB;IACxD,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;gBAAE,IAAG,CAAC,KAAG,IAAI;oBAAE,MAAM,CAAe,CAAC;QAC7D,CAAC;KACD,CAAC;AACH,CAAC;AAPD,0BAOC"} -------------------------------------------------------------------------------- /dist/transforms/notNullOrUndefined.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Filters out null or undefined values. 3 | * @param {Iterable} sequence 4 | * @return {Iterable>} 5 | */ 6 | export default function notNullOrUndefined(sequence: Iterable): Iterable>; 7 | -------------------------------------------------------------------------------- /dist/transforms/notNullOrUndefined.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Filters out null or undefined values. 9 | * @param {Iterable} sequence 10 | * @return {Iterable>} 11 | */ 12 | function notNullOrUndefined(sequence) { 13 | return { 14 | *[Symbol.iterator]() { 15 | for (const e of sequence) 16 | if (e != null) 17 | yield e; 18 | } 19 | }; 20 | } 21 | exports.default = notNullOrUndefined; 22 | //# sourceMappingURL=notNullOrUndefined.js.map -------------------------------------------------------------------------------- /dist/transforms/notNullOrUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"notNullOrUndefined.js","sourceRoot":"","sources":["../../src/transforms/notNullOrUndefined.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAEH;;;;GAIG;AACH,SAAwB,kBAAkB,CAAK,QAAqB;IACnE,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;gBAAE,IAAG,CAAC,IAAE,IAAI;oBAAE,MAAM,CAAmB,CAAC;QAChE,CAAC;KACD,CAAC;AACH,CAAC;AAPD,qCAOC"} -------------------------------------------------------------------------------- /dist/transforms/notUndefined.d.ts: -------------------------------------------------------------------------------- 1 | export type NotUndefined = T extends undefined ? never : T; 2 | /** 3 | * Filters out undefined values. 4 | * @param {Iterable} sequence 5 | * @return {Iterable>} 6 | */ 7 | export default function notUndefined(sequence: Iterable): Iterable>; 8 | -------------------------------------------------------------------------------- /dist/transforms/notUndefined.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * Filters out undefined values. 9 | * @param {Iterable} sequence 10 | * @return {Iterable>} 11 | */ 12 | function notUndefined(sequence) { 13 | return { 14 | *[Symbol.iterator]() { 15 | for (const e of sequence) 16 | if (e !== undefined) 17 | yield e; 18 | } 19 | }; 20 | } 21 | exports.default = notUndefined; 22 | //# sourceMappingURL=notUndefined.js.map -------------------------------------------------------------------------------- /dist/transforms/notUndefined.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"notUndefined.js","sourceRoot":"","sources":["../../src/transforms/notUndefined.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAIH;;;;GAIG;AACH,SAAwB,YAAY,CAAK,QAAqB;IAC7D,OAAO;QACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;YAElB,KAAI,MAAM,CAAC,IAAI,QAAQ;gBAAE,IAAG,CAAC,KAAG,SAAS;oBAAE,MAAM,CAAoB,CAAC;QACvE,CAAC;KACD,CAAC;AACH,CAAC;AAPD,+BAOC"} -------------------------------------------------------------------------------- /dist/transforms/rows.d.ts: -------------------------------------------------------------------------------- 1 | export type Cell = IteratorYieldResult | null; 2 | export type Row = Cell[]; 3 | /** 4 | * Returns the rows from a given set of iterables representing columns. 5 | * @param {Iterable>} columns 6 | * @return {Iterable>} 7 | */ 8 | export default function rows(columns: Iterable>): Iterable>; 9 | -------------------------------------------------------------------------------- /dist/transforms/select.d.ts: -------------------------------------------------------------------------------- 1 | import { SelectorWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableValueTransform } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that transforms (maps / projects) the output from the contained elements. 5 | * @param {SelectorWithIndex} selector 6 | * @return {(sequence: Iterable) => Iterable} 7 | */ 8 | export default function select(selector: SelectorWithIndex): IterableValueTransform; 9 | -------------------------------------------------------------------------------- /dist/transforms/select.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | /** 8 | * An iterable filter that transforms (maps / projects) the output from the contained elements. 9 | * @param {SelectorWithIndex} selector 10 | * @return {(sequence: Iterable) => Iterable} 11 | */ 12 | function select(selector) { 13 | return function (sequence) { 14 | return { 15 | *[Symbol.iterator]() { 16 | let i = 0; 17 | for (const e of sequence) { 18 | yield selector(e, i++); 19 | } 20 | } 21 | }; 22 | }; 23 | } 24 | exports.default = select; 25 | //# sourceMappingURL=select.js.map -------------------------------------------------------------------------------- /dist/transforms/select.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/transforms/select.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAKH;;;;GAIG;AACH,SAAwB,MAAM,CAC7B,QAAuC;IACvC,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,CAAC,IAAI,QAAQ,EACvB;oBACC,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBACvB;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAdD,yBAcC"} -------------------------------------------------------------------------------- /dist/transforms/selectMany.d.ts: -------------------------------------------------------------------------------- 1 | import { SelectorWithIndex } from '@tsdotnet/common-interfaces'; 2 | import { IterableValueTransform } from '../IterableTransform'; 3 | /** 4 | * An iterable filter that merges the output of contained iterables. 5 | * @return {(sequence: Iterable) => Iterable} 6 | */ 7 | export default function selectMany = Iterable>(): IterableValueTransform; 8 | /** 9 | * An iterable filter that merges the output of selected iterables. 10 | * @param {SelectorWithIndex} selector 11 | * @return {(sequence: Iterable) => Iterable} 12 | */ 13 | export default function selectMany(selector: SelectorWithIndex>): IterableValueTransform; 14 | -------------------------------------------------------------------------------- /dist/transforms/selectMany.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | /* 3 | * @author electricessence / https://github.com/electricessence/ 4 | * @license MIT 5 | */ 6 | Object.defineProperty(exports, "__esModule", { value: true }); 7 | const tslib_1 = require("tslib"); 8 | const identity_1 = tslib_1.__importDefault(require("../identity")); 9 | function selectMany(selector = identity_1.default) { 10 | return function (sequence) { 11 | return { 12 | *[Symbol.iterator]() { 13 | let i = 0; 14 | for (const outer of sequence) { 15 | for (const inner of selector(outer, i++)) 16 | yield inner; 17 | } 18 | } 19 | }; 20 | }; 21 | } 22 | exports.default = selectMany; 23 | //# sourceMappingURL=selectMany.js.map -------------------------------------------------------------------------------- /dist/transforms/selectMany.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"selectMany.js","sourceRoot":"","sources":["../../src/transforms/selectMany.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,mEAAmC;AAanC,SAAwB,UAAU,CAAc,WAAoD,kBAAQ;IAC3G,OAAO,UAAS,QAAqB;QACpC,OAAO;YACN,CAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAElB,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,KAAI,MAAM,KAAK,IAAI,QAAQ,EAC3B;oBACC,KAAI,MAAM,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;wBAAE,MAAM,KAAK,CAAC;iBACrD;YACF,CAAC;SACD,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAbD,6BAaC"} -------------------------------------------------------------------------------- /dist/transforms/weave.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Returns an item from each iterable before calling next on each. 3 | * @param {Iterable>} sequences 4 | * @return {Iterable} 5 | */ 6 | export default function weave(sequences: Iterable>): Iterable; 7 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. -------------------------------------------------------------------------------- /docs/assets/highlight.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --light-code-background: #FFFFFF; 3 | --dark-code-background: #1E1E1E; 4 | } 5 | 6 | @media (prefers-color-scheme: light) { :root { 7 | --code-background: var(--light-code-background); 8 | } } 9 | 10 | @media (prefers-color-scheme: dark) { :root { 11 | --code-background: var(--dark-code-background); 12 | } } 13 | 14 | :root[data-theme='light'] { 15 | --code-background: var(--light-code-background); 16 | } 17 | 18 | :root[data-theme='dark'] { 19 | --code-background: var(--dark-code-background); 20 | } 21 | 22 | pre, code { background: var(--code-background); } 23 | -------------------------------------------------------------------------------- /linqts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsdotnet/linq/a876d59f37989ceb7307a92fab7fbbd14e1c3e14/linqts.png -------------------------------------------------------------------------------- /planned/groupJoin.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * Licensing: MIT 4 | */ 5 | 6 | groupJoin( 7 | inner:FiniteEnumerableOrArrayLike, 8 | outerKeySelector:Selector, 9 | innerKeySelector:Selector, 10 | resultSelector:(outer:T, inner:TInner[] | null) => TResult, 11 | compareSelector:HashSelector = Functions.Identity) 12 | -------------------------------------------------------------------------------- /planned/join.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * Licensing: MIT 4 | */ 5 | 6 | export function join( 7 | seed:T, 8 | valueFactory:SelectorWithIndex, 9 | skipSeed:Boolean = false) 10 | -------------------------------------------------------------------------------- /planned/pairwise.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * Licensing: MIT 4 | */ 5 | -------------------------------------------------------------------------------- /src/IterableTransform.d.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | export interface IterableTransform 7 | { 8 | (e: Iterable): TResult; 9 | } 10 | 11 | export type IterableValueTransform = IterableTransform>; 12 | 13 | export type IterableFilter = IterableValueTransform; 14 | -------------------------------------------------------------------------------- /src/applyFilters.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {IterableFilter} from './IterableTransform'; 7 | 8 | /** 9 | * Applies a set of filters to a sequence. 10 | * @param {Iterable} sequence The sequence to apply to. 11 | * @param {Iterable>} filters The filters to apply. 12 | * @return {Iterable} The resultant sequence. 13 | */ 14 | export default function applyFilters ( 15 | sequence: Iterable, 16 | filters: Iterable>): Iterable { 17 | for(const filter of filters) 18 | { 19 | sequence = filter(sequence); 20 | } 21 | return sequence; 22 | } 23 | -------------------------------------------------------------------------------- /src/filters/append.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import concat from '../iterables/concat'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | import same from './same'; 9 | 10 | /* 11 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 12 | */ 13 | export default function append (...elements: T[]): IterableFilter { 14 | if(elements.length === 0) return same; 15 | return function(sequence: Iterable): Iterable { 16 | return concat(sequence, elements); 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/filters/ascending.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {Primitive} from '@tsdotnet/common-interfaces'; 7 | import comparePrimitives from '@tsdotnet/compare/dist/comparePrimitives'; 8 | import toArray from '../resolutions/toArray'; 9 | 10 | /** 11 | * Default ascending sort delegate for primitive only iterables. 12 | * @param {Iterable} sequence 13 | * @return {Iterable} 14 | */ 15 | export default function ascending (sequence: Iterable): Iterable { 16 | return { 17 | * [Symbol.iterator] (): Iterator 18 | { 19 | for(const e of toArray(sequence).sort(comparePrimitives)) yield e; 20 | } 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /src/filters/defaultIfEmpty.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {IterableFilter} from '../IterableTransform'; 7 | 8 | /** 9 | * A iterable filter that returns the elements of the specified sequence or the specified value in a collection if the sequence is empty. 10 | * @param {T} defaultValue 11 | * @return {IterableFilter} 12 | */ 13 | export default function defaultIfEmpty (defaultValue: T): IterableFilter { 14 | return function(sequence: Iterable): Iterable { 15 | return { 16 | * [Symbol.iterator] (): Iterator 17 | { 18 | let hasElements = false; 19 | for(const e of sequence) 20 | { 21 | hasElements = true; 22 | yield e; 23 | } 24 | if(!hasElements) yield defaultValue; 25 | } 26 | }; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /src/filters/descending.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {Primitive} from '@tsdotnet/common-interfaces'; 7 | import comparePrimitives from '@tsdotnet/compare/dist/comparePrimitives'; 8 | import toArray from '../resolutions/toArray'; 9 | 10 | /** 11 | * Default descending sort delegate for primitive only iterables. 12 | * @param {Iterable} sequence 13 | * @return {Iterable} 14 | */ 15 | export default function descending (sequence: Iterable): Iterable { 16 | return { 17 | * [Symbol.iterator] (): Iterator 18 | { 19 | for(const e of toArray(sequence).sort(comparePrimitives.inverted)) yield e; 20 | } 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /src/filters/distinct.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | /** 7 | * An iterable filter that returns distinct elements from a sequence. 8 | * @param {Iterable} sequence 9 | * @return {Iterable} 10 | */ 11 | export default function distinct (sequence: Iterable): Iterable { 12 | return { 13 | * [Symbol.iterator] (): Iterator 14 | { 15 | const s = new Set(); 16 | for(const e of sequence) 17 | { 18 | if(s.has(e)) continue; 19 | s.add(e); 20 | yield e; 21 | } 22 | s.clear(); 23 | } 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /src/filters/memoize.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import memoize from '@tsdotnet/memoize'; 7 | 8 | // included for re-indexing. 9 | export {memoize}; 10 | -------------------------------------------------------------------------------- /src/filters/onComplete.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | 9 | /** 10 | * An iterable filter that invokes the provided action if there are no more entries to iterate. 11 | * @param {() => void} action 12 | * @return {IterableFilter} 13 | */ 14 | export default function onComplete (action: () => void): IterableFilter { 15 | if(!action) throw new ArgumentNullException('action'); 16 | return function(sequence: Iterable): Iterable { 17 | return { 18 | * [Symbol.iterator] (): Iterator 19 | { 20 | for(const e of sequence) yield e; 21 | action(); 22 | } 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /src/filters/onStart.ts: -------------------------------------------------------------------------------- 1 | 2 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 3 | import {IterableFilter} from '../IterableTransform'; 4 | 5 | /** 6 | * An iterable filter that invokes the provided action before iterating results. 7 | * @param {() => void} action 8 | * @return {IterableFilter} 9 | */ 10 | export default function onStart (action: () => void): IterableFilter { 11 | if(!action) throw new ArgumentNullException('action'); 12 | return function(sequence: Iterable): Iterable { 13 | return { 14 | * [Symbol.iterator] (): Iterator 15 | { 16 | action(); 17 | for(const e of sequence) yield e; 18 | } 19 | }; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /src/filters/prepend.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import concat from '../iterables/concat'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | import same from './same'; 9 | 10 | /** 11 | * An iterable filter that bypasses a specified number of elements in a sequence and then returns the remaining elements. 12 | * @param {T} elements 13 | * @return {IterableFilter} 14 | */ 15 | export default function prepend (...elements: T[]): IterableFilter { 16 | if(elements.length === 0) return same; 17 | return function(sequence: Iterable): Iterable { 18 | return concat(elements, sequence); 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /src/filters/same.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | /** 7 | * Returns the sequence provided. 8 | * @param {Iterable} sequence 9 | * @return {Iterable} 10 | */ 11 | export default function same (sequence: Iterable): Iterable { 12 | return sequence; 13 | } 14 | -------------------------------------------------------------------------------- /src/filters/skipUntil.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {PredicateWithIndex} from '@tsdotnet/common-interfaces'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | import skipWhile from './skipWhile'; 9 | 10 | /** 11 | * An iterable filter that bypasses elements in sequence until the predicate condition returns is true. 12 | * Inverse of skipWhile. 13 | * @param {PredicateWithIndex} predicate 14 | * @return {IterableFilter} 15 | */ 16 | export default function skipUntil (predicate: PredicateWithIndex): IterableFilter { 17 | return skipWhile((e, i) => !predicate(e, i)); 18 | } 19 | -------------------------------------------------------------------------------- /src/filters/takeUntil.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {PredicateWithIndex} from '@tsdotnet/common-interfaces'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | import takeWhile from './takeWhile'; 9 | 10 | /** 11 | * An iterable filter that will return results until the predicate condition is true. 12 | * @param {PredicateWithIndex} predicate 13 | * @return {IterableFilter} 14 | */ 15 | export default function takeUntil (predicate: PredicateWithIndex): IterableFilter { 16 | return takeWhile((e, i) => !predicate(e, i)); 17 | } 18 | -------------------------------------------------------------------------------- /src/filters/takeWhile.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {PredicateWithIndex} from '@tsdotnet/common-interfaces'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | 9 | /** 10 | * An iterable filter that will return results while the predicate condition is true and stops when false. 11 | * @param {PredicateWithIndex} predicate 12 | * @return {IterableFilter} 13 | */ 14 | export default function takeWhile (predicate: PredicateWithIndex): IterableFilter { 15 | return function(sequence: Iterable): Iterable { 16 | return { 17 | * [Symbol.iterator] (): Iterator 18 | { 19 | let i = 0; 20 | for(const e of sequence) 21 | { 22 | if(!predicate(e, i++)) break; 23 | yield e; 24 | } 25 | } 26 | }; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /src/filters/where.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {PredicateWithIndex} from '@tsdotnet/common-interfaces'; 7 | import {IterableFilter} from '../IterableTransform'; 8 | 9 | /** 10 | * An iterable filter that only returns elements that match the provided predicate. 11 | * @param {PredicateWithIndex} predicate 12 | * @return {IterableFilter} 13 | */ 14 | export default function where (predicate: PredicateWithIndex): IterableFilter { 15 | return function(sequence: Iterable): Iterable { 16 | return { 17 | * [Symbol.iterator] (): Iterator 18 | { 19 | let i = 0; 20 | for(const e of sequence) 21 | { 22 | if(predicate(e, i++)) yield e; 23 | } 24 | } 25 | }; 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /src/identity.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | export default function identity (e: unknown): any { return e; } 7 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | /**! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | * @ignore 5 | */ 6 | 7 | import * as filters from './filters'; 8 | import * as iterables from './iterables'; 9 | import linq from './linq'; 10 | import linqExtended from './linqExtended'; 11 | import * as resolutions from './resolutions'; 12 | import * as transforms from './transforms'; 13 | 14 | export { 15 | IterableTransform, 16 | IterableValueTransform, 17 | IterableFilter, 18 | } from './IterableTransform'; 19 | 20 | export { 21 | filters, 22 | iterables, 23 | resolutions, 24 | transforms, 25 | linqExtended 26 | }; 27 | 28 | export default linq; 29 | -------------------------------------------------------------------------------- /src/iterables.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import concat from './iterables/concat'; 7 | import empty from './iterables/empty'; 8 | import iterateIndexes from './iterables/iterateIndexes'; 9 | import merge from './iterables/merge'; 10 | import range from './iterables/range'; 11 | import repeat from './iterables/repeat'; 12 | import repeatSequence from './iterables/repeatSequence'; 13 | import unfold from './iterables/unfold'; 14 | import union from './iterables/union'; 15 | import zip from './iterables/zip'; 16 | 17 | export { 18 | empty, 19 | concat, 20 | iterateIndexes, 21 | merge, 22 | range, 23 | repeat, 24 | repeatSequence, 25 | unfold, 26 | union, 27 | zip 28 | }; 29 | -------------------------------------------------------------------------------- /src/iterables/concat.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import merge from './merge'; 7 | 8 | /** 9 | * Concatenates the provided sequences. 10 | * @param {Iterable} sequences 11 | * @return {Iterable} 12 | */ 13 | export default function concat (...sequences: Iterable[]): Iterable { 14 | return merge(sequences); 15 | } 16 | -------------------------------------------------------------------------------- /src/iterables/empty.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | export const doneResult = Object.freeze({ 7 | done: true, 8 | value: undefined 9 | }) as IteratorReturnResult; 10 | export const emptyIterator = Object.freeze({next () { return doneResult; }}) as Iterator; 11 | export const emptyIterable = Object.freeze({[Symbol.iterator] (): Iterator { return emptyIterator; }}) as Iterable; 12 | export default function (): Iterable { 13 | return emptyIterable; 14 | } 15 | -------------------------------------------------------------------------------- /src/iterables/iterateIndexes.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | 8 | /** 9 | * Returns an iterator that iterates the provided ArrayLike using length and index. 10 | * @param {ArrayLike} source 11 | * @return {Iterable} 12 | */ 13 | export default function iterateIndexes (source: ArrayLike): Iterable { 14 | if(!source) throw new ArgumentNullException('source'); 15 | return { 16 | * [Symbol.iterator] (): Iterator 17 | { 18 | const len = source?.length; 19 | if(len) 20 | { 21 | for(let i = 0; i>} sequences 11 | * @return {Iterable} 12 | */ 13 | export default function merge (sequences: Iterable>): Iterable { 14 | if(!sequences) throw new ArgumentNullException('sequences'); 15 | return { 16 | * [Symbol.iterator] (): Iterator 17 | { 18 | for(const s of sequences) 19 | { 20 | for(const e of s) 21 | { 22 | yield e; 23 | } 24 | } 25 | } 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /src/iterables/range.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | /** 7 | * Generates a sequence of numbers within a specified range. 8 | * @param {number} start 9 | * @param {number} maxInclusive 10 | * @param {number} step 11 | * @returns {Iterable} 12 | */ 13 | export default function range ( 14 | start = 0, 15 | maxInclusive = Infinity, 16 | step = 1): Iterable { 17 | return { 18 | * [Symbol.iterator] (): Iterator 19 | { 20 | for(let i = start; i<=maxInclusive; i += step) 21 | { 22 | yield i; 23 | } 24 | } 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /src/iterables/repeat.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | /** 7 | * Generates a sequence that contains one repeated value. 8 | * @param {T} entry 9 | * @param {number} count The number of times to repeat. 10 | * @return {Iterable} 11 | */ 12 | export default function repeat ( 13 | entry: T, 14 | count: number): Iterable { 15 | return { 16 | * [Symbol.iterator] (): Iterator 17 | { 18 | for(let i = 0; i} sequence The sequence to repeat. 11 | * @param {number} count The number of times to repeat the sequence. 12 | * @return {Iterable} 13 | */ 14 | export default function repeatSequence ( 15 | sequence: Iterable, count: number): Iterable { 16 | if(!sequence) throw new ArgumentNullException('sequence'); 17 | return { 18 | * [Symbol.iterator] (): Iterator 19 | { 20 | for(let i = 0; i} sequences 12 | * @return {Iterable} 13 | */ 14 | export default function union (...sequences: Iterable[]): Iterable { 15 | return distinct(merge(sequences)); 16 | } 17 | -------------------------------------------------------------------------------- /src/predicates/isNotNull.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | type NotNull = T extends null ? never : T; 7 | 8 | /* eslint-ignore */ 9 | export default function isNotNull (e: T): e is NotNull { 10 | return e!==null; 11 | } 12 | -------------------------------------------------------------------------------- /src/predicates/isNotNullOrUndefined.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | /* eslint-ignore */ 7 | export default function isNotNullOrUndefined (e: T): e is NonNullable { 8 | return e!=null; 9 | } 10 | -------------------------------------------------------------------------------- /src/predicates/isNotUndefined.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | type NotUndefined = T extends undefined ? never : T; 7 | 8 | /* eslint-ignore */ 9 | export default function isNotUndefined (e: T): e is NotUndefined { 10 | return e!==undefined; 11 | } 12 | -------------------------------------------------------------------------------- /src/resolutions/asArray.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | 8 | /** 9 | * Returns an array (copy) of all the elements in a sequence if the sequence isn't already an array. 10 | * If the sequence is an array, it's returned as is. 11 | * @param {Iterable} sequence 12 | * @return {T[]} 13 | */ 14 | export default function asArray (sequence: Iterable): T[] { 15 | if(!sequence) throw new ArgumentNullException('sequence'); 16 | if(sequence instanceof Array) return sequence; 17 | const result: T[] = []; 18 | for(const e of sequence) result.push(e); 19 | return result; 20 | } 21 | -------------------------------------------------------------------------------- /src/resolutions/average.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | import InvalidOperationException from '@tsdotnet/exceptions/dist/InvalidOperationException'; 8 | 9 | /** 10 | * Returns the average of a sequence of numbers. 11 | * @param {Iterable} sequence 12 | * @return {number} 13 | */ 14 | export default function average (sequence: Iterable): number { 15 | if(!sequence) throw new ArgumentNullException('sequence'); 16 | let sum = 0, count = 0; 17 | for(const s of sequence) 18 | { 19 | if(isNaN(s)) return NaN; 20 | sum += s; 21 | count++; 22 | } 23 | if(count===0) throw new InvalidOperationException('Sequence is empty.'); 24 | return sum/count; 25 | } 26 | -------------------------------------------------------------------------------- /src/resolutions/contains.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {IterableTransform} from '../IterableTransform'; 7 | import indexOf from './indexOf'; 8 | 9 | /** 10 | * An iterable transform that resolves true if the provided sequence contains the entry. Otherwise false. 11 | * @param {T} entry 12 | * @return {IterableTransform} 13 | */ 14 | export default function contains (entry: T): IterableTransform { 15 | return function(sequence: Iterable): boolean { 16 | return indexOf(entry)(sequence)!== -1; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/resolutions/count.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import aggregate from './aggregate'; 7 | 8 | const a = aggregate((p) => p + 1, 0); 9 | 10 | /** 11 | * Returns the number of entries in a sequence. 12 | * @param {Iterable} sequence 13 | * @return {number} 14 | */ 15 | export default function count (sequence: Iterable): number { 16 | if(sequence instanceof Array) return sequence.length; 17 | return sequence ? a(sequence) : 0; 18 | } 19 | -------------------------------------------------------------------------------- /src/resolutions/hasAny.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import isEmpty from './isEmpty'; 7 | 8 | /** 9 | * Returns true if the sequence is not empty. 10 | * @param {Iterable} sequence 11 | * @return {boolean} 12 | */ 13 | export default function hasAny (sequence: Iterable): boolean { 14 | return !isEmpty(sequence); 15 | } 16 | -------------------------------------------------------------------------------- /src/resolutions/isEmpty.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | /** 6 | * Returns true if the sequence is empty. 7 | * @param {Iterable} sequence 8 | * @return {boolean} 9 | */ 10 | export default function isEmpty (sequence: Iterable): boolean { 11 | // noinspection PointlessBooleanExpressionJS 12 | return !sequence 13 | || sequence instanceof Array && (sequence.length === 0) 14 | || sequence[Symbol.iterator]().next().done===true; 15 | } 16 | -------------------------------------------------------------------------------- /src/resolutions/product.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | 8 | /** 9 | * Returns the product (*) of a sequence of numbers. 10 | * Returns NaN if sequence is empty or if any entries are NaN. 11 | * @param {Iterable} sequence The sequence of numbers to multiply together. 12 | * @return {number} The product of the sequence. 13 | */ 14 | export default function product (sequence: Iterable): number { 15 | if(!sequence) throw new ArgumentNullException('sequence'); 16 | let product = 1, hasEntries = false; 17 | for(const s of sequence) 18 | { 19 | if(isNaN(s)) return NaN; 20 | hasEntries = true; 21 | product *= s; 22 | } 23 | return hasEntries ? product : NaN; 24 | } 25 | -------------------------------------------------------------------------------- /src/resolutions/sequenceEqual.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import {areEqual, EqualityComparison} from '@tsdotnet/compare'; 7 | import areSequencesEqual from '@tsdotnet/compare/dist/areSequencesEqual'; 8 | import {IterableTransform} from '../IterableTransform'; 9 | 10 | /** 11 | * Resolves true if the sequences are equal. 12 | * @param {Iterable} other 13 | * @param {EqualityComparison} equalityComparer 14 | * @return {IterableTransform} 15 | */ 16 | export default function sequenceEqual ( 17 | other: Iterable, 18 | equalityComparer: EqualityComparison = areEqual): IterableTransform { 19 | return function(sequence: Iterable): boolean { 20 | return areSequencesEqual(sequence, other, equalityComparer); 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /src/resolutions/sum.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | 8 | /** 9 | * Returns the sum (+) of a sequence of numbers. 10 | * Returns 0 if sequence is empty. Returns NaN if any entries are NaN. 11 | * @param {Iterable} sequence The sequence of numbers to sum (add+ together). 12 | * @return {number} The sum of the sequence. 13 | */ 14 | export default function sum (sequence: Iterable): number { 15 | if(!sequence) throw new ArgumentNullException('sequence'); 16 | let sum = 0; 17 | for(const s of sequence) 18 | { 19 | if(isNaN(s)) return NaN; 20 | sum += s; 21 | } 22 | return sum; 23 | } 24 | -------------------------------------------------------------------------------- /src/resolutions/sumAndCount.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | 8 | /** 9 | * Returns the sum (.value) of a sequence and the number of entries (.count). 10 | * @param {Iterable} sequence The sequence of numbers to sum and count. 11 | * @return {{value: number; count: number}} The result. 12 | */ 13 | export default function sumAndCount (sequence: Iterable): { value: number; count: number } { 14 | if(!sequence) throw new ArgumentNullException('sequence'); 15 | let sum = 0, count = 0; 16 | for(const s of sequence) 17 | { 18 | if(isNaN(s)) return {value: NaN, count: NaN}; 19 | sum += s; 20 | count++; 21 | } 22 | return { 23 | value: sum, 24 | count: count 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /src/resolutions/toArray.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import ArgumentNullException from '@tsdotnet/exceptions/dist/ArgumentNullException'; 7 | 8 | /** 9 | * Returns an array (copy) of all the elements in a sequence. 10 | * @param {Iterable} sequence 11 | * @return {T[]} 12 | */ 13 | export default function toArray (sequence: Iterable): T[] { 14 | if(!sequence) throw new ArgumentNullException('sequence'); 15 | if(sequence instanceof Array) return sequence.slice(); 16 | const result: T[] = []; 17 | for(const e of sequence) result.push(e); 18 | return result; 19 | } 20 | -------------------------------------------------------------------------------- /src/transforms.ts: -------------------------------------------------------------------------------- 1 | /*! 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | import groupBy, {Grouping, GroupingResult} from './transforms/groupBy'; 7 | import notNull, {NotNull} from './transforms/notNull'; 8 | import notUndefined, {NotUndefined} from './transforms/notUndefined'; 9 | import notNullOrUndefined from './transforms/notNullOrUndefined'; 10 | import rows, {Cell, Row} from './transforms/rows'; 11 | import select from './transforms/select'; 12 | import selectMany from './transforms/selectMany'; 13 | import weave from './transforms/weave'; 14 | 15 | export { 16 | groupBy, 17 | Grouping, 18 | GroupingResult, 19 | notNull, 20 | notNullOrUndefined, 21 | notUndefined, 22 | NotNull, 23 | NotUndefined, 24 | rows, 25 | Cell, 26 | Row, 27 | select, 28 | selectMany, 29 | weave 30 | }; 31 | -------------------------------------------------------------------------------- /src/transforms/notNull.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | export type NotNull = T extends null ? never : T; 7 | 8 | /** 9 | * Filters out null values. 10 | * @param {Iterable} sequence 11 | * @return {Iterable>} 12 | */ 13 | export default function notNull (sequence: Iterable): Iterable> { 14 | return { 15 | * [Symbol.iterator] (): Iterator> 16 | { 17 | for(const e of sequence) if(e!==null) yield e as NotNull; 18 | } 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /src/transforms/notNullOrUndefined.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | /** 7 | * Filters out null or undefined values. 8 | * @param {Iterable} sequence 9 | * @return {Iterable>} 10 | */ 11 | export default function notNullOrUndefined (sequence: Iterable): Iterable> { 12 | return { 13 | * [Symbol.iterator] (): Iterator> 14 | { 15 | for(const e of sequence) if(e!=null) yield e as NonNullable; 16 | } 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /src/transforms/notUndefined.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * @author electricessence / https://github.com/electricessence/ 3 | * @license MIT 4 | */ 5 | 6 | export type NotUndefined = T extends undefined ? never : T; 7 | 8 | /** 9 | * Filters out undefined values. 10 | * @param {Iterable} sequence 11 | * @return {Iterable>} 12 | */ 13 | export default function notUndefined (sequence: Iterable): Iterable> { 14 | return { 15 | * [Symbol.iterator] (): Iterator> 16 | { 17 | for(const e of sequence) if(e!==undefined) yield e as NotUndefined; 18 | } 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /tsconfig.esm.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig", 3 | "compilerOptions": { 4 | "declaration": false, 5 | "module": "es2015", 6 | "outDir": "dist-esm" 7 | }, 8 | "include": [ 9 | "src/**/*" 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": true, 3 | "compilerOptions": { 4 | "declaration": true, 5 | "esModuleInterop": true, 6 | "target": "es2015", 7 | "module": "commonjs", 8 | "strict": true, 9 | "sourceMap": true, 10 | "removeComments": false, 11 | "importHelpers": true, 12 | "moduleResolution": "node", 13 | "outDir": "dist" 14 | }, 15 | "include": [ 16 | "src/**/*" 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "entryPoints": [ 3 | "./src/index.ts", 4 | "./src/Linq.ts", 5 | "./src/LinqExtended.ts" 6 | ], 7 | "out": "docs", 8 | "includeVersion": true, 9 | "excludeExternals": true, 10 | "excludePrivate": true 11 | } 12 | --------------------------------------------------------------------------------