@creejs/commons-lang 2.1.33 → 2.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2840,6 +2840,26 @@
2840
2840
  return chunked
2841
2841
  }
2842
2842
 
2843
+ // owned
2844
+ /**
2845
+ * @template T
2846
+ * @param {Iterator<T>} iterator
2847
+ * @param {number} howMany
2848
+ * @returns {Array<T>}
2849
+ */
2850
+ function take$1 (iterator, howMany) {
2851
+ const rtnVal = [];
2852
+ let next;
2853
+ for (let i = 0; i < howMany && !(next = iterator.next()).done; i++) {
2854
+ rtnVal.push(next.value);
2855
+ }
2856
+ return rtnVal
2857
+ }
2858
+
2859
+ var IteratorUtils = {
2860
+ take: take$1
2861
+ };
2862
+
2843
2863
  // owned
2844
2864
 
2845
2865
  /**
@@ -2851,13 +2871,10 @@
2851
2871
  function length (iterable) {
2852
2872
  TypeAssert.assertIterable(iterable);
2853
2873
  // @ts-ignore
2854
- if (typeof iterable.length !== 'undefined') {
2855
- // @ts-ignore
2856
- return iterable.length
2857
- // @ts-ignore
2858
- } else if (typeof iterable.size !== 'undefined') {
2859
- // @ts-ignore
2860
- return iterable.size
2874
+ const length = iterable.length ?? iterable.size;
2875
+ // @ts-ignore
2876
+ if (typeof length === 'number') {
2877
+ return length
2861
2878
  }
2862
2879
  let counter = 0;
2863
2880
  // eslint-disable-next-line no-unused-vars
@@ -2867,8 +2884,28 @@
2867
2884
  return counter
2868
2885
  }
2869
2886
 
2870
- var IteratorUtils = {
2871
- length
2887
+ /**
2888
+ * @template T
2889
+ * @param {Iterable<T>} iterable
2890
+ * @param {number} howMany
2891
+ * @returns {Array<T>}
2892
+ */
2893
+ function take (iterable, howMany) {
2894
+ // if (length(iterable) <= howMany) {
2895
+ // return [...iterable]
2896
+ // }
2897
+ const iterator = iterable[Symbol.iterator]();
2898
+ const rtnVal = [];
2899
+ let next;
2900
+ for (let i = 0; i < howMany && !(next = iterator.next()).done; i++) {
2901
+ rtnVal.push(next.value);
2902
+ }
2903
+ return rtnVal
2904
+ }
2905
+
2906
+ var IterableUtils = {
2907
+ length,
2908
+ take
2872
2909
  };
2873
2910
 
2874
2911
  /**
@@ -2895,7 +2932,8 @@
2895
2932
  ArrayBufferUtils,
2896
2933
  TimeUtils,
2897
2934
  ArrayUtils,
2898
- IteratorUtils
2935
+ IteratorUtils,
2936
+ IterableUtils
2899
2937
  };
2900
2938
 
2901
2939
  exports.AggregatedError = AggregatedError;
@@ -2905,6 +2943,7 @@
2905
2943
  exports.Exec = ExecUtils;
2906
2944
  exports.ExecUtils = ExecUtils;
2907
2945
  exports.InstanceProxyUtils = InstanceProxyUtils;
2946
+ exports.IterableUtils = IterableUtils;
2908
2947
  exports.IteratorUtils = IteratorUtils;
2909
2948
  exports.Lang = LangUtils;
2910
2949
  exports.LangUtils = LangUtils;