Features OIP
6 min
FeatureOptions
type FeatureOptions = {
service?: {
url: string;
apiKey: string;
};
rabbitmq?: {
messageBuilder: (response: unknown) => {
message: unknown;
queue: string;
};
};
onUpdateTaskState?: (args: {
error?: string;
metadata?: unknown;
state: {
status: string;
statusCode: number;
};
}) => Promise<void>;
};Options
service
Configuration du service externe utilisé par la feature.
service?: {
url: string;
apiKey: string;
}Usage :
- endpoint dâun service tiers
- authentification API
rabbitmq
Configuration de publication dâĂ©vĂ©nements.
rabbitmq?: {
messageBuilder: (response: unknown) => {
message: unknown;
queue: string;
};
}messageBuilder doit au minimum renvoyer :
- message
- queue
onUpdateTaskState
Handler optionnel de mise Ă jour dâĂ©tat de task.
onUpdateTaskState?: (args: {
error?: string;
metadata?: unknown;
state: { status: string; statusCode: number };
}) => Promise<void>;Le paramĂštre taskState permet de dĂ©finir les statuts Ă appliquer Ă la task pendant lâexĂ©cution de la feature.
When to use
Utiliser taskState si la feature :
- démarre un traitement traçable
- doit notifier un succĂšs
- doit notifier un échec
Exemple
const taskState = {
starting: { status: 'STARTED', statusCode: 102 },
success: { status: 'DONE', statusCode: 200 },
failure: { status: 'FAILED', statusCode: 500 }
};