Message Resolution
Feedback title and message text use the shared VibeFlui message pipeline.
Default priority
TS
messages: {
sourcePriority: ["backend", "schema", "resolver", "default"]
}VibeFlui checks sources in order:
| Source | Meaning |
|---|---|
backend | message or error.message from the response source. |
schema | schema.messages.defaults[key]. |
resolver | registry.messageResolvers[schema.messages.resolver]. |
default | Built-in English defaults. |
Operation message keys
| Operation result | Message key |
|---|---|
| Create success | createSuccess |
| Update or edit success | updateSuccess |
| Delete success | deleteSuccess |
| Other action success | actionSuccess |
| Warning | requestRejected |
| Delete error | deleteError |
| Create/update/edit error | submitError |
| Other action error | actionError |
Feedback title keys
| Feedback status | Title key |
|---|---|
success | feedbackSuccessTitle |
warning | feedbackWarningTitle |
error | feedbackErrorTitle |
Schema defaults
TS
export const usersSchema = {
resource: "users",
messages: {
defaults: {
feedbackSuccessTitle: "Done",
feedbackWarningTitle: "Needs attention",
feedbackErrorTitle: "Could not complete request",
createSuccess: "User created.",
updateSuccess: "User updated.",
deleteSuccess: "User deleted.",
requestRejected: "The request was not accepted."
}
}
} as const;Message resolver
TS
import { createRegistry } from "@vibeflui/core";
export const registry = createRegistry({
messageResolvers: {
"users.messages": (key) => {
const messages: Record<string, string> = {
feedbackSuccessTitle: "Success",
requestRejected: "This operation needs another approval step."
};
return messages[key];
}
}
});TS
export const usersSchema = {
resource: "users",
messages: {
resolver: "users.messages",
sourcePriority: ["backend", "resolver", "schema", "default"]
},
registry: {
messageResolvers: ["users.messages"]
}
} as const;Backend message extraction
VibeFlui can extract a message from:
new Error("..."){ message: "..." }{ error: "..." }{ error: { message: "..." } }{ data: { message: "..." } }{ response: { data: { message: "..." } } }