@blackglory/structures 0.14.1 → 0.14.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -45,12 +45,17 @@ function sliceArrayRight<T>(arr: T[], num: number): T[]
45
45
 
46
46
  #### truncateArrayLeft
47
47
  ```ts
48
- function truncateArrayLeft<T>(arr: T[], num: number): void
48
+ function truncateArrayLeft(arr: unknown[], num: number): void
49
49
  ```
50
50
 
51
51
  #### truncateArrayRight
52
52
  ```ts
53
- function truncateArrayRight<T>(arr: T[], num: number): void
53
+ function truncateArrayRight(arr: unknown[], num: number): void
54
+ ```
55
+
56
+ #### clearArray
57
+ ```ts
58
+ function clearArray(arr: unknown[]): void
54
59
  ```
55
60
 
56
61
  ### Emitter
package/lib/array.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export declare function sliceArrayLeft<T>(arr: T[], num: number): T[];
2
2
  export declare function sliceArrayRight<T>(arr: T[], num: number): T[];
3
- export declare function truncateArrayLeft<T>(arr: T[], num: number): void;
4
- export declare function truncateArrayRight<T>(arr: T[], num: number): void;
3
+ export declare function truncateArrayLeft(arr: unknown[], num: number): void;
4
+ export declare function truncateArrayRight(arr: unknown[], num: number): void;
5
+ export declare function clearArray(arr: unknown[]): void;
package/lib/array.js CHANGED
@@ -14,4 +14,7 @@ export function truncateArrayRight(arr, num) {
14
14
  const startIndex = arr.length - num;
15
15
  arr.splice(0, startIndex);
16
16
  }
17
+ export function clearArray(arr) {
18
+ arr.length = 0;
19
+ }
17
20
  //# sourceMappingURL=array.js.map
