@tsonic/js-globals 0.2.3 → 0.3.1

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.
Files changed (2) hide show
  1. package/index.d.ts +55 -5
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -150,6 +150,11 @@ declare global {
150
150
  * Calls a defined callback function on each element of an array, and then flattens the result by one level.
151
151
  */
152
152
  flatMap<U>(callback: (value: T, index: int, array: T[]) => U | U[]): U[];
153
+
154
+ /**
155
+ * Returns an iterator over the array elements.
156
+ */
157
+ [Symbol.iterator](): IterableIterator<T>;
153
158
  }
154
159
 
155
160
  interface ReadonlyArray<T> {
@@ -170,6 +175,7 @@ declare global {
170
175
  concat(...items: (T | readonly T[])[]): T[];
171
176
  join(separator?: string): string;
172
177
  at(index: int): T | undefined;
178
+ [Symbol.iterator](): IterableIterator<T>;
173
179
  }
174
180
 
175
181
  interface ArrayConstructor {
@@ -570,17 +576,27 @@ declare global {
570
576
  /**
571
577
  * Iterator types
572
578
  */
573
- interface Iterator<T> {
574
- next(): IteratorResult<T>;
575
- return?(value?: any): IteratorResult<T>;
576
- throw?(e?: any): IteratorResult<T>;
579
+ interface Iterator<T, TReturn = any, TNext = undefined> {
580
+ next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
581
+ return?(value?: TReturn): IteratorResult<T, TReturn>;
582
+ throw?(e?: any): IteratorResult<T, TReturn>;
577
583
  }
578
584
 
579
- interface IteratorResult<T> {
585
+ interface IteratorResult<T, TReturn = any> {
580
586
  done: boolean;
587
+ value: T | TReturn;
588
+ }
589
+
590
+ interface IteratorYieldResult<T> {
591
+ done: false;
581
592
  value: T;
582
593
  }
583
594
 
595
+ interface IteratorReturnResult<TReturn> {
596
+ done: true;
597
+ value: TReturn;
598
+ }
599
+
584
600
  interface Iterable<T> {
585
601
  [Symbol.iterator](): Iterator<T>;
586
602
  }
@@ -589,6 +605,40 @@ declare global {
589
605
  [Symbol.iterator](): IterableIterator<T>;
590
606
  }
591
607
 
608
+ /**
609
+ * Async Iterator types (for for-await loops)
610
+ */
611
+ interface AsyncIterator<T, TReturn = any, TNext = undefined> {
612
+ next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
613
+ return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
614
+ throw?(e?: any): Promise<IteratorResult<T, TReturn>>;
615
+ }
616
+
617
+ interface AsyncIterable<T> {
618
+ [Symbol.asyncIterator](): AsyncIterator<T>;
619
+ }
620
+
621
+ interface AsyncIterableIterator<T> extends AsyncIterator<T> {
622
+ [Symbol.asyncIterator](): AsyncIterableIterator<T>;
623
+ }
624
+
625
+ /**
626
+ * Generator types
627
+ */
628
+ interface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {
629
+ next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
630
+ return(value: TReturn): IteratorResult<T, TReturn>;
631
+ throw(e: any): IteratorResult<T, TReturn>;
632
+ [Symbol.iterator](): Generator<T, TReturn, TNext>;
633
+ }
634
+
635
+ interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> {
636
+ next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
637
+ return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
638
+ throw(e: any): Promise<IteratorResult<T, TReturn>>;
639
+ [Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;
640
+ }
641
+
592
642
  /**
593
643
  * Template literal type utilities
594
644
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsonic/js-globals",
3
- "version": "0.2.3",
3
+ "version": "0.3.1",
4
4
  "description": "Global type definitions for Tsonic JS mode (noLib: true, JavaScript semantics)",
5
5
  "main": "index.d.ts",
6
6
  "types": "index.d.ts",