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

  • crashes : Array.<Object>

    readonly

    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().
  • _crashNumberLimit : Number

    protected

    Related:

  • _creator : function

    protected

    The creation method.

  • _destructor : function

    protected

    The destruction method.

  • _item : Object | undefined

    protected

    The watched item.

  • _minimumNonErrorTimePeriod : Number

    protected

    Related:

  • _now

    protected

    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.

  • _listeners : Object.<String, Function>>

    private

    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.

  • _fire( eventName, args )

    protected

    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.

  • _isErrorComingFromThisItem( error )

    protected

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

    Parameters

    error : CKEditorError
  • _restart()

    protected

    The method responsible for restarting the watched item.

  • _startErrorHandling()

    protected

    Starts error handling by attaching global error handlers.

  • _stopErrorHandling()

    protected

    Stops error handling by detaching global error handlers.

  • _boundErrorHandler()

    private

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

  • _handleError( error, evt )

    private

    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

  • _shouldReactToError( error )

    private

    Checks whether an error should be handled by the watchdog.

    Parameters

    error : Error

    An error that was caught by the error handling process.

  • _shouldRestart()

    private

    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.