mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-09 22:55:55 +02:00
* SPlit eventemitter, often encountered in browser code
This commit is contained in:
parent
143a836c5f
commit
b91651683c
44
packages/rtl/node.events.pas
Normal file
44
packages/rtl/node.events.pas
Normal file
@ -0,0 +1,44 @@
|
||||
unit node.events;
|
||||
|
||||
{$mode objfpc}
|
||||
{$ModeSwitch externalclass}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
JS;
|
||||
|
||||
Type
|
||||
TNJSEventEmitterHandler = reference to procedure(arg : JSValue);
|
||||
TNJSEventEmitterHandlerArray = array of TNJSEventEmitterHandler;
|
||||
|
||||
TNJSEventEmitter = class external name 'EventEmitter' (TJSObject)
|
||||
class var captureRejections : Boolean;
|
||||
class var defaultMaxListeners : Integer;
|
||||
class var errorMonitor : TNJSEventEmitter;
|
||||
function addListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function on_(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter; external name 'on';
|
||||
function once(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function off(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function emit(const EventName : String) : Boolean; varargs;
|
||||
function eventnames : TJSStringDynArray;
|
||||
function getMaxListeners : Integer;
|
||||
function listenerCount(const EventName : String) : Integer;
|
||||
function listeners(const EventName : String) : TNJSEventEmitterHandlerArray;
|
||||
function prependListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function prependOnceListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function removeListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function setMaxListeners(aMax : Integer): TNJSEventEmitter;
|
||||
function rawListeners(const EventName : String) : TNJSEventEmitterHandlerArray;
|
||||
end;
|
||||
|
||||
|
||||
TNJSEvents = class external name 'events' (TJSObject)
|
||||
function once(emitter : TNJSEventEmitter; aName : string) : TJSPromise;
|
||||
function on_(emitter : TNJSEventEmitter; aName : string) : TJSAsyncIterator;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
|
@ -18,7 +18,7 @@ unit NodeJS;
|
||||
interface
|
||||
|
||||
uses
|
||||
JS, Types;
|
||||
JS, Types, node.events;
|
||||
|
||||
type
|
||||
|
||||
@ -250,34 +250,10 @@ type
|
||||
procedure warn(const Obj1 : JSValue); varargs;
|
||||
end;
|
||||
|
||||
TNJSEventEmitterHandler = reference to procedure(arg : JSValue);
|
||||
TNJSEventEmitterHandlerArray = array of TNJSEventEmitterHandler;
|
||||
|
||||
TNJSEventEmitter = class external name 'EventEmitter' (TJSObject)
|
||||
class var captureRejections : Boolean;
|
||||
class var defaultMaxListeners : Integer;
|
||||
class var errorMonitor : TNJSEventEmitter;
|
||||
function addListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function on_(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function once(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function off(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function emit(const EventName : String) : Boolean; varargs;
|
||||
function eventnames : TJSStringDynArray;
|
||||
function getMaxListeners : Integer;
|
||||
function listenerCount(const EventName : String) : Integer;
|
||||
function listeners(const EventName : String) : TNJSEventEmitterHandlerArray;
|
||||
function prependListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function prependOnceListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function removeListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
|
||||
function setMaxListeners(aMax : Integer): TNJSEventEmitter;
|
||||
function rawListeners(const EventName : String) : TNJSEventEmitterHandlerArray;
|
||||
end;
|
||||
|
||||
|
||||
TNJSEvents = class external name 'events' (TJSObject)
|
||||
function once(emitter : TNJSEventEmitter; aName : string) : TJSPromise;
|
||||
function on_(emitter : TNJSEventEmitter; aName : string) : TJSAsyncIterator;
|
||||
end;
|
||||
TNJSEventEmitterHandler = node.events.TNJSEventEmitterHandler;
|
||||
TNJSEventEmitterHandlerArray = node.events.TNJSEventEmitterHandlerArray;
|
||||
TNJSEventEmitter = node.events.TNJSEventEmitter;
|
||||
TNJSEvents = node.events.TNJSEventEmitter;
|
||||
|
||||
TNJSTimerCallBack = reference to procedure;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user