Class

Watchdog (watchdog)

@ckeditor/ckeditor5-watchdog/src/watchdog

class private

An abstract watchdog class that handles most of the error handling process and the state of the underlying component.

See the Watchdog feature guide to learn the rationale behind it and how to use it.

Filtering

Properties

  • readonly

    crashes : Array.<Object>

    An array of crashes saved as an object with the following properties:

    • message: String,
    • stack: String,
    • date: Number,
    • filename: String | undefined,
    • lineno: Number | undefined,
    • colno: Number | undefined,
  • state : 'initializing' | 'ready' | 'crashed' | 'crashedPermanently' | 'destroyed'

    Specifies the state of the item watched by the watchdog. The state can be one of the following values:

    • initializing – Before the first initialization, and after crashes, before the item is ready.
    • ready – A state when the user can interact with the item.
    • crashed – A state when an error occurs. It quickly changes to initializing or crashedPermanently depending on how many and how frequent errors have been caught recently.
    • crashedPermanently – A state when the watchdog stops reacting to errors and keeps the item it is watching crashed,
    • destroyed – A state when the item is manually destroyed by the user after calling watchdog.destroy().
  • protected

    _crashNumberLimit : Number

  • protected

    _creator : function

    The creation method.

    Related:

  • protected

    _destructor : function

    The destruction method.

    Related:

  • protected

    _item : Object | undefined

    The watched item.

  • protected

    _minimumNonErrorTimePeriod : Number

  • protected

    _now

    Returns the result of the Date.now() call. It can be overridden in tests to mock time as some popular approaches like sinon.useFakeTimers() do not work well with error handling.

  • private

    _listeners : Object.<String, Function>>

    A dictionary of event emitter listeners.

Methods

  • constructor( config )

    Parameters

    config : WatchdogConfig

    The watchdog plugin configuration.

  • destroy()

    Destroys the watchdog and releases the resources.

  • off( eventName, callback )

    Stops listening to the specified event name by removing the callback from event listeners.

    Note that this method differs from the CKEditor 5's default EventEmitterMixin implementation.

    Parameters

    eventName : String

    The event name.

    callback : function

    A callback which will be removed from event listeners.

  • on( eventName, callback )

    Starts listening to a specific event name by registering a callback that will be executed whenever an event with a given name fires.

    Note that this method differs from the CKEditor 5's default EventEmitterMixin implementation.

    Parameters

    eventName : String

    The event name.

    callback : function

    A callback which will be added to event listeners.

  • setCreator( creator )

    Sets the function that is responsible for creating watched items.

    Parameters

    creator : function

    A callback responsible for creating an item. Returns a promise that is resolved when the item is created.

  • setDestructor( destructor )

    Sets the function that is responsible for destroying watched items.

    Parameters

    destructor : function

    A callback that takes the item and returns the promise to the destroying process.

  • protected

    _fire( eventName, args )

    Fires an event with a given event name and arguments.

    Note that this method differs from the CKEditor 5's default EventEmitterMixin implementation.

    Parameters

    eventName : String

    The event name.

    args : *

    Event arguments.

  • protected

    _isErrorComingFromThisItem( error )

    Traverses the error context and the watched item to find out whether the error should be handled by the given item.

    Parameters

    error : CKEditorError
  • protected

    _restart()

    The method responsible for restarting the watched item.

  • protected

    _startErrorHandling()

    Starts error handling by attaching global error handlers.

  • protected

    _stopErrorHandling()

    Stops error handling by detaching global error handlers.

  • private

    _boundErrorHandler()

    Checks if the event error comes from the underlying item and restarts the item.

  • private

    _handleError( error, evt )

    Checks if an error comes from the watched item and restarts it. It reacts to CKEditorError errors only.

    Parameters

    error : Error

    Error.

    evt : ErrorEvent | PromiseRejectionEvent

    An error event.

    Fires

  • private

    _shouldReactToError( error )

    Checks whether an error should be handled by the watchdog.

    Parameters

    error : Error

    An error that was caught by the error handling process.

  • private

    _shouldRestart()

    Checks if the watchdog should restart the underlying item.

Events

  • error( eventInfo )

    Fired when a new CKEditorError error connected to the watchdog instance occurs and the watchdog will react to it.

    watchdog.on( 'error', ( evt, { error, causesRestart } ) => {
    	console.log( 'An error occurred.' );
    } );
    

    Parameters

    eventInfo : EventInfo

    An object containing information about the fired event.