package/lib/array.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAI,GAAQ,EAAE,GAAW;IACrD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAQ,EAAE,GAAW;IACtD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;IACnC,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAI,GAAQ,EAAE,GAAW;IACxD,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAI,GAAQ,EAAE,GAAW;IACzD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;IACnC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAC3B,CAAC"}
1
+ {"version":3,"file":"array.js","sourceRoot":"","sources":["../src/array.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAI,GAAQ,EAAE,GAAW;IACrD,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,GAAQ,EAAE,GAAW;IACtD,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;IACnC,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAc,EAAE,GAAW;IAC3D,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACrB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;IAClB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAAc,EAAE,GAAW;IAC5D,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAA;IACnC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAc;IACvC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { go } from '@blackglory/go';
1
+ import { go, goAsyncGenerator } from '@blackglory/go';
2
2
  export class AsyncGeneratorEmitter {
3
3
  constructor() {
4
4
  this.map = new Map();
@@ -29,12 +29,12 @@ export class AsyncGeneratorEmitter {
29
29
  }
30
30
  };
31
31
  async function* handler(...args) {
32
- yield* run(() => listener(...args));
32
+ yield* goAsyncGenerator(() => listener(...args));
33
33
  }
34
34
  }
35
35
  once(event, listener) {
36
36
  const removeListener = this.on(event, async function* (...args) {
37
- yield* run(() => listener(...args));
37
+ yield* goAsyncGenerator(() => listener(...args));
38
38
  removeListener();
39
39
  });
40
40
  return removeListener;
@@ -43,7 +43,7 @@ export class AsyncGeneratorEmitter {
43
43
  const listeners = this.map.get(event);
44
44
  if (listeners) {
45
45
  for (const listener of listeners) {
46
- yield* run(() => listener(...args));
46
+ yield* goAsyncGenerator(() => listener(...args));
47
47
  }
48
48
  }
49
49
  }
@@ -52,10 +52,4 @@ export class AsyncGeneratorEmitter {
52
52
  (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.clear();
53
53
  }
54
54
  }
55
- async function* run(fn) {
56
- const generator = fn();
57
- if (generator) {
58
- yield* generator;
59
- }
60
- }
61
55
  //# sourceMappingURL=async-generator-emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"async-generator-emitter.js","sourceRoot":"","sources":["../src/async-generator-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAOnC,MAAM,OAAO,qBAAqB;IAAlC;QASU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IA0EL,CAAC;IAxEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA+C;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyD,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAoD,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAoD,CACrD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,KAAK,SAAU,CAAC,CAAC,OAAO,CACtB,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA+C;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,KAAK,SAAU,CAAC,EACd,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACnC,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,CAAE,IAAI,CACV,KAAQ,EACR,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAkB,KAAQ;;QAC1C,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF;AAED,KAAK,SAAS,CAAC,CAAC,GAAG,CACjB,EAAiF;IAEjF,MAAM,SAAS,GAAG,EAAE,EAAE,CAAA;IACtB,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,CAAC,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"async-generator-emitter.js","sourceRoot":"","sources":["../src/async-generator-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAOrD,MAAM,OAAO,qBAAqB;IAAlC;QASU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IA0EL,CAAC;IAxEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA+C;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyD,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAoD,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAoD,CACrD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,KAAK,SAAU,CAAC,CAAC,OAAO,CACtB,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA+C;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,KAAK,SAAU,CAAC,EACd,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAChD,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,KAAK,CAAC,CAAE,IAAI,CACV,KAAQ,EACR,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAkB,KAAQ;;QAC1C,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { go } from '@blackglory/go';
1
+ import { go, goGenerator } from '@blackglory/go';
2
2
  export class GeneratorEmitter {
3
3
  constructor() {
4
4
  this.map = new Map();
@@ -29,12 +29,12 @@ export class GeneratorEmitter {
29
29
  }
30
30
  };
31
31
  function* handler(...args) {
32
- yield* run(() => listener(...args));
32
+ yield* goGenerator(() => listener(...args));
33
33
  }
34
34
  }
35
35
  once(event, listener) {
36
36
  const removeListener = this.on(event, function* (...args) {
37
- yield* run(() => listener(...args));
37
+ yield* goGenerator(() => listener(...args));
38
38
  removeListener();
39
39
  });
40
40
  return removeListener;
@@ -43,7 +43,7 @@ export class GeneratorEmitter {
43
43
  const listeners = this.map.get(event);
44
44
  if (listeners) {
45
45
  for (const listener of listeners) {
46
- yield* run(() => listener(...args));
46
+ yield* goGenerator(() => listener(...args));
47
47
  }
48
48
  }
49
49
  }
@@ -52,10 +52,4 @@ export class GeneratorEmitter {
52
52
  (_a = this.map.get(event)) === null || _a === void 0 ? void 0 : _a.clear();
53
53
  }
54
54
  }
55
- function* run(fn) {
56
- const generator = fn();
57
- if (generator) {
58
- yield* generator;
59
- }
60
- }
61
55
  //# sourceMappingURL=generator-emitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator-emitter.js","sourceRoot":"","sources":["../src/generator-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAMnC,MAAM,OAAO,gBAAgB;IAA7B;QASU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IA0EL,CAAC;IAxEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA+C;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyD,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAoD,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAoD,CACrD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,QAAS,CAAC,CAAC,OAAO,CAChB,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA+C;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,QAAS,CAAC,EACR,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACnC,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,CAAE,IAAI,CACJ,KAAQ,EACR,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAkB,KAAQ;;QAC1C,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF;AAED,QAAQ,CAAC,CAAC,GAAG,CACX,EAA6C;IAE7C,MAAM,SAAS,GAAG,EAAE,EAAE,CAAA;IACtB,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,CAAC,CAAC,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"generator-emitter.js","sourceRoot":"","sources":["../src/generator-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAMhD,MAAM,OAAO,gBAAgB;IAA7B;QASU,QAAG,GAAG,IAAI,GAAG,EAGlB,CAAA;IA0EL,CAAC;IAxEC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,EAAE,CACA,KAAQ,EACR,QAA+C;QAE/C,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC/B,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAA;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyD,CAAA;gBAC5E,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBACxB,OAAO,GAAG,CAAA;YACZ,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,GAAG,CAAC,OAAoD,CAAC,CAAA;QAE7D,OAAO,GAAG,EAAE;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACpC,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAC7B,OAAoD,CACrD,CAAA;gBACD,IAAI,OAAO,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAA;QAED,QAAS,CAAC,CAAC,OAAO,CAChB,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;IAED,IAAI,CACF,KAAQ,EACR,QAA+C;QAE/C,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAC5B,KAAK,EACL,QAAS,CAAC,EACR,GAAG,IAAuD;YAE1D,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC3C,cAAc,EAAE,CAAA;QAClB,CAAC,CACF,CAAA;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,CAAE,IAAI,CACJ,KAAQ,EACR,GAAG,IAAoB;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAErC,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAkB,KAAQ;;QAC1C,MAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,0CAAE,KAAK,EAAE,CAAA;IAC9B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blackglory/structures",
3
- "version": "0.14.1",
3
+ "version": "0.14.3",
4
4
  "description": "",
5
5
  "files": [
6
6
  "lib",
@@ -65,7 +65,7 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "@blackglory/errors": "^3.0.3",
68
- "@blackglory/go": "^1.1.3",
68
+ "@blackglory/go": "^2.0.0",
69
69
  "extra-timers": "^0.2.6",
70
70
  "extra-utils": "^5.6.0",
71
71
  "iterable-operator": "^5.0.0",
package/src/array.ts CHANGED
@@ -7,13 +7,17 @@ export function sliceArrayRight<T>(arr: T[], num: number): T[] {
7
7
  return arr.slice(startIndex >= 0 ? startIndex : 0)
8
8
  }
9
9
 
10
- export function truncateArrayLeft<T>(arr: T[], num: number): void {
10
+ export function truncateArrayLeft(arr: unknown[], num: number): void {
11
11
  if (arr.length > num) {
12
12
  arr.length = num
13
13
  }
14
14
  }
15
15
 
16
- export function truncateArrayRight<T>(arr: T[], num: number): void {
16
+ export function truncateArrayRight(arr: unknown[], num: number): void {
17
17
  const startIndex = arr.length - num
18
18
  arr.splice(0, startIndex)
19
19
  }
20
+
21
+ export function clearArray(arr: unknown[]): void {
22
+ arr.length = 0
23
+ }
@@ -1,4 +1,4 @@
1
- import { go } from '@blackglory/go'
1
+ import { go, goAsyncGenerator } from '@blackglory/go'
2
2
 
3
3
  type Listener<Args extends unknown[], Yield, Next> = (...args: Args) =>
4
4
  | void
@@ -54,7 +54,7 @@ export class AsyncGeneratorEmitter<
54
54
  async function * handler(
55
55
  ...args: Parameters<Listener<EventToArgs[T], Yield, Next>>
56
56
  ): AsyncGenerator<Yield, void, Next> {
57
- yield* run(() => listener(...args))
57
+ yield* goAsyncGenerator(() => listener(...args))
58
58
  }
59
59
  }
60
60
 
@@ -67,7 +67,7 @@ export class AsyncGeneratorEmitter<
67
67
  , async function * (
68
68
  ...args: Parameters<Listener<EventToArgs[T], Yield, Next>>
69
69
  ): AsyncGenerator<Yield, void, Next> {
70
- yield* run(() => listener(...args))
70
+ yield* goAsyncGenerator(() => listener(...args))
71
71
  removeListener()
72
72
  }
73
73
  )
@@ -83,7 +83,7 @@ export class AsyncGeneratorEmitter<
83
83
 
84
84
  if (listeners) {
85
85
  for (const listener of listeners) {
86
- yield* run(() => listener(...args))
86
+ yield* goAsyncGenerator(() => listener(...args))
87
87
  }
88
88
  }
89
89
  }
@@ -92,12 +92,3 @@ export class AsyncGeneratorEmitter<
92
92
  this.map.get(event)?.clear()
93
93
  }
94
94
  }
95
-
96
- async function* run<Yield, Next>(
97
- fn: () => void | Generator<Yield, void, Next> | AsyncGenerator<Yield, void, Next>
98
- ): AsyncGenerator<Yield, void, Next> {
99
- const generator = fn()
100
- if (generator) {
101
- yield* generator
102
- }
103
- }
@@ -1,4 +1,4 @@
1
- import { go } from '@blackglory/go'
1
+ import { go, goGenerator } from '@blackglory/go'
2
2
 
3
3
  type Listener<Args extends unknown[], Yield, Next> = (...args: Args) =>
4
4
  | void
@@ -53,7 +53,7 @@ export class GeneratorEmitter<
53
53
  function * handler(
54
54
  ...args: Parameters<Listener<EventToArgs[T], Yield, Next>>
55
55
  ): Generator<Yield, void, Next> {
56
- yield* run(() => listener(...args))
56
+ yield* goGenerator(() => listener(...args))
57
57
  }
58
58
  }
59
59
 
@@ -66,7 +66,7 @@ export class GeneratorEmitter<
66
66
  , function * (
67
67
  ...args: Parameters<Listener<EventToArgs[T], Yield, Next>>
68
68
  ): Generator<Yield, void, Next> {
69
- yield* run(() => listener(...args))
69
+ yield* goGenerator(() => listener(...args))
70
70
  removeListener()
71
71
  }
72
72
  )
@@ -82,7 +82,7 @@ export class GeneratorEmitter<
82
82
 
83
83
  if (listeners) {
84
84
  for (const listener of listeners) {
85
- yield* run(() => listener(...args))
85
+ yield* goGenerator(() => listener(...args))
86
86
  }
87
87
  }
88
88
  }
@@ -91,12 +91,3 @@ export class GeneratorEmitter<
91
91
  this.map.get(event)?.clear()
92
92
  }
93
93
  }
94
-
95
- function* run<Yield, Next>(
96
- fn: () => void | Generator<Yield, void, Next>
97
- ): Generator<Yield, void, Next> {
98
- const generator = fn()
99
- if (generator) {
100
- yield* generator
101
- }
102
- }