A concrete implementation of js-entity-repos for express.
- Install it with
npm i @js-entity-repos/express
. - For each entity you will need to do the following.
Note that you'll probably want to use this with the Axios implementation of js-entity-repos.
import Entity from '@js-entity-repos/core/dist/types/Entity';
export interface TodoEntity extends Entity {
readonly description: string;
readonly completed: boolean;
}
import factory from '@js-entity-repos/express/dist/factory';
const todosFacade = factory<TodoEntity>({
// Optional property that modifies a filter for the service.
constructFilter: (filter) => {
return filter;
},
// Optional property.
defaultPaginationLimit: 10,
// Optional property to handle transactions.
handleTransaction: async ({ req, res }, handler) => {
// The transactionId allow items found in logs to be matched with responses to users.
const transactionId = uuid();
try {
await handler({ transactionId });
} catch (err) {
console.error({ err, req, res, transactionId})
res.status(500).send(transactionId);
}
};
service,
});