3.1.1 • Published 6 months ago

@ifit/mongoose-dao v3.1.1

Weekly downloads
102
License
ISC
Repository
-
Last release
6 months ago

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
3.1.1

6 months ago

3.1.0

6 months ago

3.0.0

6 months ago

2.2.0

4 years ago

2.1.0

4 years ago

2.0.0

6 years ago

1.3.0

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago