Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ifit/mongoose-dao

Package Overview
Dependencies
Maintainers
44
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ifit/mongoose-dao

Mongo helper methods for working with data in a DAO or repository pattern

  • 3.1.1
  • latest
  • npm
  • Socket score

Version published
Maintainers
44
Created
Source

Build Status codecov

Purpose

Mongo helper methods for working with data in a DAO or repository pattern. As well as some required misc helper methods for interacting with mongo.

Breaking changes introduced in v3.0.0

Please see changelog heading "3.0.0 - 2023-11-10" for details

DAO/Repository Pattern

The primary purpose of this is to abstract the interaction with the Database. This has the following benefits:

  • Easier to mock and DI throughout the app
  • Doesn't depend so heavily throughout the app on setting up Mockgoose
  • Wraps all response objects in a proper class
  • Avoids the messy nature of Mongoose statics/methods

Helpers

Object

The pattern requires the following on Mongo objects:

  • There is a createdAt and updatedAt field
  • That _id is auto converted to id when toObject() is called
  • That __v is removed when toObject() is called

To do that, there is a helper method that sets those up. Simply call initMongoCleanAndTimestamp() in the models of the app.

Connection

This pattern requires a connection to Mongo. To do that, there is a helper method that sets those up. Simply call connectToMongo() in your app at init time.

Testing with Jest

There are some testing methods available for jest in @ifit/mongoose-dao/test-utils/jest folder for more details:

  • global-setup.ts can be used in conjunction with jest.config.js's config.globalSetup
  • global-teardown.ts can be used in conjunction with jest.config.js's config.globalTeardown
  • setup-after-env.ts can be used in an array in conjunction with jest.config.js's config.setupFilesAfterEnv

Examples

See the sample folder. The file/folder structure and files should be all that you need to get started.

Contributing

See CONTRIBUTING.md

Installing dependencies for the project locally

  • yarn install - Installs all the dependencies
  • yarn prepare - Installs in the peer dependencies for local development

Scripts

  • clean - Cleans the project build directories
  • build - Cleans and compiles the code to the out dir
  • watch - Builds and watches for changes, on changes builds
  • lint - Runs TypeScript linting
  • test - Runs all the test marked with .test.ts
  • test-cov - Runs code coverage, generates an HTML report, and opens it in the browser
  • prepare - Installs local peer dependencies

FAQs

Package last updated on 14 Nov 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc