Skip to content

Commit 7c44225

Browse files
authored
Make all failureCallbacks default to console.error (#1026)
1 parent 0071699 commit 7c44225

File tree

8 files changed

+168
-255
lines changed

8 files changed

+168
-255
lines changed

eslint.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export default tseslint.config(
3636
"@typescript-eslint/no-namespace": 0,
3737
// Plenty of APIs (like mocking APIs in Vitest) require empty functions to be declared.
3838
"@typescript-eslint/no-empty-function": 0,
39+
"@typescript-eslint/no-unnecessary-condition": "error",
3940
},
4041
},
4142
{

src/actionlib/ActionClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export default class ActionClient<
2626
> extends EventEmitter<{
2727
timeout: void;
2828
}> {
29-
goals: Record<string, Goal<TGoal>> = {};
29+
goals: Partial<Record<string, Goal<TGoal>>> = {};
3030
/** flag to check if a status has been received */
3131
receivedStatus = false;
3232
ros: Ros;

src/core/Action.ts

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export default class Action<
5959
goal: TGoal,
6060
resultCallback: (result: TResult) => void,
6161
feedbackCallback?: (feedback: TFeedback) => void,
62-
failedCallback?: (error: string) => void,
62+
failedCallback: (error: string) => void = console.error,
6363
) {
6464
if (this.isAdvertised) {
6565
return;
@@ -68,19 +68,17 @@ export default class Action<
6868
const actionGoalId =
6969
"send_action_goal:" + this.name + ":" + ++this.ros.idCounter;
7070

71-
if (resultCallback || failedCallback) {
72-
this.ros.on(actionGoalId, function (message) {
73-
if (isRosbridgeActionResultMessage<TResult>(message)) {
74-
if (!message.result) {
75-
failedCallback?.(message.values ?? "");
76-
} else {
77-
resultCallback?.(message.values);
78-
}
79-
} else if (isRosbridgeActionFeedbackMessage<TFeedback>(message)) {
80-
feedbackCallback?.(message.values);
71+
this.ros.on(actionGoalId, function (message) {
72+
if (isRosbridgeActionResultMessage<TResult>(message)) {
73+
if (!message.result) {
74+
failedCallback(message.values ?? "");
75+
} else {
76+
resultCallback(message.values);
8177
}
82-
});
83-
}
78+
} else if (isRosbridgeActionFeedbackMessage<TFeedback>(message)) {
79+
feedbackCallback?.(message.values);
80+
}
81+
});
8482

8583
const call = {
8684
op: "send_action_goal",
@@ -166,15 +164,15 @@ export default class Action<
166164
this.ros.on(id, (message) => {
167165
if (
168166
isRosbridgeCancelActionGoalMessage(message) &&
169-
typeof this.#cancelCallback === "function"
167+
this.#cancelCallback
170168
) {
171169
this.#cancelCallback(id);
172170
}
173171
});
174172
}
175173

176174
// Call the action goal execution function provided.
177-
if (typeof this.#actionCallback === "function") {
175+
if (this.#actionCallback) {
178176
this.#actionCallback(rosbridgeRequest.args, id);
179177
}
180178
}

src/core/Param.ts

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ export default class Param<T = unknown> {
2828
* @param callback - The callback function.
2929
* @param [failedCallback] - The callback function when the service call failed or the parameter retrieval was unsuccessful.
3030
*/
31-
get(callback: (value: T) => void, failedCallback?: (error: string) => void) {
31+
get(
32+
callback: (value: T) => void,
33+
failedCallback: (error: string) => void = console.error,
34+
) {
3235
const paramClient = new Service<
3336
rosapi.GetParamRequest,
3437
rosapi.GetParamResponse
@@ -43,7 +46,7 @@ export default class Param<T = unknown> {
4346
paramClient.callService(
4447
request,
4548
function (result) {
46-
if (result.successful === false && failedCallback) {
49+
if (result.successful === false) {
4750
failedCallback(result.reason);
4851
} else {
4952
const value = JSON.parse(result.value);
@@ -63,7 +66,7 @@ export default class Param<T = unknown> {
6366
set(
6467
value: object,
6568
callback?: (message: rosapi.SetParamResponse) => void,
66-
failedCallback?: (error: string) => void,
69+
failedCallback: (error: string) => void = console.error,
6770
) {
6871
const paramClient = new Service<
6972
rosapi.SetParamRequest,
@@ -82,7 +85,7 @@ export default class Param<T = unknown> {
8285
paramClient.callService(
8386
request,
8487
function (result) {
85-
if (result.successful === false && failedCallback) {
88+
if (result.successful === false) {
8689
failedCallback(result.reason);
8790
} else if (callback) {
8891
callback(result);
@@ -99,7 +102,7 @@ export default class Param<T = unknown> {
99102
*/
100103
delete(
101104
callback: (message: rosapi.DeleteParamResponse) => void,
102-
failedCallback?: (error: string) => void,
105+
failedCallback: (error: string) => void = console.error,
103106
) {
104107
const paramClient = new Service<
105108
rosapi.DeleteParamRequest,
@@ -117,9 +120,9 @@ export default class Param<T = unknown> {
117120
paramClient.callService(
118121
request,
119122
function (result) {
120-
if (result.successful === false && failedCallback) {
123+
if (result.successful === false) {
121124
failedCallback(result.reason);
122-
} else if (callback) {
125+
} else {
123126
callback(result);
124127
}
125128
},

0 commit comments

Comments
 (0)