0.10.12 • Published 2 years ago
@lindorm-io/koa-mongo
Licence
AGPL-3.0-or-later
Version
0.10.12
Deps
6
Size
37 kB
Vulns
0
Weekly
0
@lindorm-io/koa-mongo
Mongo repository middleware for @lindorm-io/koa applications
Installation
npm install --save @lindorm-io/koa-mongo
Usage
Mongo Connection Middleware
import { MongoClient } from "mongodb";
import { MongoConnection } from "@lindorm-io/mongo";
const mongoConnection = new MongoConnection({ ...options });
koaApp.addMiddleware(mongoMiddleware(mongoConnection));
await ctx.connection.mongo.connect();
Repository Middleware
koaApp.addMiddleware(
repositoryMiddleware(YourRepositoryClass, {
repositoryKey: "key", // OPTIONAL [ string ]
}),
);
await ctx.repository.yourRepositoryClass.create(yourEntity);
Entity Middleware
const middleware = repositoryEntityMiddleware(YourEntityClass, YourRepositoryClass, {
repositoryKey: "key", // OPTIONAL [ string ]
entityKey: "key", // OPTIONAL [ string ]
});
router.addMiddleware(
middleware("body.entityName", {
attributeKey: "name", // OPTIONAL [ string ]
customValidation: async (context, entity) => {}, // OPTIONAL [ function ]
optional: false, // OPTIONAL [ boolean ]
}),
);
ctx.entity.yourEntityClass.id; // -> <uuid>