diff --git a/ably.d.ts b/ably.d.ts index 8b5c4fad72..2b843a8dc0 100644 --- a/ably.d.ts +++ b/ably.d.ts @@ -360,16 +360,19 @@ declare namespace Types { } // Common Listeners - type paginatedResultCallback = (error: ErrorInfo, results: PaginatedResult) => void; - type standardCallback = (error: ErrorInfo, results: any) => void; + type StandardCallback = { + (err: ErrorInfo): void; + (err: null, result: T): void; + }; + type paginatedResultCallback = StandardCallback>; type messageCallback = (message: T) => void; - type errorCallback = (error: ErrorInfo) => void; + type errorCallback = (error?: ErrorInfo) => void; type channelEventCallback = (changeStateChange: ChannelStateChange) => void; type connectionEventCallback = (connectionStateChange: ConnectionStateChange) => void; - type timeCallback = (error: ErrorInfo, time: number) => void; - type realtimePresenceGetCallback = (error: ErrorInfo, messages: PresenceMessage[]) => void; - type tokenDetailsCallback = (error: ErrorInfo, Results: TokenDetails) => void; - type tokenRequestCallback = (error: ErrorInfo, Results: TokenRequest) => void; + type timeCallback = StandardCallback; + type realtimePresenceGetCallback = StandardCallback; + type tokenDetailsCallback = StandardCallback; + type tokenRequestCallback = StandardCallback; type fromEncoded = (JsonObject: any, channelOptions?: ChannelOptions) => T; type fromEncodedArray = (JsonArray: any[], channelOptions?: ChannelOptions) => T[]; @@ -401,7 +404,7 @@ declare namespace Types { static Callbacks: typeof Types.RestCallbacks; auth: Types.AuthCallbacks; channels: Types.Channels; - request: (method: string, path: string, params?: any, body?: any[] | any, headers?: any, callback?: (error: Types.ErrorInfo, response: Types.HttpPaginatedResponse) => void) => void; + request: (method: string, path: string, params?: any, body?: any[] | any, headers?: any, callback?: Types.StandardCallback) => void; stats: (paramsOrCallback?: Types.paginatedResultCallback | any, callback?: Types.paginatedResultCallback) => void; time: (callback?: Types.timeCallback) => void; push: Types.PushCallbacks; @@ -430,7 +433,7 @@ declare namespace Types { auth: Types.AuthCallbacks; channels: Types.Channels; connection: Types.ConnectionCallbacks; - request: (method: string, path: string, params?: any, body?: any[] | any, headers?: any, callback?: (error: Types.ErrorInfo, response: Types.HttpPaginatedResponse) => void) => void; + request: (method: string, path: string, params?: any, body?: any[] | any, headers?: any, callback?: Types.StandardCallback) => void; stats: (paramsOrCallback?: Types.paginatedResultCallback | any, callback?: Types.paginatedResultCallback) => void; time: (callback?: Types.timeCallback) => void; push: Types.PushCallbacks; @@ -480,7 +483,7 @@ declare namespace Types { class RealtimePresenceCallbacks extends RealtimePresenceBase { get: (paramsOrCallback?: realtimePresenceGetCallback | RealtimePresenceParams, callback?: realtimePresenceGetCallback) => void; history: (paramsOrCallback?: RealtimeHistoryParams | paginatedResultCallback, callback?: paginatedResultCallback) => void; - subscribe: (presenceOrListener: PresenceAction | messageCallback | Array, listener?: messageCallback, callbackWhenAttached?: standardCallback) => void; + subscribe: (presenceOrListener: PresenceAction | messageCallback | Array, listener?: messageCallback, callbackWhenAttached?: errorCallback) => void; enter: (data?: errorCallback | any, callback?: errorCallback) => void; update: (data?: errorCallback | any, callback?: errorCallback) => void; leave: (data?: errorCallback | any, callback?: errorCallback) => void; @@ -528,11 +531,11 @@ declare namespace Types { class RealtimeChannelCallbacks extends RealtimeChannelBase { presence: RealtimePresenceCallbacks; - attach: (callback?: standardCallback) => void; - detach: (callback?: standardCallback) => void; + attach: (callback?: errorCallback) => void; + detach: (callback?: errorCallback) => void; history: (paramsOrCallback?: RealtimeHistoryParams | paginatedResultCallback, callback?: paginatedResultCallback) => void; setOptions: (options: ChannelOptions, callback?: errorCallback) => void; - subscribe: (eventOrCallback: messageCallback | string | Array, listener?: messageCallback, callbackWhenAttached?: standardCallback) => void; + subscribe: (eventOrCallback: messageCallback | string | Array, listener?: messageCallback, callbackWhenAttached?: errorCallback) => void; publish: (messagesOrName: any, messageDataOrCallback?: errorCallback | any, callback?: errorCallback) => void; whenState: (targetState: ChannelState, callback: channelEventCallback) => void; } @@ -602,8 +605,8 @@ declare namespace Types { } interface Crypto { - generateRandomKey: (callback: (error: ErrorInfo, key: CipherKey) => void) => void; - getDefaultParams: (params: CipherParamOptions, callback: (error?: ErrorInfo, params?: CipherParams) => void) => void; + generateRandomKey: (callback: Types.StandardCallback) => void; + getDefaultParams: (params: CipherParamOptions, callback: Types.StandardCallback) => void; } class ConnectionBase extends EventEmitter { @@ -618,7 +621,7 @@ declare namespace Types { } class ConnectionCallbacks extends ConnectionBase { - ping: (callback?: (error: ErrorInfo, responseTime: number) => void) => void; + ping: (callback?: Types.StandardCallback) => void; whenState: (targetState: ConnectionState, callback: connectionEventCallback) => void; } @@ -681,8 +684,8 @@ declare namespace Types { } class PushDeviceRegistrationsCallbacks { - save: (deviceDetails: DeviceDetails, callback?: (error: ErrorInfo, deviceDetails: DeviceDetails) => void) => void; - get: (deviceIdOrDetails: DeviceDetails | string, callback: (error: ErrorInfo, deviceDetails: DeviceDetails) => void) => void; + save: (deviceDetails: DeviceDetails, callback?: Types.StandardCallback) => void; + get: (deviceIdOrDetails: DeviceDetails | string, callback: Types.StandardCallback) => void; list: (params: DeviceRegistrationParams, callback: paginatedResultCallback) => void; remove: (deviceIdOrDetails: DeviceDetails | string, callback?: errorCallback) => void; removeWhere: (params: DeviceRegistrationParams, callback?: errorCallback) => void; @@ -697,7 +700,7 @@ declare namespace Types { } class PushChannelSubscriptionsCallbacks { - save: (subscription: PushChannelSubscription, callback?: (error: ErrorInfo, subscription: PushChannelSubscription) => void) => void; + save: (subscription: PushChannelSubscription, callback?: Types.StandardCallback) => void; list: (params: PushChannelSubscriptionParams, callback: paginatedResultCallback) => void; listChannels: (params: PushChannelsParams, callback: paginatedResultCallback) => void; remove: (subscription: PushChannelSubscription, callback?: errorCallback) => void;