node.events.pas 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. unit node.events;
  2. {$mode objfpc}
  3. {$ModeSwitch externalclass}
  4. interface
  5. uses
  6. JS;
  7. Type
  8. TNJSEventEmitterHandler = reference to procedure(arg : JSValue);
  9. TNJSEventEmitterHandlerArray = array of TNJSEventEmitterHandler;
  10. TNJSEventEmitter = class external name 'EventEmitter' (TJSObject)
  11. class var captureRejections : Boolean;
  12. class var defaultMaxListeners : Integer;
  13. class var errorMonitor : TNJSEventEmitter;
  14. function addListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
  15. function on_(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter; external name 'on';
  16. function once(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
  17. function off(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
  18. function emit(const EventName : String) : Boolean; varargs;
  19. function eventnames : TJSStringDynArray;
  20. function getMaxListeners : Integer;
  21. function listenerCount(const EventName : String) : Integer;
  22. function listeners(const EventName : String) : TNJSEventEmitterHandlerArray;
  23. function prependListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
  24. function prependOnceListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
  25. function removeListener(const EventName : String; Listener : TNJSEventEmitterHandler) : TNJSEventEmitter;
  26. function setMaxListeners(aMax : Integer): TNJSEventEmitter;
  27. function rawListeners(const EventName : String) : TNJSEventEmitterHandlerArray;
  28. end;
  29. TNJSEvents = class external name 'events' (TJSObject)
  30. function once(emitter : TNJSEventEmitter; aName : string) : TJSPromise;
  31. function on_(emitter : TNJSEventEmitter; aName : string) : TJSAsyncIterator;
  32. end;
  33. implementation
  34. end.