@tsonic/js-globals 0.2.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.d.ts +53 -9
  2. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -29,7 +29,7 @@ declare global {
29
29
  /**
30
30
  * Returns the item located at the specified index.
31
31
  */
32
- [n: int]: T;
32
+ [n: number]: T;
33
33
 
34
34
  /**
35
35
  * Appends new elements to the end of an array, and returns the new length.
@@ -154,7 +154,7 @@ declare global {
154
154
 
155
155
  interface ReadonlyArray<T> {
156
156
  readonly length: int;
157
- readonly [n: int]: T;
157
+ readonly [n: number]: T;
158
158
  slice(start?: int, end?: int): T[];
159
159
  indexOf(searchElement: T, fromIndex?: int): int;
160
160
  lastIndexOf(searchElement: T, fromIndex?: int): int;
@@ -570,17 +570,27 @@ declare global {
570
570
  /**
571
571
  * Iterator types
572
572
  */
573
- interface Iterator<T> {
574
- next(): IteratorResult<T>;
575
- return?(value?: any): IteratorResult<T>;
576
- throw?(e?: any): IteratorResult<T>;
573
+ interface Iterator<T, TReturn = any, TNext = undefined> {
574
+ next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
575
+ return?(value?: TReturn): IteratorResult<T, TReturn>;
576
+ throw?(e?: any): IteratorResult<T, TReturn>;
577
577
  }
578
578
 
579
- interface IteratorResult<T> {
579
+ interface IteratorResult<T, TReturn = any> {
580
580
  done: boolean;
581
+ value: T | TReturn;
582
+ }
583
+
584
+ interface IteratorYieldResult<T> {
585
+ done: false;
581
586
  value: T;
582
587
  }
583
588
 
589
+ interface IteratorReturnResult<TReturn> {
590
+ done: true;
591
+ value: TReturn;
592
+ }
593
+
584
594
  interface Iterable<T> {
585
595
  [Symbol.iterator](): Iterator<T>;
586
596
  }
@@ -589,6 +599,40 @@ declare global {
589
599
  [Symbol.iterator](): IterableIterator<T>;
590
600
  }
591
601
 
602
+ /**
603
+ * Async Iterator types (for for-await loops)
604
+ */
605
+ interface AsyncIterator<T, TReturn = any, TNext = undefined> {
606
+ next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
607
+ return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
608
+ throw?(e?: any): Promise<IteratorResult<T, TReturn>>;
609
+ }
610
+
611
+ interface AsyncIterable<T> {
612
+ [Symbol.asyncIterator](): AsyncIterator<T>;
613
+ }
614
+
615
+ interface AsyncIterableIterator<T> extends AsyncIterator<T> {
616
+ [Symbol.asyncIterator](): AsyncIterableIterator<T>;
617
+ }
618
+
619
+ /**
620
+ * Generator types
621
+ */
622
+ interface Generator<T = unknown, TReturn = any, TNext = unknown> extends Iterator<T, TReturn, TNext> {
623
+ next(...args: [] | [TNext]): IteratorResult<T, TReturn>;
624
+ return(value: TReturn): IteratorResult<T, TReturn>;
625
+ throw(e: any): IteratorResult<T, TReturn>;
626
+ [Symbol.iterator](): Generator<T, TReturn, TNext>;
627
+ }
628
+
629
+ interface AsyncGenerator<T = unknown, TReturn = any, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> {
630
+ next(...args: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;
631
+ return(value: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;
632
+ throw(e: any): Promise<IteratorResult<T, TReturn>>;
633
+ [Symbol.asyncIterator](): AsyncGenerator<T, TReturn, TNext>;
634
+ }
635
+
592
636
  /**
593
637
  * Template literal type utilities
594
638
  */
@@ -601,14 +645,14 @@ declare global {
601
645
  * Additional types
602
646
  */
603
647
  interface IArguments {
604
- [index: int]: any;
648
+ [index: number]: any;
605
649
  length: int;
606
650
  callee: Function;
607
651
  }
608
652
 
609
653
  interface ArrayLike<T> {
610
654
  readonly length: int;
611
- readonly [n: int]: T;
655
+ readonly [n: number]: T;
612
656
  }
613
657
  }
614
658
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tsonic/js-globals",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
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",