Créer une feature
2 min
Naming
Le nom d’une feature doit être suffixé par Feature.
Exemples :
- DocumentFeature
- SignatureFeature
- SirenFeature
Pattern
import { updateTaskStateHandler, rabbitmqHandler } from '@fasstech/oip-features-utils';
import { $download } from './download.js';
import { $delete } from './delete.js';
import { $upload } from './upload.js';
export function DocumentFeature(options) {
const updateTaskState = updateTaskStateHandler(options?.onUpdateTaskState);
const sendMessage = rabbitmqHandler(options?.rabbitmq);
return {
uploadDocument: $upload({ updateTaskState, sendMessage, options }),
downloadDocument: $download({ updateTaskState, sendMessage, options }),
deleteDocument: $delete({ updateTaskState, sendMessage, options }),
};
}Ce pattern est celui documenté dans le markdown source.
Rules
- une feature initialise ses dépendances communes
- une feature retourne un objet de services
- une feature ne porte pas toute la logique métier inline
- chaque service doit rester spécialisé