npm.io
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>