@nxtedition/yield 1.0.17 → 1.0.19

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/lib/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export declare function maybeYield(timeout?: number): Promise<void> | null;
7
7
  export declare function doYield<T>(callback: (opaque: T | undefined) => void, opaque?: T): void;
8
8
  export declare function doYield(): Promise<void>;
9
9
  export {};
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;AAahD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI,QAE7D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,QAK9C;AAED,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,WAU3C;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,EACzC,MAAM,CAAC,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,MAAM,GACf,IAAI,CAAA;AACP,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAmClE,wBAAgB,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAA;AACvF,wBAAgB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA"}
package/lib/index.js CHANGED
@@ -1,146 +1,107 @@
1
-
2
-
3
- const kDefaultSchedule =
4
- globalThis.setImmediate ?? ((fn ) => setTimeout(fn, 0))
5
- let yieldSchedule = kDefaultSchedule
6
- const yieldQueue = []
7
-
8
- let yieldIndex = 0
9
- let yieldTimeout = 40
10
- let yieldActive = false
11
- let yieldScheduled = false
12
- let yieldTime = performance.now()
13
-
14
- export function setYieldDispatcher(schedule ) {
15
- yieldSchedule = schedule ?? kDefaultSchedule
1
+ const kDefaultSchedule = globalThis.setImmediate ?? ((fn) => setTimeout(fn, 0));
2
+ let yieldSchedule = kDefaultSchedule;
3
+ const yieldQueue = [];
4
+ let yieldIndex = 0;
5
+ let yieldTimeout = 40;
6
+ let yieldActive = false;
7
+ let yieldScheduled = false;
8
+ let yieldTime = performance.now();
9
+ export function setYieldDispatcher(schedule) {
10
+ yieldSchedule = schedule ?? kDefaultSchedule;
16
11
  }
17
-
18
- export function setYieldTimeout(timeout ) {
19
- if (typeof timeout !== 'number' || timeout < 0) {
20
- throw new TypeError('timeout must be a positive number')
21
- }
22
- yieldTimeout = timeout
12
+ export function setYieldTimeout(timeout) {
13
+ if (typeof timeout !== 'number' || timeout < 0) {
14
+ throw new TypeError('timeout must be a positive number');
15
+ }
16
+ yieldTimeout = timeout;
23
17
  }
24
-
25
- export function shouldYield(timeout ) {
26
- if (timeout === undefined) {
27
- timeout = yieldTimeout
28
- }
29
-
30
- if (!yieldActive && performance.now() - yieldTime >= timeout) {
31
- yieldActive = true
32
- }
33
-
34
- return yieldActive
18
+ export function shouldYield(timeout) {
19
+ if (timeout === undefined) {
20
+ timeout = yieldTimeout;
21
+ }
22
+ if (!yieldActive && performance.now() - yieldTime >= timeout) {
23
+ yieldActive = true;
24
+ }
25
+ return yieldActive;
35
26
  }
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
- export function maybeYield (
44
- callbackOrTimeout ,
45
- opaque ,
46
- timeout ,
47
- ) {
48
- if (
49
- callbackOrTimeout != null &&
50
- typeof callbackOrTimeout !== 'function' &&
51
- typeof callbackOrTimeout !== 'number'
52
- ) {
53
- throw new TypeError('callback must be a function')
54
- }
55
-
56
- const callback = typeof callbackOrTimeout === 'function' ? callbackOrTimeout : undefined
57
- if (timeout === undefined && typeof callbackOrTimeout === 'number') {
58
- timeout = callbackOrTimeout
59
- }
60
-
61
- if (shouldYield(timeout)) {
27
+ export function maybeYield(callbackOrTimeout, opaque, timeout) {
28
+ if (callbackOrTimeout != null &&
29
+ typeof callbackOrTimeout !== 'function' &&
30
+ typeof callbackOrTimeout !== 'number') {
31
+ throw new TypeError('callback must be a function');
32
+ }
33
+ const callback = typeof callbackOrTimeout === 'function' ? callbackOrTimeout : undefined;
34
+ if (timeout === undefined && typeof callbackOrTimeout === 'number') {
35
+ timeout = callbackOrTimeout;
36
+ }
37
+ if (shouldYield(timeout)) {
38
+ if (callback != null) {
39
+ doYield(callback, opaque);
40
+ return;
41
+ }
42
+ return doYield();
43
+ }
62
44
  if (callback != null) {
63
- doYield(callback, opaque)
64
- return
45
+ callback(opaque);
46
+ return;
65
47
  }
66
- return doYield()
67
- }
68
-
69
- if (callback != null) {
70
- callback(opaque)
71
- return
72
- }
73
-
74
- return null
48
+ return null;
75
49
  }
76
-
77
-
78
-
79
- export function doYield (
80
- callback ,
81
- opaque ,
82
- ) {
83
- if (callback != null && typeof callback !== 'function') {
84
- throw new TypeError('callback must be a function')
85
- }
86
-
87
- if (!yieldScheduled) {
88
- yieldScheduled = true
89
- yieldSchedule(dispatchYield)
90
- }
91
-
92
- if (callback == null) {
93
- return new Promise((resolve) => {
94
- yieldQueue.push(resolve, null)
95
- })
96
- }
97
-
98
- yieldQueue.push(callback, opaque)
50
+ export function doYield(callback, opaque) {
51
+ if (callback != null && typeof callback !== 'function') {
52
+ throw new TypeError('callback must be a function');
53
+ }
54
+ if (!yieldScheduled) {
55
+ yieldScheduled = true;
56
+ yieldSchedule(dispatchYield);
57
+ }
58
+ if (callback == null) {
59
+ return new Promise((resolve) => {
60
+ yieldQueue.push(resolve, null);
61
+ });
62
+ }
63
+ yieldQueue.push(callback, opaque);
99
64
  }
100
-
101
65
  function dispatchYield() {
102
- yieldTime = performance.now()
103
- yieldActive = false
104
-
105
- const maxIndex = yieldQueue.length
106
-
107
- while (yieldIndex < maxIndex) {
108
- const resolve = yieldQueue[yieldIndex]
109
- yieldQueue[yieldIndex] = null
110
- yieldIndex += 1
111
-
112
- const opaque = yieldQueue[yieldIndex]
113
- yieldQueue[yieldIndex] = null
114
- yieldIndex += 1
115
-
116
- try {
117
- resolve(opaque)
118
- } catch (err) {
119
- // Isolate the throw: rethrow asynchronously so dispatch continues.
120
- // Otherwise yieldIndex stays mid-loop and the queue gets stuck.
121
- // Materialize the stack now — queueMicrotask severs the sync frame.
122
- if (err instanceof Error) {
123
- void err.stack
124
- }
125
- queueMicrotask(() => {
126
- throw err
127
- })
66
+ yieldTime = performance.now();
67
+ yieldActive = false;
68
+ const maxIndex = yieldQueue.length;
69
+ while (yieldIndex < maxIndex) {
70
+ const resolve = yieldQueue[yieldIndex];
71
+ yieldQueue[yieldIndex] = null;
72
+ yieldIndex += 1;
73
+ const opaque = yieldQueue[yieldIndex];
74
+ yieldQueue[yieldIndex] = null;
75
+ yieldIndex += 1;
76
+ try {
77
+ resolve(opaque);
78
+ }
79
+ catch (err) {
80
+ // Isolate the throw: rethrow asynchronously so dispatch continues.
81
+ // Otherwise yieldIndex stays mid-loop and the queue gets stuck.
82
+ // Materialize the stack now — queueMicrotask severs the sync frame.
83
+ if (err instanceof Error) {
84
+ void err.stack;
85
+ }
86
+ queueMicrotask(() => {
87
+ throw err;
88
+ });
89
+ }
90
+ if (shouldYield()) {
91
+ break;
92
+ }
128
93
  }
129
-
130
- if (shouldYield()) {
131
- break
94
+ if (yieldIndex === yieldQueue.length) {
95
+ yieldScheduled = false;
96
+ yieldQueue.length = 0;
97
+ yieldIndex = 0;
132
98
  }
133
- }
134
-
135
- if (yieldIndex === yieldQueue.length) {
136
- yieldScheduled = false
137
- yieldQueue.length = 0
138
- yieldIndex = 0
139
- } else {
140
- if (yieldIndex > 4 * 1024) {
141
- yieldQueue.splice(0, yieldIndex)
142
- yieldIndex = 0
99
+ else {
100
+ if (yieldIndex > 4 * 1024) {
101
+ yieldQueue.splice(0, yieldIndex);
102
+ yieldIndex = 0;
103
+ }
104
+ yieldSchedule(dispatchYield);
143
105
  }
144
- yieldSchedule(dispatchYield)
145
- }
146
106
  }
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nxtedition/yield",
3
- "version": "1.0.17",
3
+ "version": "1.0.19",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -14,7 +14,7 @@
14
14
  "access": "public"
15
15
  },
16
16
  "scripts": {
17
- "build": "rimraf lib && tsc && amaroc ./src/index.ts && mv src/index.js lib/",
17
+ "build": "rimraf lib && tsc -p tsconfig.build.json",
18
18
  "prepublishOnly": "yarn build",
19
19
  "typecheck": "tsc --noEmit",
20
20
  "test": "node --test",
@@ -23,11 +23,10 @@
23
23
  },
24
24
  "devDependencies": {
25
25
  "@types/node": "^25.5.0",
26
- "amaroc": "^1.0.1",
27
26
  "oxlint-tsgolint": "^0.17.0",
28
27
  "rimraf": "^6.1.3",
29
28
  "tsd": "^0.33.0",
30
29
  "typescript": "^5.9.3"
31
30
  },
32
- "gitHead": "a4a2240c7502c92e407bab917f1bb0b6661cccba"
31
+ "gitHead": "7c9c7457c885c644c7a1e70ef894d4727ce240d6"
33
32
  }