mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-11 08:45:57 +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
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
JS, Types;
|
JS, Types, node.events;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
@ -250,34 +250,10 @@ type
|
|||||||
procedure warn(const Obj1 : JSValue); varargs;
|
procedure warn(const Obj1 : JSValue); varargs;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TNJSEventEmitterHandler = reference to procedure(arg : JSValue);
|
TNJSEventEmitterHandler = node.events.TNJSEventEmitterHandler;
|
||||||
TNJSEventEmitterHandlerArray = array of TNJSEventEmitterHandler;
|
TNJSEventEmitterHandlerArray = node.events.TNJSEventEmitterHandlerArray;
|
||||||
|
TNJSEventEmitter = node.events.TNJSEventEmitter;
|
||||||
TNJSEventEmitter = class external name 'EventEmitter' (TJSObject)
|
TNJSEvents = node.events.TNJSEventEmitter;
|
||||||
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;
|
|
||||||
|
|
||||||
TNJSTimerCallBack = reference to procedure;
|
TNJSTimerCallBack = reference to procedure;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user