first commit

This commit is contained in:
2024-01-19 11:09:11 +01:00
commit b18af7a943
29473 changed files with 4500547 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
import mod from "./src/index.js";
export default mod;
export const EventEmitterAsyncResource = mod.EventEmitterAsyncResource;

View File

@@ -0,0 +1,30 @@
/// <reference types="node" />
import { EventEmitter } from 'events';
import { AsyncResource } from 'async_hooks';
declare const kEventEmitter: unique symbol;
declare const kAsyncResource: unique symbol;
declare type EventEmitterOptions = typeof EventEmitter extends {
new (options?: infer T): EventEmitter;
} ? T : never;
declare type AsyncResourceOptions = typeof AsyncResource extends {
new (name: string, options?: infer T): AsyncResource;
} ? T : never;
declare type Options = EventEmitterOptions & AsyncResourceOptions & {
name?: string;
};
declare class EventEmitterReferencingAsyncResource extends AsyncResource {
[kEventEmitter]: EventEmitter;
constructor(ee: EventEmitter, type: string, options?: AsyncResourceOptions);
get eventEmitter(): EventEmitter;
}
declare class EventEmitterAsyncResource extends EventEmitter {
[kAsyncResource]: EventEmitterReferencingAsyncResource;
constructor(options?: Options | string);
emit(event: string | symbol, ...args: any[]): boolean;
emitDestroy(): void;
asyncId(): number;
triggerAsyncId(): number;
get asyncResource(): EventEmitterReferencingAsyncResource;
static get EventEmitterAsyncResource(): typeof EventEmitterAsyncResource;
}
export = EventEmitterAsyncResource;

View File

@@ -0,0 +1,47 @@
"use strict";
const events_1 = require("events");
const async_hooks_1 = require("async_hooks");
const kEventEmitter = Symbol('kEventEmitter');
const kAsyncResource = Symbol('kAsyncResource');
class EventEmitterReferencingAsyncResource extends async_hooks_1.AsyncResource {
constructor(ee, type, options) {
super(type, options);
this[kEventEmitter] = ee;
}
get eventEmitter() {
return this[kEventEmitter];
}
}
class EventEmitterAsyncResource extends events_1.EventEmitter {
constructor(options) {
let name;
if (typeof options === 'string') {
name = options;
options = undefined;
}
else {
name = (options === null || options === void 0 ? void 0 : options.name) || new.target.name;
}
super(options);
this[kAsyncResource] =
new EventEmitterReferencingAsyncResource(this, name, options);
}
emit(event, ...args) {
return this.asyncResource.runInAsyncScope(super.emit, this, event, ...args);
}
emitDestroy() {
this.asyncResource.emitDestroy();
}
asyncId() {
return this.asyncResource.asyncId();
}
triggerAsyncId() {
return this.asyncResource.triggerAsyncId();
}
get asyncResource() {
return this[kAsyncResource];
}
static get EventEmitterAsyncResource() { return EventEmitterAsyncResource; }
}
module.exports = EventEmitterAsyncResource;
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,mCAAsC;AACtC,6CAA4C;AAE5C,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9C,MAAM,cAAc,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAchD,MAAM,oCAAqC,SAAQ,2BAAa;IAG9D,YAAa,EAAgB,EAAE,IAAY,EAAE,OAA8B;QACzE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,yBAA0B,SAAQ,qBAAY;IAGlD,YAAa,OAA0B;QACrC,IAAI,IAAI,CAAC;QACT,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC/B,IAAI,GAAG,OAAO,CAAC;YACf,OAAO,GAAG,SAAS,CAAC;SACrB;aAAM;YACL,IAAI,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,KAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;SACzC;QACD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,cAAc,CAAC;YAClB,IAAI,oCAAoC,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,CAAE,KAAsB,EAAE,GAAG,IAAW;QAC1C,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CACvC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,KAAK,yBAAyB,KAAM,OAAO,yBAAyB,CAAC,CAAC,CAAC;CAC9E;AAED,iBAAS,yBAAyB,CAAC"}