oracle-nosqldb
Version:
Node.js driver for Oracle NoSQL Database
95 lines (88 loc) • 3.64 kB
TypeScript
/*-
* Copyright (c) 2018, 2025 Oracle and/or its affiliates. All rights reserved.
*
* Licensed under the Universal Permissive License v 1.0 as shown at
* https://oss.oracle.com/licenses/upl/
*/
import type { EventEmitter } from "stream";
import type { TableState } from "./constants";
import type { NoSQLError } from "./error";
import type { Operation } from "./param";
import type { ConsumedCapacity } from "./result";
/**
* This interface describes the events emitted by {@link NoSQLClient}
*/
export interface NoSQLClientEvents {
/**
* NoSQLClient error event.
*
* Emitted when any {@link NoSQLClient} method results in error. This
* event is not emitted when automatic retries are performed, only when
* the error is final.
* <p>
* Also mote that this event will not be emitted if it has no listeners,
* so it is not necessary to subscribe to it.
*
* @event
* @param {NoSQLError} err Error of type NoSQLError or one of its subclasses
* @param {Operation} op Object describing operation that
* caused the error, see {@link Operation}
*/
error(err: NoSQLError, op: Operation): void;
/**
* NoSQLClient retryable event.
*
* Emitted when error from {@link NoSQLClient} operation will result in
* automatic retry of operation. It will be emitted on each subsequent
* retry.
* @see {@link RetryConfig} for explanation of retries
*
* @event
* @param {NoSQLError} err Error of type NoSQLError or one of its
* subclasses that caused the retry
* @param {Operation} op Object describing operation that caused the
* error, see {@link Operation}
* @param {number} numRetries Number of retries performed so far for this
* operation, not counting the original API invokation or the retry about
* to be performed
*/
retryable(err: NoSQLError, op: Operation, numRetries: number): void;
/**
* NoSQLClient consumedCapacity event.
*
* Emitted by {@link NoSQLClient} method calls that return
* {@link ConsumedCapacity} as part of their result. These methods
* include all data manipulation and query methods. This event may be
* used to calculate relevant statistsics.
*
* @event
* @param {ConsumedCapacity} consumedCapacity Capacity consumed by the
* method call, {@link ConsumedCapacity}
* @param {Operation} op Object describing operation that returned this
* consumed capacity, see {@link Operation}
*/
consumedCapacity(consumedCapacity: ConsumedCapacity, op: Operation): void;
/**
* NoSQLClient tableState event.
*
* Emitted by {@link NoSQLClient} method calls that return table state as
* part of their result, such as {@link NoSQLClient#getTable},
* {@link NoSQLClient#tableDDL} and {@link NoSQLClient#setTableLimits} and
* also while table is polled waiting for DDL operation completion using
* {@link NoSQLClient#forCompletion}. Can be used to perform actions on a
* table reaching certain state. Note that this event may be emitted
* mutliple times even while the table state did not change.
*
* @event
* @param {string} tableName Table name
* @param {TableState} tableState Current table state, see
* {@link TableState}
*/
tableState(tableName: string, tableState: TableState): void;
}
declare module "nosql_client" {
export interface NoSQLClient extends EventEmitter {
on<EvName extends keyof NoSQLClientEvents>(event: EvName,
listener: NoSQLClientEvents[EvName]): this;
}
}