actionhero
Version:
The reusable, scalable, and quick node.js API server for stateless and stateful applications
170 lines (145 loc) • 4.82 kB
text/typescript
export const DEFAULT = {
errors: (config) => {
return {
_toExpand: false,
// ///////////////
// SERIALIZERS //
// ///////////////
serializers: {
servers: {
web: (error) => {
if (error.message) {
return String(error.message);
} else {
return error;
}
},
websocket: (error) => {
if (error.message) {
return String(error.message);
} else {
return error;
}
},
specHelper: (error) => {
if (error.message) {
return "Error: " + String(error.message);
} else {
return error;
}
},
},
// See ActionProcessor#applyDefaultErrorLogLineFormat to see an example of how to customize
actionProcessor: null,
},
// ///////////
// ACTIONS //
// ///////////
// When a params for an action is invalid
invalidParams: (data, validationErrors) => {
if (validationErrors.length >= 0) {
return validationErrors[0];
}
return data.connection.localize("actionhero.errors.invalidParams");
},
// When a required param for an action is not provided
missingParams: (data, missingParams) => {
return data.connection.localize([
"actionhero.errors.missingParams",
{ param: missingParams[0] },
]);
},
// user requested an unknown action
unknownAction: (data) => {
return data.connection.localize("actionhero.errors.unknownAction");
},
// action not useable by this client/server type
unsupportedServerType: (data) => {
return data.connection.localize([
"actionhero.errors.unsupportedServerType",
{ type: data.connection.type },
]);
},
// action failed because server is mid-shutdown
serverShuttingDown: (data) => {
return data.connection.localize("actionhero.errors.serverShuttingDown");
},
// action failed because this client already has too many pending actions
// limit defined in api.config.general.simultaneousActions
tooManyPendingActions: (data) => {
return data.connection.localize(
"actionhero.errors.tooManyPendingActions"
);
},
// Decorate your response based on Error here.
// Any action that throws an Error will pass through this method before returning
// an error to the client. Response can be edited here, status codes changed, etc.
async genericError(data, error) {
return error;
},
// ///////////////
// FILE SERVER //
// ///////////////
// The body message to accompany 404 (file not found) errors regarding flat files
// You may want to load in the content of 404.html or similar
fileNotFound: (connection) => {
return connection.localize(["actionhero.errors.fileNotFound"]);
},
// user didn't request a file
fileNotProvided: (connection) => {
return connection.localize("actionhero.errors.fileNotProvided");
},
// something went wrong trying to read the file
fileReadError: (connection, error) => {
return connection.localize([
"actionhero.errors.fileReadError",
{ error: String(error) },
]);
},
// ///////////////
// CONNECTIONS //
// ///////////////
verbNotFound: (connection, verb) => {
return connection.localize([
"actionhero.errors.verbNotFound",
{ verb: verb },
]);
},
verbNotAllowed: (connection, verb) => {
return connection.localize([
"actionhero.errors.verbNotAllowed",
{ verb: verb },
]);
},
connectionRoomAndMessage: (connection) => {
return connection.localize(
"actionhero.errors.connectionRoomAndMessage"
);
},
connectionNotInRoom: (connection, room) => {
return connection.localize([
"actionhero.errors.connectionNotInRoom",
{ room: room },
]);
},
connectionAlreadyInRoom: (connection, room) => {
return connection.localize([
"actionhero.errors.connectionAlreadyInRoom",
{ room: room },
]);
},
connectionRoomHasBeenDeleted: (room) => {
return "this room has been deleted";
},
connectionRoomNotExist: (room) => {
return "room does not exist";
},
connectionRoomExists: (room) => {
return "room exists";
},
connectionRoomRequired: (room) => {
return "a room is required";
},
};
},
};