@rivetkit/core
Version:
315 lines (314 loc) • 8.86 kB
JavaScript
// src/actor/errors.ts
var INTERNAL_ERROR_CODE = "internal_error";
var INTERNAL_ERROR_DESCRIPTION = "Internal error. Read the server logs for more details.";
var USER_ERROR_CODE = "user_error";
var ActorError = class extends Error {
constructor(code, message, opts) {
super(message, { cause: opts == null ? void 0 : opts.cause });
this.code = code;
this.public = (opts == null ? void 0 : opts.public) ?? false;
this.metadata = opts == null ? void 0 : opts.metadata;
if (opts == null ? void 0 : opts.public) {
this.statusCode = 400;
}
}
__type = "ActorError";
public;
metadata;
statusCode = 500;
static isActorError(error) {
return typeof error === "object" && error.__type === "ActorError";
}
toString() {
return this.message;
}
/**
* Serialize error for HTTP response
*/
serializeForHttp() {
return {
type: this.code,
message: this.message,
metadata: this.metadata
};
}
};
var InternalError = class extends ActorError {
constructor(message) {
super(INTERNAL_ERROR_CODE, message);
}
};
var Unreachable = class extends InternalError {
constructor(x) {
super(`Unreachable case: ${x}`);
}
};
var StateNotEnabled = class extends ActorError {
constructor() {
super(
"state_not_enabled",
"State not enabled. Must implement `createState` or `state` to use state. (https://www.rivet.gg/docs/actors/state/#initializing-state)"
);
}
};
var ConnStateNotEnabled = class extends ActorError {
constructor() {
super(
"conn_state_not_enabled",
"Connection state not enabled. Must implement `createConnectionState` or `connectionState` to use connection state. (https://www.rivet.gg/docs/actors/connections/#connection-state)"
);
}
};
var VarsNotEnabled = class extends ActorError {
constructor() {
super(
"vars_not_enabled",
"Variables not enabled. Must implement `createVars` or `vars` to use state. (https://www.rivet.gg/docs/actors/ephemeral-variables/#initializing-variables)"
);
}
};
var ActionTimedOut = class extends ActorError {
constructor() {
super(
"action_timed_out",
"Action timed out. This can be increased with: `actor({ options: { action: { timeout: ... } } })`",
{ public: true }
);
}
};
var ActionNotFound = class extends ActorError {
constructor(name) {
super(
"action_not_found",
`Action '${name}' not found. Validate the action exists on your actor.`,
{ public: true }
);
}
};
var InvalidEncoding = class extends ActorError {
constructor(format) {
super(
"invalid_encoding",
`Invalid encoding \`${format}\`. (https://www.rivet.gg/docs/actors/clients/#actor-client)`,
{
public: true
}
);
}
};
var ConnNotFound = class extends ActorError {
constructor(id) {
super("conn_not_found", `Connection not found for ID: ${id}`, {
public: true
});
}
};
var IncorrectConnToken = class extends ActorError {
constructor() {
super("incorrect_conn_token", "Incorrect connection token.", {
public: true
});
}
};
var MessageTooLong = class extends ActorError {
constructor() {
super(
"message_too_long",
"Message too long. This can be configured with: `registry.runServer({ maxIncomingMessageSize: ... })`",
{ public: true }
);
}
};
var MalformedMessage = class extends ActorError {
constructor(cause) {
super("malformed_message", `Malformed message: ${cause}`, {
public: true,
cause
});
}
};
var InvalidStateType = class extends ActorError {
constructor(opts) {
let msg = "";
if (opts == null ? void 0 : opts.path) {
msg += `Attempted to set invalid state at path \`${opts.path}\`.`;
} else {
msg += "Attempted to set invalid state.";
}
msg += " Valid types include: null, undefined, boolean, string, number, BigInt, Date, RegExp, Error, typed arrays (Uint8Array, Int8Array, Float32Array, etc.), Map, Set, Array, and plain objects. (https://www.rivet.gg/docs/actors/state/#limitations)";
super("invalid_state_type", msg);
}
};
var Unsupported = class extends ActorError {
constructor(feature) {
super("unsupported", `Unsupported feature: ${feature}`);
}
};
var UserError = class extends ActorError {
/**
* Constructs a new UserError instance.
*
* @param message - The error message to be displayed.
* @param opts - Optional parameters for the error, including a machine-readable code and additional metadata.
*/
constructor(message, opts) {
super((opts == null ? void 0 : opts.code) ?? USER_ERROR_CODE, message, {
public: true,
metadata: opts == null ? void 0 : opts.metadata
});
}
};
var InvalidQueryJSON = class extends ActorError {
constructor(error) {
super("invalid_query_json", `Invalid query JSON: ${error}`, {
public: true,
cause: error
});
}
};
var InvalidRequest = class extends ActorError {
constructor(error) {
super("invalid_request", `Invalid request: ${error}`, {
public: true,
cause: error
});
}
};
var ActorNotFound = class extends ActorError {
constructor(identifier) {
super(
"actor_not_found",
identifier ? `Actor not found: ${identifier} (https://www.rivet.gg/docs/actors/clients/#actor-client)` : "Actor not found (https://www.rivet.gg/docs/actors/clients/#actor-client)",
{ public: true }
);
}
};
var ActorAlreadyExists = class extends ActorError {
constructor(name, key) {
super(
"actor_already_exists",
`Actor already exists with name '${name}' and key '${JSON.stringify(key)}' (https://www.rivet.gg/docs/actors/clients/#actor-client)`,
{ public: true }
);
}
};
var ProxyError = class extends ActorError {
constructor(operation, error) {
super(
"proxy_error",
`Error proxying ${operation}, this is likely an internal error: ${error}`,
{
public: true,
cause: error
}
);
}
};
var InvalidActionRequest = class extends ActorError {
constructor(message) {
super("invalid_action_request", message, { public: true });
}
};
var InvalidParams = class extends ActorError {
constructor(message) {
super("invalid_params", message, { public: true });
}
};
var Unauthorized = class extends ActorError {
constructor(message) {
super(
"unauthorized",
message ?? "Unauthorized. Access denied. (https://www.rivet.gg/docs/actors/authentication/)",
{
public: true
}
);
this.statusCode = 401;
}
};
var Forbidden = class extends ActorError {
constructor(message, opts) {
super(
"forbidden",
message ?? "Forbidden. Access denied. (https://www.rivet.gg/docs/actors/authentication/)",
{
public: true,
metadata: opts == null ? void 0 : opts.metadata
}
);
this.statusCode = 403;
}
};
var DatabaseNotEnabled = class extends ActorError {
constructor() {
super(
"database_not_enabled",
"Database not enabled. Must implement `database` to use database."
);
}
};
var FetchHandlerNotDefined = class extends ActorError {
constructor() {
super(
"fetch_handler_not_defined",
"Raw HTTP handler not defined. Actor must implement `onFetch` to handle raw HTTP requests. (https://www.rivet.gg/docs/actors/fetch-and-websocket-handler/)",
{ public: true }
);
this.statusCode = 404;
}
};
var WebSocketHandlerNotDefined = class extends ActorError {
constructor() {
super(
"websocket_handler_not_defined",
"Raw WebSocket handler not defined. Actor must implement `onWebSocket` to handle raw WebSocket connections. (https://www.rivet.gg/docs/actors/fetch-and-websocket-handler/)",
{ public: true }
);
this.statusCode = 404;
}
};
var InvalidFetchResponse = class extends ActorError {
constructor() {
super(
"invalid_fetch_response",
"Actor's onFetch handler must return a Response object. Returning void/undefined is not allowed. (https://www.rivet.gg/docs/actors/fetch-and-websocket-handler/)",
{ public: true }
);
this.statusCode = 500;
}
};
export {
INTERNAL_ERROR_CODE,
INTERNAL_ERROR_DESCRIPTION,
USER_ERROR_CODE,
ActorError,
InternalError,
Unreachable,
StateNotEnabled,
ConnStateNotEnabled,
VarsNotEnabled,
ActionTimedOut,
ActionNotFound,
InvalidEncoding,
ConnNotFound,
IncorrectConnToken,
MessageTooLong,
MalformedMessage,
InvalidStateType,
Unsupported,
UserError,
InvalidQueryJSON,
InvalidRequest,
ActorNotFound,
ActorAlreadyExists,
ProxyError,
InvalidActionRequest,
InvalidParams,
Unauthorized,
Forbidden,
DatabaseNotEnabled,
FetchHandlerNotDefined,
WebSocketHandlerNotDefined,
InvalidFetchResponse
};
//# sourceMappingURL=chunk-INRCNZ4I.js.map