ferrsign 0.0.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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jango
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Ferrsign
2
+
3
+ High-performance typed signals, optimized for frequent emissions with few listeners.
4
+
5
+ **Status: Alpha** - API may change.
@@ -0,0 +1,45 @@
1
+ export type Callback<T extends unknown[] = []> = (...args: T) => void;
2
+ export interface FerrsignView<T extends unknown[] = []> {
3
+ on(callback: Callback<T>): void;
4
+ once(callback: Callback<T>): void;
5
+ off(callback: Callback<T>): void;
6
+ }
7
+ export declare class Ferrsign<T extends unknown[] = []> implements FerrsignView<T> {
8
+ private slot0Internal;
9
+ private slot1Internal;
10
+ private slot2Internal;
11
+ private slot3Internal;
12
+ private slot4Internal;
13
+ private slot5Internal;
14
+ private slot6Internal;
15
+ private slot7Internal;
16
+ private slot8Internal;
17
+ private slot9Internal;
18
+ private restInternal;
19
+ private onceSetInternal;
20
+ private pendingAddInternal;
21
+ private pendingOnceInternal;
22
+ private emitDepthInternal;
23
+ private dirtyInternal;
24
+ get hasListeners(): boolean;
25
+ on(callback: Callback<T>): void;
26
+ once(callback: Callback<T>): void;
27
+ off(callback: Callback<T>): void;
28
+ emit0(): void;
29
+ emit1(a0: T[0]): void;
30
+ emit2(a0: T[0], a1: T[1]): void;
31
+ emit3(a0: T[0], a1: T[1], a2: T[2]): void;
32
+ private emitRestInternal0;
33
+ private emitRestInternal1;
34
+ private emitRestInternal2;
35
+ private emitRestInternal3;
36
+ private addImmediateInternal;
37
+ private markForRemovalInternal;
38
+ private removeImmediateInternal;
39
+ private postEmitInternal;
40
+ private cleanupSlotsInternal;
41
+ private isInSlotsInternal;
42
+ private hasCallbackInternal;
43
+ private assertNotRegisteredInternal;
44
+ private assertRegisteredInternal;
45
+ }
package/dist/index.js ADDED
@@ -0,0 +1,586 @@
1
+ class Ferrsign {
2
+ constructor() {
3
+ this._private_slot0Internal = undefined;
4
+ this._private_slot1Internal = undefined;
5
+ this._private_slot2Internal = undefined;
6
+ this._private_slot3Internal = undefined;
7
+ this._private_slot4Internal = undefined;
8
+ this._private_slot5Internal = undefined;
9
+ this._private_slot6Internal = undefined;
10
+ this._private_slot7Internal = undefined;
11
+ this._private_slot8Internal = undefined;
12
+ this._private_slot9Internal = undefined;
13
+ this._private_restInternal = undefined;
14
+ this._private_onceSetInternal = undefined;
15
+ this._private_pendingAddInternal = undefined;
16
+ this._private_pendingOnceInternal = undefined;
17
+ this._private_emitDepthInternal = 0;
18
+ this._private_dirtyInternal = false;
19
+ }
20
+ get hasListeners() {
21
+ return this._private_slot0Internal !== undefined;
22
+ }
23
+ on(callback) {
24
+ if ("development" !== "production") {
25
+ this._private_assertNotRegisteredInternal(callback);
26
+ }
27
+ if (this._private_emitDepthInternal > 0) {
28
+ (this._private_pendingAddInternal ?? (this._private_pendingAddInternal = [])).push(callback);
29
+ return;
30
+ }
31
+ this._private_addImmediateInternal(callback);
32
+ }
33
+ once(callback) {
34
+ if ("development" !== "production") {
35
+ this._private_assertNotRegisteredInternal(callback);
36
+ }
37
+ if (this._private_emitDepthInternal > 0) {
38
+ (this._private_pendingAddInternal ?? (this._private_pendingAddInternal = [])).push(callback);
39
+ (this._private_pendingOnceInternal ?? (this._private_pendingOnceInternal = new Set())).add(callback);
40
+ return;
41
+ }
42
+ (this._private_onceSetInternal ?? (this._private_onceSetInternal = new Set())).add(callback);
43
+ this._private_addImmediateInternal(callback);
44
+ }
45
+ off(callback) {
46
+ if (this._private_pendingAddInternal !== undefined) {
47
+ const pendingIndex = this._private_pendingAddInternal.indexOf(callback);
48
+ if (pendingIndex !== -1) {
49
+ this._private_pendingAddInternal.splice(pendingIndex, 1);
50
+ this._private_pendingOnceInternal?.delete(callback);
51
+ return;
52
+ }
53
+ }
54
+ if ("development" !== "production") {
55
+ this._private_assertRegisteredInternal(callback);
56
+ }
57
+ this._private_onceSetInternal?.delete(callback);
58
+ if (this._private_emitDepthInternal > 0) {
59
+ this._private_markForRemovalInternal(callback);
60
+ return;
61
+ }
62
+ this._private_removeImmediateInternal(callback);
63
+ }
64
+ emit0() {
65
+ this._private_emitDepthInternal++;
66
+ if (this._private_slot0Internal !== undefined) {
67
+ this._private_slot0Internal();
68
+ }
69
+ if (this._private_slot1Internal !== undefined) {
70
+ this._private_slot1Internal();
71
+ }
72
+ if (this._private_slot2Internal !== undefined) {
73
+ this._private_slot2Internal();
74
+ }
75
+ if (this._private_slot3Internal !== undefined) {
76
+ this._private_slot3Internal();
77
+ }
78
+ if (this._private_slot4Internal !== undefined) {
79
+ this._private_slot4Internal();
80
+ }
81
+ if (this._private_slot5Internal !== undefined) {
82
+ this._private_slot5Internal();
83
+ }
84
+ if (this._private_slot6Internal !== undefined) {
85
+ this._private_slot6Internal();
86
+ }
87
+ if (this._private_slot7Internal !== undefined) {
88
+ this._private_slot7Internal();
89
+ }
90
+ if (this._private_slot8Internal !== undefined) {
91
+ this._private_slot8Internal();
92
+ }
93
+ if (this._private_slot9Internal !== undefined) {
94
+ this._private_slot9Internal();
95
+ }
96
+ this._private_emitRestInternal0();
97
+ this._private_emitDepthInternal--;
98
+ if (this._private_emitDepthInternal === 0) {
99
+ this._private_postEmitInternal();
100
+ }
101
+ }
102
+ emit1(a0) {
103
+ this._private_emitDepthInternal++;
104
+ if (this._private_slot0Internal !== undefined) {
105
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
106
+ this._private_slot0Internal(a0);
107
+ }
108
+ if (this._private_slot1Internal !== undefined) {
109
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
110
+ this._private_slot1Internal(a0);
111
+ }
112
+ if (this._private_slot2Internal !== undefined) {
113
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
114
+ this._private_slot2Internal(a0);
115
+ }
116
+ if (this._private_slot3Internal !== undefined) {
117
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
118
+ this._private_slot3Internal(a0);
119
+ }
120
+ if (this._private_slot4Internal !== undefined) {
121
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
122
+ this._private_slot4Internal(a0);
123
+ }
124
+ if (this._private_slot5Internal !== undefined) {
125
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
126
+ this._private_slot5Internal(a0);
127
+ }
128
+ if (this._private_slot6Internal !== undefined) {
129
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
130
+ this._private_slot6Internal(a0);
131
+ }
132
+ if (this._private_slot7Internal !== undefined) {
133
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
134
+ this._private_slot7Internal(a0);
135
+ }
136
+ if (this._private_slot8Internal !== undefined) {
137
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
138
+ this._private_slot8Internal(a0);
139
+ }
140
+ if (this._private_slot9Internal !== undefined) {
141
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
142
+ this._private_slot9Internal(a0);
143
+ }
144
+ this._private_emitRestInternal1(a0);
145
+ this._private_emitDepthInternal--;
146
+ if (this._private_emitDepthInternal === 0) {
147
+ this._private_postEmitInternal();
148
+ }
149
+ }
150
+ emit2(a0, a1) {
151
+ this._private_emitDepthInternal++;
152
+ if (this._private_slot0Internal !== undefined) {
153
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
154
+ this._private_slot0Internal(a0, a1);
155
+ }
156
+ if (this._private_slot1Internal !== undefined) {
157
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
158
+ this._private_slot1Internal(a0, a1);
159
+ }
160
+ if (this._private_slot2Internal !== undefined) {
161
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
162
+ this._private_slot2Internal(a0, a1);
163
+ }
164
+ if (this._private_slot3Internal !== undefined) {
165
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
166
+ this._private_slot3Internal(a0, a1);
167
+ }
168
+ if (this._private_slot4Internal !== undefined) {
169
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
170
+ this._private_slot4Internal(a0, a1);
171
+ }
172
+ if (this._private_slot5Internal !== undefined) {
173
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
174
+ this._private_slot5Internal(a0, a1);
175
+ }
176
+ if (this._private_slot6Internal !== undefined) {
177
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
178
+ this._private_slot6Internal(a0, a1);
179
+ }
180
+ if (this._private_slot7Internal !== undefined) {
181
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
182
+ this._private_slot7Internal(a0, a1);
183
+ }
184
+ if (this._private_slot8Internal !== undefined) {
185
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
186
+ this._private_slot8Internal(a0, a1);
187
+ }
188
+ if (this._private_slot9Internal !== undefined) {
189
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
190
+ this._private_slot9Internal(a0, a1);
191
+ }
192
+ this._private_emitRestInternal2(a0, a1);
193
+ this._private_emitDepthInternal--;
194
+ if (this._private_emitDepthInternal === 0) {
195
+ this._private_postEmitInternal();
196
+ }
197
+ }
198
+ emit3(a0, a1, a2) {
199
+ this._private_emitDepthInternal++;
200
+ if (this._private_slot0Internal !== undefined) {
201
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
202
+ this._private_slot0Internal(a0, a1, a2);
203
+ }
204
+ if (this._private_slot1Internal !== undefined) {
205
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
206
+ this._private_slot1Internal(a0, a1, a2);
207
+ }
208
+ if (this._private_slot2Internal !== undefined) {
209
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
210
+ this._private_slot2Internal(a0, a1, a2);
211
+ }
212
+ if (this._private_slot3Internal !== undefined) {
213
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
214
+ this._private_slot3Internal(a0, a1, a2);
215
+ }
216
+ if (this._private_slot4Internal !== undefined) {
217
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
218
+ this._private_slot4Internal(a0, a1, a2);
219
+ }
220
+ if (this._private_slot5Internal !== undefined) {
221
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
222
+ this._private_slot5Internal(a0, a1, a2);
223
+ }
224
+ if (this._private_slot6Internal !== undefined) {
225
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
226
+ this._private_slot6Internal(a0, a1, a2);
227
+ }
228
+ if (this._private_slot7Internal !== undefined) {
229
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
230
+ this._private_slot7Internal(a0, a1, a2);
231
+ }
232
+ if (this._private_slot8Internal !== undefined) {
233
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
234
+ this._private_slot8Internal(a0, a1, a2);
235
+ }
236
+ if (this._private_slot9Internal !== undefined) {
237
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
238
+ this._private_slot9Internal(a0, a1, a2);
239
+ }
240
+ this._private_emitRestInternal3(a0, a1, a2);
241
+ this._private_emitDepthInternal--;
242
+ if (this._private_emitDepthInternal === 0) {
243
+ this._private_postEmitInternal();
244
+ }
245
+ }
246
+ _private_emitRestInternal0() {
247
+ if (this._private_restInternal === undefined) {
248
+ return;
249
+ }
250
+ for (let index = 0; index < this._private_restInternal.length; index++) {
251
+ const callback = this._private_restInternal[index];
252
+ if (callback !== undefined) {
253
+ callback();
254
+ }
255
+ }
256
+ }
257
+ _private_emitRestInternal1(a0) {
258
+ if (this._private_restInternal === undefined) {
259
+ return;
260
+ }
261
+ for (let index = 0; index < this._private_restInternal.length; index++) {
262
+ const callback = this._private_restInternal[index];
263
+ if (callback !== undefined) {
264
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
265
+ callback(a0);
266
+ }
267
+ }
268
+ }
269
+ _private_emitRestInternal2(a0, a1) {
270
+ if (this._private_restInternal === undefined) {
271
+ return;
272
+ }
273
+ for (let index = 0; index < this._private_restInternal.length; index++) {
274
+ const callback = this._private_restInternal[index];
275
+ if (callback !== undefined) {
276
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
277
+ callback(a0, a1);
278
+ }
279
+ }
280
+ }
281
+ _private_emitRestInternal3(a0, a1, a2) {
282
+ if (this._private_restInternal === undefined) {
283
+ return;
284
+ }
285
+ for (let index = 0; index < this._private_restInternal.length; index++) {
286
+ const callback = this._private_restInternal[index];
287
+ if (callback !== undefined) {
288
+ // @ts-expect-error - T extends unknown[], calling with T[0] is safe
289
+ callback(a0, a1, a2);
290
+ }
291
+ }
292
+ }
293
+ _private_addImmediateInternal(callback) {
294
+ if (this._private_slot0Internal === undefined) {
295
+ this._private_slot0Internal = callback;
296
+ return;
297
+ }
298
+ if (this._private_slot1Internal === undefined) {
299
+ this._private_slot1Internal = callback;
300
+ return;
301
+ }
302
+ if (this._private_slot2Internal === undefined) {
303
+ this._private_slot2Internal = callback;
304
+ return;
305
+ }
306
+ if (this._private_slot3Internal === undefined) {
307
+ this._private_slot3Internal = callback;
308
+ return;
309
+ }
310
+ if (this._private_slot4Internal === undefined) {
311
+ this._private_slot4Internal = callback;
312
+ return;
313
+ }
314
+ if (this._private_slot5Internal === undefined) {
315
+ this._private_slot5Internal = callback;
316
+ return;
317
+ }
318
+ if (this._private_slot6Internal === undefined) {
319
+ this._private_slot6Internal = callback;
320
+ return;
321
+ }
322
+ if (this._private_slot7Internal === undefined) {
323
+ this._private_slot7Internal = callback;
324
+ return;
325
+ }
326
+ if (this._private_slot8Internal === undefined) {
327
+ this._private_slot8Internal = callback;
328
+ return;
329
+ }
330
+ if (this._private_slot9Internal === undefined) {
331
+ this._private_slot9Internal = callback;
332
+ return;
333
+ }
334
+ (this._private_restInternal ?? (this._private_restInternal = [])).push(callback);
335
+ }
336
+ _private_markForRemovalInternal(callback) {
337
+ this._private_dirtyInternal = true;
338
+ if (this._private_slot0Internal === callback) {
339
+ this._private_slot0Internal = undefined;
340
+ return;
341
+ }
342
+ if (this._private_slot1Internal === callback) {
343
+ this._private_slot1Internal = undefined;
344
+ return;
345
+ }
346
+ if (this._private_slot2Internal === callback) {
347
+ this._private_slot2Internal = undefined;
348
+ return;
349
+ }
350
+ if (this._private_slot3Internal === callback) {
351
+ this._private_slot3Internal = undefined;
352
+ return;
353
+ }
354
+ if (this._private_slot4Internal === callback) {
355
+ this._private_slot4Internal = undefined;
356
+ return;
357
+ }
358
+ if (this._private_slot5Internal === callback) {
359
+ this._private_slot5Internal = undefined;
360
+ return;
361
+ }
362
+ if (this._private_slot6Internal === callback) {
363
+ this._private_slot6Internal = undefined;
364
+ return;
365
+ }
366
+ if (this._private_slot7Internal === callback) {
367
+ this._private_slot7Internal = undefined;
368
+ return;
369
+ }
370
+ if (this._private_slot8Internal === callback) {
371
+ this._private_slot8Internal = undefined;
372
+ return;
373
+ }
374
+ if (this._private_slot9Internal === callback) {
375
+ this._private_slot9Internal = undefined;
376
+ return;
377
+ }
378
+ if (this._private_restInternal !== undefined) {
379
+ const index = this._private_restInternal.indexOf(callback);
380
+ if (index !== -1) {
381
+ // @ts-expect-error - temporary undefined until cleanup
382
+ this._private_restInternal[index] = undefined;
383
+ }
384
+ }
385
+ }
386
+ _private_removeImmediateInternal(callback) {
387
+ if (this._private_slot0Internal === callback) {
388
+ this._private_slot0Internal = undefined;
389
+ this._private_cleanupSlotsInternal();
390
+ return;
391
+ }
392
+ if (this._private_slot1Internal === callback) {
393
+ this._private_slot1Internal = undefined;
394
+ this._private_cleanupSlotsInternal();
395
+ return;
396
+ }
397
+ if (this._private_slot2Internal === callback) {
398
+ this._private_slot2Internal = undefined;
399
+ this._private_cleanupSlotsInternal();
400
+ return;
401
+ }
402
+ if (this._private_slot3Internal === callback) {
403
+ this._private_slot3Internal = undefined;
404
+ this._private_cleanupSlotsInternal();
405
+ return;
406
+ }
407
+ if (this._private_slot4Internal === callback) {
408
+ this._private_slot4Internal = undefined;
409
+ this._private_cleanupSlotsInternal();
410
+ return;
411
+ }
412
+ if (this._private_slot5Internal === callback) {
413
+ this._private_slot5Internal = undefined;
414
+ this._private_cleanupSlotsInternal();
415
+ return;
416
+ }
417
+ if (this._private_slot6Internal === callback) {
418
+ this._private_slot6Internal = undefined;
419
+ this._private_cleanupSlotsInternal();
420
+ return;
421
+ }
422
+ if (this._private_slot7Internal === callback) {
423
+ this._private_slot7Internal = undefined;
424
+ this._private_cleanupSlotsInternal();
425
+ return;
426
+ }
427
+ if (this._private_slot8Internal === callback) {
428
+ this._private_slot8Internal = undefined;
429
+ this._private_cleanupSlotsInternal();
430
+ return;
431
+ }
432
+ if (this._private_slot9Internal === callback) {
433
+ this._private_slot9Internal = undefined;
434
+ this._private_cleanupSlotsInternal();
435
+ return;
436
+ }
437
+ if (this._private_restInternal !== undefined) {
438
+ const index = this._private_restInternal.indexOf(callback);
439
+ if (index !== -1) {
440
+ this._private_restInternal.splice(index, 1);
441
+ if (this._private_restInternal.length === 0) {
442
+ this._private_restInternal = undefined;
443
+ }
444
+ }
445
+ }
446
+ }
447
+ _private_postEmitInternal() {
448
+ if (this._private_onceSetInternal !== undefined && this._private_onceSetInternal.size > 0) {
449
+ this._private_onceSetInternal.forEach((callback) => {
450
+ this._private_markForRemovalInternal(callback);
451
+ });
452
+ this._private_onceSetInternal = undefined;
453
+ }
454
+ if (this._private_dirtyInternal) {
455
+ this._private_dirtyInternal = false;
456
+ this._private_cleanupSlotsInternal();
457
+ }
458
+ if (this._private_pendingAddInternal !== undefined &&
459
+ this._private_pendingAddInternal.length > 0) {
460
+ for (let index = 0; index < this._private_pendingAddInternal.length; index++) {
461
+ const callback = this._private_pendingAddInternal[index];
462
+ if (this._private_pendingOnceInternal?.has(callback) === true) {
463
+ (this._private_onceSetInternal ?? (this._private_onceSetInternal = new Set())).add(callback);
464
+ }
465
+ this._private_addImmediateInternal(callback);
466
+ }
467
+ this._private_pendingAddInternal = undefined;
468
+ this._private_pendingOnceInternal = undefined;
469
+ }
470
+ }
471
+ _private_cleanupSlotsInternal() {
472
+ const valid = [];
473
+ if (this._private_slot0Internal !== undefined) {
474
+ valid.push(this._private_slot0Internal);
475
+ }
476
+ if (this._private_slot1Internal !== undefined) {
477
+ valid.push(this._private_slot1Internal);
478
+ }
479
+ if (this._private_slot2Internal !== undefined) {
480
+ valid.push(this._private_slot2Internal);
481
+ }
482
+ if (this._private_slot3Internal !== undefined) {
483
+ valid.push(this._private_slot3Internal);
484
+ }
485
+ if (this._private_slot4Internal !== undefined) {
486
+ valid.push(this._private_slot4Internal);
487
+ }
488
+ if (this._private_slot5Internal !== undefined) {
489
+ valid.push(this._private_slot5Internal);
490
+ }
491
+ if (this._private_slot6Internal !== undefined) {
492
+ valid.push(this._private_slot6Internal);
493
+ }
494
+ if (this._private_slot7Internal !== undefined) {
495
+ valid.push(this._private_slot7Internal);
496
+ }
497
+ if (this._private_slot8Internal !== undefined) {
498
+ valid.push(this._private_slot8Internal);
499
+ }
500
+ if (this._private_slot9Internal !== undefined) {
501
+ valid.push(this._private_slot9Internal);
502
+ }
503
+ if (this._private_restInternal !== undefined) {
504
+ for (let index = 0; index < this._private_restInternal.length; index++) {
505
+ const callback = this._private_restInternal[index];
506
+ if (callback !== undefined) {
507
+ valid.push(callback);
508
+ }
509
+ }
510
+ this._private_restInternal = undefined;
511
+ }
512
+ const count = valid.length;
513
+ this._private_slot0Internal = count > 0 ? valid[0] : undefined;
514
+ this._private_slot1Internal = count > 1 ? valid[1] : undefined;
515
+ this._private_slot2Internal = count > 2 ? valid[2] : undefined;
516
+ this._private_slot3Internal = count > 3 ? valid[3] : undefined;
517
+ this._private_slot4Internal = count > 4 ? valid[4] : undefined;
518
+ this._private_slot5Internal = count > 5 ? valid[5] : undefined;
519
+ this._private_slot6Internal = count > 6 ? valid[6] : undefined;
520
+ this._private_slot7Internal = count > 7 ? valid[7] : undefined;
521
+ this._private_slot8Internal = count > 8 ? valid[8] : undefined;
522
+ this._private_slot9Internal = count > 9 ? valid[9] : undefined;
523
+ if (count > 10) {
524
+ this._private_restInternal = valid.slice(10);
525
+ }
526
+ }
527
+ _private_isInSlotsInternal(callback) {
528
+ if (this._private_slot0Internal === callback) {
529
+ return true;
530
+ }
531
+ if (this._private_slot1Internal === callback) {
532
+ return true;
533
+ }
534
+ if (this._private_slot2Internal === callback) {
535
+ return true;
536
+ }
537
+ if (this._private_slot3Internal === callback) {
538
+ return true;
539
+ }
540
+ if (this._private_slot4Internal === callback) {
541
+ return true;
542
+ }
543
+ if (this._private_slot5Internal === callback) {
544
+ return true;
545
+ }
546
+ if (this._private_slot6Internal === callback) {
547
+ return true;
548
+ }
549
+ if (this._private_slot7Internal === callback) {
550
+ return true;
551
+ }
552
+ if (this._private_slot8Internal === callback) {
553
+ return true;
554
+ }
555
+ if (this._private_slot9Internal === callback) {
556
+ return true;
557
+ }
558
+ return false;
559
+ }
560
+ _private_hasCallbackInternal(callback) {
561
+ if (this._private_isInSlotsInternal(callback)) {
562
+ return true;
563
+ }
564
+ if (this._private_restInternal?.includes(callback) === true) {
565
+ return true;
566
+ }
567
+ if (this._private_pendingAddInternal?.includes(callback) === true) {
568
+ return true;
569
+ }
570
+ return false;
571
+ }
572
+ _private_assertNotRegisteredInternal(callback) {
573
+ if (this._private_hasCallbackInternal(callback)) {
574
+ throw new Error("Ferrsign.on: callback already registered");
575
+ }
576
+ }
577
+ _private_assertRegisteredInternal(callback) {
578
+ if (!this._private_isInSlotsInternal(callback) &&
579
+ this._private_restInternal?.includes(callback) !== true) {
580
+ throw new Error("Ferrsign.off: callback not registered");
581
+ }
582
+ }
583
+ }
584
+
585
+ export { Ferrsign };
586
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["export type Callback<T extends unknown[] = []> = (...args: T) => void;\n\nexport interface FerrsignView<T extends unknown[] = []> {\n on(callback: Callback<T>): void;\n once(callback: Callback<T>): void;\n off(callback: Callback<T>): void;\n}\n\nexport class Ferrsign<T extends unknown[] = []> implements FerrsignView<T> {\n private slot0Internal: Callback<T> | undefined = undefined;\n private slot1Internal: Callback<T> | undefined = undefined;\n private slot2Internal: Callback<T> | undefined = undefined;\n private slot3Internal: Callback<T> | undefined = undefined;\n private slot4Internal: Callback<T> | undefined = undefined;\n private slot5Internal: Callback<T> | undefined = undefined;\n private slot6Internal: Callback<T> | undefined = undefined;\n private slot7Internal: Callback<T> | undefined = undefined;\n private slot8Internal: Callback<T> | undefined = undefined;\n private slot9Internal: Callback<T> | undefined = undefined;\n private restInternal: Callback<T>[] | undefined = undefined;\n\n private onceSetInternal: Set<Callback<T>> | undefined = undefined;\n\n private pendingAddInternal: Callback<T>[] | undefined = undefined;\n private pendingOnceInternal: Set<Callback<T>> | undefined = undefined;\n\n private emitDepthInternal = 0;\n private dirtyInternal = false;\n\n public get hasListeners(): boolean {\n return this.slot0Internal !== undefined;\n }\n\n public on(callback: Callback<T>): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.assertNotRegisteredInternal(callback);\n }\n\n if (this.emitDepthInternal > 0) {\n (this.pendingAddInternal ??= []).push(callback);\n return;\n }\n\n this.addImmediateInternal(callback);\n }\n\n public once(callback: Callback<T>): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.assertNotRegisteredInternal(callback);\n }\n\n if (this.emitDepthInternal > 0) {\n (this.pendingAddInternal ??= []).push(callback);\n (this.pendingOnceInternal ??= new Set()).add(callback);\n return;\n }\n\n (this.onceSetInternal ??= new Set()).add(callback);\n this.addImmediateInternal(callback);\n }\n\n public off(callback: Callback<T>): void {\n if (this.pendingAddInternal !== undefined) {\n const pendingIndex = this.pendingAddInternal.indexOf(callback);\n if (pendingIndex !== -1) {\n this.pendingAddInternal.splice(pendingIndex, 1);\n this.pendingOnceInternal?.delete(callback);\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this.assertRegisteredInternal(callback);\n }\n\n this.onceSetInternal?.delete(callback);\n\n if (this.emitDepthInternal > 0) {\n this.markForRemovalInternal(callback);\n return;\n }\n\n this.removeImmediateInternal(callback);\n }\n\n public emit0(): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n (this.slot0Internal as () => void)();\n }\n if (this.slot1Internal !== undefined) {\n (this.slot1Internal as () => void)();\n }\n if (this.slot2Internal !== undefined) {\n (this.slot2Internal as () => void)();\n }\n if (this.slot3Internal !== undefined) {\n (this.slot3Internal as () => void)();\n }\n if (this.slot4Internal !== undefined) {\n (this.slot4Internal as () => void)();\n }\n if (this.slot5Internal !== undefined) {\n (this.slot5Internal as () => void)();\n }\n if (this.slot6Internal !== undefined) {\n (this.slot6Internal as () => void)();\n }\n if (this.slot7Internal !== undefined) {\n (this.slot7Internal as () => void)();\n }\n if (this.slot8Internal !== undefined) {\n (this.slot8Internal as () => void)();\n }\n if (this.slot9Internal !== undefined) {\n (this.slot9Internal as () => void)();\n }\n this.emitRestInternal0();\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n public emit1(a0: T[0]): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot0Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot1Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot1Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot2Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot2Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot3Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot3Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot4Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot4Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot5Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot5Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot6Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot6Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot7Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot7Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot8Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot8Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot9Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot9Internal as (a0: T[0]) => void)(a0);\n }\n this.emitRestInternal1(a0);\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n public emit2(a0: T[0], a1: T[1]): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot0Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot1Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot1Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot2Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot2Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot3Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot3Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot4Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot4Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot5Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot5Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot6Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot6Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot7Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot7Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot8Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot8Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot9Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot9Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n this.emitRestInternal2(a0, a1);\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n public emit3(a0: T[0], a1: T[1], a2: T[2]): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot0Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot1Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot1Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot2Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot2Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot3Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot3Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot4Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot4Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot5Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot5Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot6Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot6Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot7Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot7Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot8Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot8Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot9Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot9Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n this.emitRestInternal3(a0, a1, a2);\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n private emitRestInternal0(): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n (callback as () => void)();\n }\n }\n }\n\n private emitRestInternal1(a0: T[0]): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (callback as (a0: T[0]) => void)(a0);\n }\n }\n }\n\n private emitRestInternal2(a0: T[0], a1: T[1]): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (callback as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n }\n }\n\n private emitRestInternal3(a0: T[0], a1: T[1], a2: T[2]): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (callback as (a0: T[0], a1: T[1], a2: T[2]) => void)(a0, a1, a2);\n }\n }\n }\n\n private addImmediateInternal(callback: Callback<T>): void {\n if (this.slot0Internal === undefined) {\n this.slot0Internal = callback;\n return;\n }\n if (this.slot1Internal === undefined) {\n this.slot1Internal = callback;\n return;\n }\n if (this.slot2Internal === undefined) {\n this.slot2Internal = callback;\n return;\n }\n if (this.slot3Internal === undefined) {\n this.slot3Internal = callback;\n return;\n }\n if (this.slot4Internal === undefined) {\n this.slot4Internal = callback;\n return;\n }\n if (this.slot5Internal === undefined) {\n this.slot5Internal = callback;\n return;\n }\n if (this.slot6Internal === undefined) {\n this.slot6Internal = callback;\n return;\n }\n if (this.slot7Internal === undefined) {\n this.slot7Internal = callback;\n return;\n }\n if (this.slot8Internal === undefined) {\n this.slot8Internal = callback;\n return;\n }\n if (this.slot9Internal === undefined) {\n this.slot9Internal = callback;\n return;\n }\n (this.restInternal ??= []).push(callback);\n }\n\n private markForRemovalInternal(callback: Callback<T>): void {\n this.dirtyInternal = true;\n\n if (this.slot0Internal === callback) {\n this.slot0Internal = undefined;\n return;\n }\n if (this.slot1Internal === callback) {\n this.slot1Internal = undefined;\n return;\n }\n if (this.slot2Internal === callback) {\n this.slot2Internal = undefined;\n return;\n }\n if (this.slot3Internal === callback) {\n this.slot3Internal = undefined;\n return;\n }\n if (this.slot4Internal === callback) {\n this.slot4Internal = undefined;\n return;\n }\n if (this.slot5Internal === callback) {\n this.slot5Internal = undefined;\n return;\n }\n if (this.slot6Internal === callback) {\n this.slot6Internal = undefined;\n return;\n }\n if (this.slot7Internal === callback) {\n this.slot7Internal = undefined;\n return;\n }\n if (this.slot8Internal === callback) {\n this.slot8Internal = undefined;\n return;\n }\n if (this.slot9Internal === callback) {\n this.slot9Internal = undefined;\n return;\n }\n\n if (this.restInternal !== undefined) {\n const index = this.restInternal.indexOf(callback);\n if (index !== -1) {\n // @ts-expect-error - temporary undefined until cleanup\n this.restInternal[index] = undefined;\n }\n }\n }\n\n private removeImmediateInternal(callback: Callback<T>): void {\n if (this.slot0Internal === callback) {\n this.slot0Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot1Internal === callback) {\n this.slot1Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot2Internal === callback) {\n this.slot2Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot3Internal === callback) {\n this.slot3Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot4Internal === callback) {\n this.slot4Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot5Internal === callback) {\n this.slot5Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot6Internal === callback) {\n this.slot6Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot7Internal === callback) {\n this.slot7Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot8Internal === callback) {\n this.slot8Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot9Internal === callback) {\n this.slot9Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n\n if (this.restInternal !== undefined) {\n const index = this.restInternal.indexOf(callback);\n if (index !== -1) {\n this.restInternal.splice(index, 1);\n if (this.restInternal.length === 0) {\n this.restInternal = undefined;\n }\n }\n }\n }\n\n private postEmitInternal(): void {\n if (this.onceSetInternal !== undefined && this.onceSetInternal.size > 0) {\n this.onceSetInternal.forEach((callback) => {\n this.markForRemovalInternal(callback);\n });\n this.onceSetInternal = undefined;\n }\n\n if (this.dirtyInternal) {\n this.dirtyInternal = false;\n this.cleanupSlotsInternal();\n }\n\n if (\n this.pendingAddInternal !== undefined &&\n this.pendingAddInternal.length > 0\n ) {\n for (let index = 0; index < this.pendingAddInternal.length; index++) {\n const callback = this.pendingAddInternal[index];\n if (this.pendingOnceInternal?.has(callback) === true) {\n (this.onceSetInternal ??= new Set()).add(callback);\n }\n this.addImmediateInternal(callback);\n }\n this.pendingAddInternal = undefined;\n this.pendingOnceInternal = undefined;\n }\n }\n\n private cleanupSlotsInternal(): void {\n const valid: Callback<T>[] = [];\n\n if (this.slot0Internal !== undefined) {\n valid.push(this.slot0Internal);\n }\n if (this.slot1Internal !== undefined) {\n valid.push(this.slot1Internal);\n }\n if (this.slot2Internal !== undefined) {\n valid.push(this.slot2Internal);\n }\n if (this.slot3Internal !== undefined) {\n valid.push(this.slot3Internal);\n }\n if (this.slot4Internal !== undefined) {\n valid.push(this.slot4Internal);\n }\n if (this.slot5Internal !== undefined) {\n valid.push(this.slot5Internal);\n }\n if (this.slot6Internal !== undefined) {\n valid.push(this.slot6Internal);\n }\n if (this.slot7Internal !== undefined) {\n valid.push(this.slot7Internal);\n }\n if (this.slot8Internal !== undefined) {\n valid.push(this.slot8Internal);\n }\n if (this.slot9Internal !== undefined) {\n valid.push(this.slot9Internal);\n }\n\n if (this.restInternal !== undefined) {\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n valid.push(callback);\n }\n }\n this.restInternal = undefined;\n }\n\n const count = valid.length;\n\n this.slot0Internal = count > 0 ? valid[0] : undefined;\n this.slot1Internal = count > 1 ? valid[1] : undefined;\n this.slot2Internal = count > 2 ? valid[2] : undefined;\n this.slot3Internal = count > 3 ? valid[3] : undefined;\n this.slot4Internal = count > 4 ? valid[4] : undefined;\n this.slot5Internal = count > 5 ? valid[5] : undefined;\n this.slot6Internal = count > 6 ? valid[6] : undefined;\n this.slot7Internal = count > 7 ? valid[7] : undefined;\n this.slot8Internal = count > 8 ? valid[8] : undefined;\n this.slot9Internal = count > 9 ? valid[9] : undefined;\n\n if (count > 10) {\n this.restInternal = valid.slice(10);\n }\n }\n\n private isInSlotsInternal(callback: Callback<T>): boolean {\n if (this.slot0Internal === callback) {\n return true;\n }\n if (this.slot1Internal === callback) {\n return true;\n }\n if (this.slot2Internal === callback) {\n return true;\n }\n if (this.slot3Internal === callback) {\n return true;\n }\n if (this.slot4Internal === callback) {\n return true;\n }\n if (this.slot5Internal === callback) {\n return true;\n }\n if (this.slot6Internal === callback) {\n return true;\n }\n if (this.slot7Internal === callback) {\n return true;\n }\n if (this.slot8Internal === callback) {\n return true;\n }\n if (this.slot9Internal === callback) {\n return true;\n }\n return false;\n }\n\n private hasCallbackInternal(callback: Callback<T>): boolean {\n if (this.isInSlotsInternal(callback)) {\n return true;\n }\n if (this.restInternal?.includes(callback) === true) {\n return true;\n }\n if (this.pendingAddInternal?.includes(callback) === true) {\n return true;\n }\n return false;\n }\n\n private assertNotRegisteredInternal(callback: Callback<T>): void {\n if (this.hasCallbackInternal(callback)) {\n throw new Error(\"Ferrsign.on: callback already registered\");\n }\n }\n\n private assertRegisteredInternal(callback: Callback<T>): void {\n if (\n !this.isInSlotsInternal(callback) &&\n this.restInternal?.includes(callback) !== true\n ) {\n throw new Error(\"Ferrsign.off: callback not registered\");\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ class i{constructor(){this.i=void 0,this.t=void 0,this.h=void 0,this.o=void 0,this.v=void 0,this.l=void 0,this._=void 0,this.u=void 0,this.m=void 0,this.p=void 0,this.I=void 0,this.R=void 0,this.S=void 0,this.k=void 0,this.F=0,this.C=!1}get hasListeners(){return void 0!==this.i}on(i){this.F>0?(this.S??(this.S=[])).push(i):this.L(i)}once(i){if(this.F>0)return(this.S??(this.S=[])).push(i),void(this.k??(this.k=new Set)).add(i);(this.R??(this.R=new Set)).add(i),this.L(i)}off(i){if(void 0!==this.S){const t=this.S.indexOf(i);if(-1!==t)return this.S.splice(t,1),void this.k?.delete(i)}this.R?.delete(i),this.F>0?this.N(i):this.j(i)}emit0(){this.F++,void 0!==this.i&&this.i(),void 0!==this.t&&this.t(),void 0!==this.h&&this.h(),void 0!==this.o&&this.o(),void 0!==this.v&&this.v(),void 0!==this.l&&this.l(),void 0!==this._&&this._(),void 0!==this.u&&this.u(),void 0!==this.m&&this.m(),void 0!==this.p&&this.p(),this.q(),this.F--,0===this.F&&this.A()}emit1(i){this.F++,void 0!==this.i&&this.i(i),void 0!==this.t&&this.t(i),void 0!==this.h&&this.h(i),void 0!==this.o&&this.o(i),void 0!==this.v&&this.v(i),void 0!==this.l&&this.l(i),void 0!==this._&&this._(i),void 0!==this.u&&this.u(i),void 0!==this.m&&this.m(i),void 0!==this.p&&this.p(i),this.B(i),this.F--,0===this.F&&this.A()}emit2(i,t){this.F++,void 0!==this.i&&this.i(i,t),void 0!==this.t&&this.t(i,t),void 0!==this.h&&this.h(i,t),void 0!==this.o&&this.o(i,t),void 0!==this.v&&this.v(i,t),void 0!==this.l&&this.l(i,t),void 0!==this._&&this._(i,t),void 0!==this.u&&this.u(i,t),void 0!==this.m&&this.m(i,t),void 0!==this.p&&this.p(i,t),this.D(i,t),this.F--,0===this.F&&this.A()}emit3(i,t,s){this.F++,void 0!==this.i&&this.i(i,t,s),void 0!==this.t&&this.t(i,t,s),void 0!==this.h&&this.h(i,t,s),void 0!==this.o&&this.o(i,t,s),void 0!==this.v&&this.v(i,t,s),void 0!==this.l&&this.l(i,t,s),void 0!==this._&&this._(i,t,s),void 0!==this.u&&this.u(i,t,s),void 0!==this.m&&this.m(i,t,s),void 0!==this.p&&this.p(i,t,s),this.G(i,t,s),this.F--,0===this.F&&this.A()}q(){if(void 0!==this.I)for(let i=0;this.I.length>i;i++){const t=this.I[i];void 0!==t&&t()}}B(i){if(void 0!==this.I)for(let t=0;this.I.length>t;t++){const s=this.I[t];void 0!==s&&s(i)}}D(i,t){if(void 0!==this.I)for(let s=0;this.I.length>s;s++){const h=this.I[s];void 0!==h&&h(i,t)}}G(i,t,s){if(void 0!==this.I)for(let h=0;this.I.length>h;h++){const o=this.I[h];void 0!==o&&o(i,t,s)}}L(i){void 0!==this.i?void 0!==this.t?void 0!==this.h?void 0!==this.o?void 0!==this.v?void 0!==this.l?void 0!==this._?void 0!==this.u?void 0!==this.m?void 0!==this.p?(this.I??(this.I=[])).push(i):this.p=i:this.m=i:this.u=i:this._=i:this.l=i:this.v=i:this.o=i:this.h=i:this.t=i:this.i=i}N(i){if(this.C=!0,this.i!==i)if(this.t!==i)if(this.h!==i)if(this.o!==i)if(this.v!==i)if(this.l!==i)if(this._!==i)if(this.u!==i)if(this.m!==i)if(this.p!==i){if(void 0!==this.I){const t=this.I.indexOf(i);-1!==t&&(this.I[t]=void 0)}}else this.p=void 0;else this.m=void 0;else this.u=void 0;else this._=void 0;else this.l=void 0;else this.v=void 0;else this.o=void 0;else this.h=void 0;else this.t=void 0;else this.i=void 0}j(i){if(this.i===i)return this.i=void 0,void this.H();if(this.t===i)return this.t=void 0,void this.H();if(this.h===i)return this.h=void 0,void this.H();if(this.o===i)return this.o=void 0,void this.H();if(this.v===i)return this.v=void 0,void this.H();if(this.l===i)return this.l=void 0,void this.H();if(this._===i)return this._=void 0,void this.H();if(this.u===i)return this.u=void 0,void this.H();if(this.m===i)return this.m=void 0,void this.H();if(this.p===i)return this.p=void 0,void this.H();if(void 0!==this.I){const t=this.I.indexOf(i);-1!==t&&(this.I.splice(t,1),0===this.I.length&&(this.I=void 0))}}A(){if(void 0!==this.R&&this.R.size>0&&(this.R.forEach(i=>{this.N(i)}),this.R=void 0),this.C&&(this.C=!1,this.H()),void 0!==this.S&&this.S.length>0){for(let i=0;this.S.length>i;i++){const t=this.S[i];!0===this.k?.has(t)&&(this.R??(this.R=new Set)).add(t),this.L(t)}this.S=void 0,this.k=void 0}}H(){const i=[];if(void 0!==this.i&&i.push(this.i),void 0!==this.t&&i.push(this.t),void 0!==this.h&&i.push(this.h),void 0!==this.o&&i.push(this.o),void 0!==this.v&&i.push(this.v),void 0!==this.l&&i.push(this.l),void 0!==this._&&i.push(this._),void 0!==this.u&&i.push(this.u),void 0!==this.m&&i.push(this.m),void 0!==this.p&&i.push(this.p),void 0!==this.I){for(let t=0;this.I.length>t;t++){const s=this.I[t];void 0!==s&&i.push(s)}this.I=void 0}const t=i.length;this.i=t>0?i[0]:void 0,this.t=t>1?i[1]:void 0,this.h=t>2?i[2]:void 0,this.o=t>3?i[3]:void 0,this.v=t>4?i[4]:void 0,this.l=t>5?i[5]:void 0,this._=t>6?i[6]:void 0,this.u=t>7?i[7]:void 0,this.m=t>8?i[8]:void 0,this.p=t>9?i[9]:void 0,t>10&&(this.I=i.slice(10))}J(i){return this.i===i||this.t===i||this.h===i||this.o===i||this.v===i||this.l===i||this._===i||this.u===i||this.m===i||this.p===i}K(i){return!!this.J(i)||!0===this.I?.includes(i)||!0===this.S?.includes(i)}M(i){if(this.K(i))throw Error("Ferrsign.on: callback already registered")}O(i){if(!this.J(i)&&!0!==this.I?.includes(i))throw Error("Ferrsign.off: callback not registered")}}export{i as Ferrsign};
2
+ //# sourceMappingURL=index.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.min.js","sources":["../src/index.ts"],"sourcesContent":["export type Callback<T extends unknown[] = []> = (...args: T) => void;\n\nexport interface FerrsignView<T extends unknown[] = []> {\n on(callback: Callback<T>): void;\n once(callback: Callback<T>): void;\n off(callback: Callback<T>): void;\n}\n\nexport class Ferrsign<T extends unknown[] = []> implements FerrsignView<T> {\n private slot0Internal: Callback<T> | undefined = undefined;\n private slot1Internal: Callback<T> | undefined = undefined;\n private slot2Internal: Callback<T> | undefined = undefined;\n private slot3Internal: Callback<T> | undefined = undefined;\n private slot4Internal: Callback<T> | undefined = undefined;\n private slot5Internal: Callback<T> | undefined = undefined;\n private slot6Internal: Callback<T> | undefined = undefined;\n private slot7Internal: Callback<T> | undefined = undefined;\n private slot8Internal: Callback<T> | undefined = undefined;\n private slot9Internal: Callback<T> | undefined = undefined;\n private restInternal: Callback<T>[] | undefined = undefined;\n\n private onceSetInternal: Set<Callback<T>> | undefined = undefined;\n\n private pendingAddInternal: Callback<T>[] | undefined = undefined;\n private pendingOnceInternal: Set<Callback<T>> | undefined = undefined;\n\n private emitDepthInternal = 0;\n private dirtyInternal = false;\n\n public get hasListeners(): boolean {\n return this.slot0Internal !== undefined;\n }\n\n public on(callback: Callback<T>): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.assertNotRegisteredInternal(callback);\n }\n\n if (this.emitDepthInternal > 0) {\n (this.pendingAddInternal ??= []).push(callback);\n return;\n }\n\n this.addImmediateInternal(callback);\n }\n\n public once(callback: Callback<T>): void {\n if (process.env.NODE_ENV !== \"production\") {\n this.assertNotRegisteredInternal(callback);\n }\n\n if (this.emitDepthInternal > 0) {\n (this.pendingAddInternal ??= []).push(callback);\n (this.pendingOnceInternal ??= new Set()).add(callback);\n return;\n }\n\n (this.onceSetInternal ??= new Set()).add(callback);\n this.addImmediateInternal(callback);\n }\n\n public off(callback: Callback<T>): void {\n if (this.pendingAddInternal !== undefined) {\n const pendingIndex = this.pendingAddInternal.indexOf(callback);\n if (pendingIndex !== -1) {\n this.pendingAddInternal.splice(pendingIndex, 1);\n this.pendingOnceInternal?.delete(callback);\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n this.assertRegisteredInternal(callback);\n }\n\n this.onceSetInternal?.delete(callback);\n\n if (this.emitDepthInternal > 0) {\n this.markForRemovalInternal(callback);\n return;\n }\n\n this.removeImmediateInternal(callback);\n }\n\n public emit0(): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n (this.slot0Internal as () => void)();\n }\n if (this.slot1Internal !== undefined) {\n (this.slot1Internal as () => void)();\n }\n if (this.slot2Internal !== undefined) {\n (this.slot2Internal as () => void)();\n }\n if (this.slot3Internal !== undefined) {\n (this.slot3Internal as () => void)();\n }\n if (this.slot4Internal !== undefined) {\n (this.slot4Internal as () => void)();\n }\n if (this.slot5Internal !== undefined) {\n (this.slot5Internal as () => void)();\n }\n if (this.slot6Internal !== undefined) {\n (this.slot6Internal as () => void)();\n }\n if (this.slot7Internal !== undefined) {\n (this.slot7Internal as () => void)();\n }\n if (this.slot8Internal !== undefined) {\n (this.slot8Internal as () => void)();\n }\n if (this.slot9Internal !== undefined) {\n (this.slot9Internal as () => void)();\n }\n this.emitRestInternal0();\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n public emit1(a0: T[0]): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot0Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot1Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot1Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot2Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot2Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot3Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot3Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot4Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot4Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot5Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot5Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot6Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot6Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot7Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot7Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot8Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot8Internal as (a0: T[0]) => void)(a0);\n }\n if (this.slot9Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot9Internal as (a0: T[0]) => void)(a0);\n }\n this.emitRestInternal1(a0);\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n public emit2(a0: T[0], a1: T[1]): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot0Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot1Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot1Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot2Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot2Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot3Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot3Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot4Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot4Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot5Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot5Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot6Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot6Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot7Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot7Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot8Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot8Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n if (this.slot9Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot9Internal as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n this.emitRestInternal2(a0, a1);\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n public emit3(a0: T[0], a1: T[1], a2: T[2]): void {\n this.emitDepthInternal++;\n\n if (this.slot0Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot0Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot1Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot1Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot2Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot2Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot3Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot3Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot4Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot4Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot5Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot5Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot6Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot6Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot7Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot7Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot8Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot8Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n if (this.slot9Internal !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (this.slot9Internal as (a0: T[0], a1: T[1], a2: T[2]) => void)(\n a0,\n a1,\n a2,\n );\n }\n this.emitRestInternal3(a0, a1, a2);\n\n this.emitDepthInternal--;\n if (this.emitDepthInternal === 0) {\n this.postEmitInternal();\n }\n }\n\n private emitRestInternal0(): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n (callback as () => void)();\n }\n }\n }\n\n private emitRestInternal1(a0: T[0]): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (callback as (a0: T[0]) => void)(a0);\n }\n }\n }\n\n private emitRestInternal2(a0: T[0], a1: T[1]): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (callback as (a0: T[0], a1: T[1]) => void)(a0, a1);\n }\n }\n }\n\n private emitRestInternal3(a0: T[0], a1: T[1], a2: T[2]): void {\n if (this.restInternal === undefined) {\n return;\n }\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n // @ts-expect-error - T extends unknown[], calling with T[0] is safe\n (callback as (a0: T[0], a1: T[1], a2: T[2]) => void)(a0, a1, a2);\n }\n }\n }\n\n private addImmediateInternal(callback: Callback<T>): void {\n if (this.slot0Internal === undefined) {\n this.slot0Internal = callback;\n return;\n }\n if (this.slot1Internal === undefined) {\n this.slot1Internal = callback;\n return;\n }\n if (this.slot2Internal === undefined) {\n this.slot2Internal = callback;\n return;\n }\n if (this.slot3Internal === undefined) {\n this.slot3Internal = callback;\n return;\n }\n if (this.slot4Internal === undefined) {\n this.slot4Internal = callback;\n return;\n }\n if (this.slot5Internal === undefined) {\n this.slot5Internal = callback;\n return;\n }\n if (this.slot6Internal === undefined) {\n this.slot6Internal = callback;\n return;\n }\n if (this.slot7Internal === undefined) {\n this.slot7Internal = callback;\n return;\n }\n if (this.slot8Internal === undefined) {\n this.slot8Internal = callback;\n return;\n }\n if (this.slot9Internal === undefined) {\n this.slot9Internal = callback;\n return;\n }\n (this.restInternal ??= []).push(callback);\n }\n\n private markForRemovalInternal(callback: Callback<T>): void {\n this.dirtyInternal = true;\n\n if (this.slot0Internal === callback) {\n this.slot0Internal = undefined;\n return;\n }\n if (this.slot1Internal === callback) {\n this.slot1Internal = undefined;\n return;\n }\n if (this.slot2Internal === callback) {\n this.slot2Internal = undefined;\n return;\n }\n if (this.slot3Internal === callback) {\n this.slot3Internal = undefined;\n return;\n }\n if (this.slot4Internal === callback) {\n this.slot4Internal = undefined;\n return;\n }\n if (this.slot5Internal === callback) {\n this.slot5Internal = undefined;\n return;\n }\n if (this.slot6Internal === callback) {\n this.slot6Internal = undefined;\n return;\n }\n if (this.slot7Internal === callback) {\n this.slot7Internal = undefined;\n return;\n }\n if (this.slot8Internal === callback) {\n this.slot8Internal = undefined;\n return;\n }\n if (this.slot9Internal === callback) {\n this.slot9Internal = undefined;\n return;\n }\n\n if (this.restInternal !== undefined) {\n const index = this.restInternal.indexOf(callback);\n if (index !== -1) {\n // @ts-expect-error - temporary undefined until cleanup\n this.restInternal[index] = undefined;\n }\n }\n }\n\n private removeImmediateInternal(callback: Callback<T>): void {\n if (this.slot0Internal === callback) {\n this.slot0Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot1Internal === callback) {\n this.slot1Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot2Internal === callback) {\n this.slot2Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot3Internal === callback) {\n this.slot3Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot4Internal === callback) {\n this.slot4Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot5Internal === callback) {\n this.slot5Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot6Internal === callback) {\n this.slot6Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot7Internal === callback) {\n this.slot7Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot8Internal === callback) {\n this.slot8Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n if (this.slot9Internal === callback) {\n this.slot9Internal = undefined;\n this.cleanupSlotsInternal();\n return;\n }\n\n if (this.restInternal !== undefined) {\n const index = this.restInternal.indexOf(callback);\n if (index !== -1) {\n this.restInternal.splice(index, 1);\n if (this.restInternal.length === 0) {\n this.restInternal = undefined;\n }\n }\n }\n }\n\n private postEmitInternal(): void {\n if (this.onceSetInternal !== undefined && this.onceSetInternal.size > 0) {\n this.onceSetInternal.forEach((callback) => {\n this.markForRemovalInternal(callback);\n });\n this.onceSetInternal = undefined;\n }\n\n if (this.dirtyInternal) {\n this.dirtyInternal = false;\n this.cleanupSlotsInternal();\n }\n\n if (\n this.pendingAddInternal !== undefined &&\n this.pendingAddInternal.length > 0\n ) {\n for (let index = 0; index < this.pendingAddInternal.length; index++) {\n const callback = this.pendingAddInternal[index];\n if (this.pendingOnceInternal?.has(callback) === true) {\n (this.onceSetInternal ??= new Set()).add(callback);\n }\n this.addImmediateInternal(callback);\n }\n this.pendingAddInternal = undefined;\n this.pendingOnceInternal = undefined;\n }\n }\n\n private cleanupSlotsInternal(): void {\n const valid: Callback<T>[] = [];\n\n if (this.slot0Internal !== undefined) {\n valid.push(this.slot0Internal);\n }\n if (this.slot1Internal !== undefined) {\n valid.push(this.slot1Internal);\n }\n if (this.slot2Internal !== undefined) {\n valid.push(this.slot2Internal);\n }\n if (this.slot3Internal !== undefined) {\n valid.push(this.slot3Internal);\n }\n if (this.slot4Internal !== undefined) {\n valid.push(this.slot4Internal);\n }\n if (this.slot5Internal !== undefined) {\n valid.push(this.slot5Internal);\n }\n if (this.slot6Internal !== undefined) {\n valid.push(this.slot6Internal);\n }\n if (this.slot7Internal !== undefined) {\n valid.push(this.slot7Internal);\n }\n if (this.slot8Internal !== undefined) {\n valid.push(this.slot8Internal);\n }\n if (this.slot9Internal !== undefined) {\n valid.push(this.slot9Internal);\n }\n\n if (this.restInternal !== undefined) {\n for (let index = 0; index < this.restInternal.length; index++) {\n const callback = this.restInternal[index];\n if (callback !== undefined) {\n valid.push(callback);\n }\n }\n this.restInternal = undefined;\n }\n\n const count = valid.length;\n\n this.slot0Internal = count > 0 ? valid[0] : undefined;\n this.slot1Internal = count > 1 ? valid[1] : undefined;\n this.slot2Internal = count > 2 ? valid[2] : undefined;\n this.slot3Internal = count > 3 ? valid[3] : undefined;\n this.slot4Internal = count > 4 ? valid[4] : undefined;\n this.slot5Internal = count > 5 ? valid[5] : undefined;\n this.slot6Internal = count > 6 ? valid[6] : undefined;\n this.slot7Internal = count > 7 ? valid[7] : undefined;\n this.slot8Internal = count > 8 ? valid[8] : undefined;\n this.slot9Internal = count > 9 ? valid[9] : undefined;\n\n if (count > 10) {\n this.restInternal = valid.slice(10);\n }\n }\n\n private isInSlotsInternal(callback: Callback<T>): boolean {\n if (this.slot0Internal === callback) {\n return true;\n }\n if (this.slot1Internal === callback) {\n return true;\n }\n if (this.slot2Internal === callback) {\n return true;\n }\n if (this.slot3Internal === callback) {\n return true;\n }\n if (this.slot4Internal === callback) {\n return true;\n }\n if (this.slot5Internal === callback) {\n return true;\n }\n if (this.slot6Internal === callback) {\n return true;\n }\n if (this.slot7Internal === callback) {\n return true;\n }\n if (this.slot8Internal === callback) {\n return true;\n }\n if (this.slot9Internal === callback) {\n return true;\n }\n return false;\n }\n\n private hasCallbackInternal(callback: Callback<T>): boolean {\n if (this.isInSlotsInternal(callback)) {\n return true;\n }\n if (this.restInternal?.includes(callback) === true) {\n return true;\n }\n if (this.pendingAddInternal?.includes(callback) === true) {\n return true;\n }\n return false;\n }\n\n private assertNotRegisteredInternal(callback: Callback<T>): void {\n if (this.hasCallbackInternal(callback)) {\n throw new Error(\"Ferrsign.on: callback already registered\");\n }\n }\n\n private assertRegisteredInternal(callback: Callback<T>): void {\n if (\n !this.isInSlotsInternal(callback) &&\n this.restInternal?.includes(callback) !== true\n ) {\n throw new Error(\"Ferrsign.off: callback not registered\");\n }\n }\n}\n"],"names":["Ferrsign","constructor","this","_private_slot0Internal","undefined","_private_slot1Internal","_private_slot2Internal","_private_slot3Internal","_private_slot4Internal","_private_slot5Internal","_private_slot6Internal","_private_slot7Internal","_private_slot8Internal","_private_slot9Internal","_private_restInternal","_private_onceSetInternal","_private_pendingAddInternal","_private_pendingOnceInternal","_private_emitDepthInternal","_private_dirtyInternal","hasListeners","on","callback","push","_private_addImmediateInternal","once","Set","add","off","pendingIndex","indexOf","splice","delete","_private_markForRemovalInternal","_private_removeImmediateInternal","emit0","emit1","a0","_private_emitRestInternal1","emit2","a1","_private_emitRestInternal2","emit3","a2","_private_emitRestInternal0","index","length","_private_emitRestInternal3","_private_postEmitInternal","size","forEach","has","_private_cleanupSlotsInternal","valid","count","slice","_private_isInSlotsInternal","_private_hasCallbackInternal","includes","_private_assertNotRegisteredInternal","Error","_private_assertRegisteredInternal"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "ferrsign",
3
+ "version": "0.0.1",
4
+ "description": "High-performance typed signals for frequent emissions",
5
+ "scripts": {
6
+ "clean": "rm -rf dist",
7
+ "build": "npm run clean && rollup -c",
8
+ "build:prod": "npm run clean && NODE_ENV=production rollup -c",
9
+ "prepublishOnly": "npm run build:prod"
10
+ },
11
+ "main": "dist/index.js",
12
+ "module": "dist/index.js",
13
+ "types": "dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "import": {
18
+ "development": "./dist/index.js",
19
+ "production": "./dist/index.min.js",
20
+ "default": "./dist/index.min.js"
21
+ }
22
+ },
23
+ "./package.json": "./package.json"
24
+ },
25
+ "files": [
26
+ "dist"
27
+ ],
28
+ "sideEffects": false,
29
+ "keywords": [
30
+ "signals",
31
+ "events",
32
+ "playable",
33
+ "mobile-ads",
34
+ "performance",
35
+ "typescript"
36
+ ],
37
+ "author": "jango",
38
+ "license": "MIT",
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "git+https://github.com/jango-git/ferrsign.git"
42
+ },
43
+ "type": "module",
44
+ "devDependencies": {
45
+ "@rollup/plugin-node-resolve": "^16.0.1",
46
+ "@rollup/plugin-terser": "^0.4.4",
47
+ "@types/node": "^25.0.2",
48
+ "@typescript-eslint/eslint-plugin": "^8.32.0",
49
+ "@typescript-eslint/parser": "^8.32.0",
50
+ "eslint": "^9.26.0",
51
+ "rollup": "^4.40.2",
52
+ "rollup-plugin-typescript2": "^0.36.0",
53
+ "ts-transformer-minify-privates": "^1.0.0",
54
+ "typescript": "^5.8.3"
55
+ }
56
+ }