Détail du package

@lykmapipo/mongoose-common

lykmapipo14.1kMIT0.40.0

Re-usable helpers for mongoose

lykmapipo, mongoose, helpers, utilities

readme

mongoose-common

Build Status Dependencies Status Coverage Status GitHub License

Commitizen Friendly code style: prettier Code Style npm version

Re-usable helpers for mongoose

Note: This version no longer support mongoose-schema-jsonschema

Requirements

Install

$ npm install --save mongoose @lykmapipo/mongoose-common

Usage

import mongoose from 'mongoose';
import {
  connect,
  clear,
  syncIndexes,
  disconnect,
  drop
} from '@lykmapipo/mongoose-common';

connect(error => { ... });

clear(error => { ... });

syncIndexes(error => { ... });

drop(error => { ... });

disconnect(error => { ... });

...

API

connect([url: String], done: Function)

Establish connection using provided connection string or process.env.MONGODB_URI.

Example:

connect((error) => { ... });

clear([connection:Connection], [...modelNames: String], done: Function)

Clear data of specified modelNames. If none provided all models will be cleared. If connection not provided default mongoose connection will be used.

Example

clear((error) => { ... });
clear('User', (error) => { ... });
clear('User', 'Profile', (error) => { ... });

drop([connection: Connection], done: Function)

Deletes the test database, including all collections, documents, and indexes. If connection not provided default mongoose connection will be used.

Example

drop((error) => { ... });
drop(connection, (error) => { ... });

disconnect([connection: Connection], done: Function)

Close all connections or provided connection

Example

disconnect((error) => { ... }); //close all
disconnect(connection, (error) => { ... }); //close provided

model([name: String], [schema: Schema], [connection: Connection])

Try to obtain existing model or register new model safely. If connection not provided default mongoose connection will be used.

Example

const User = model('User'); // get safely
const User = model('User', schema); // get or register safely
const random = model(schema); // register random model safely
const User = model('User', schema, connection); // get or register safely

eachPath(schema: Schema, iteratee: Function)

Iterate recursively on schema primitive paths and invoke provided iteratee function.

Example

eachPath(schema, (path, schemaType) => { ... });

path(pathName: String)

A shortcut to obtain schema path from model.

Example

User.path('name');
User.path('name.given');
User.path('name.surname');

isObjectId(value: Any)

Check if provided value is an instance ObjectId

Example

const _isObjectId = isObjectId(value);

isMap(value: Any)

Check if provided value is an instance MongooseMap

Example

const _isMap = isMap(value);

isInstance(value: Any)

Check if provided value is an mongoose model instance

Example

const _isInstance = isInstance(value);

copyInstance(value: Any)

Copy and return plain object of mongoose model instance

Example

const copyOfInstance = copyInstance(value);

isSchema(value: Any)

Check if provided value is an mongoose schema instance

Example

const _isSchema = isSchema(value);

isConnection(value: Any)

Check if provided value is an mongoose connection instance

Example

const _isConnection = isConnection(value);

isConnected(connection: Connection)

Check state of provided mongoose connection if is connected.

Example:

const connected = isConnected(conn);

toCollectionName(modelName: String)

Produces a collection name of provided model name.

Example:

const collectionName = toCollectionName('User'); // => users

Environment

SEED_PATH=`${process.cwd}/seeds`
SEED_FRESH=false

Testing

  • Clone this repository

  • Install all development dependencies

    $ npm install
  • Then run test
    $ npm test

Contribute

It will be nice, if you open an issue first so that we can know what is going on, then, fork this repo and push in your ideas. Do not forget to add a bit of test(s) of what value you adding.

License

The MIT License (MIT)

Copyright (c) CodeTanzania & Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

changelog

0.40.0 (2021-09-27)

Chores
  • release: compile latest source (6bd384a1)
  • deps: force latest version & audit fix (097ebf76)
Other Changes
Refactors

0.39.0 (2020-12-29)

Bug Fixes
  • connect & disconnect failures (a84456c0)

0.38.5 (2020-12-27)

Chores
  • deps:
    • force latest version & audit fix (de2ac84f)
    • bump bl from 2.2.0 to 2.2.1 (06b6d44e)
    • bump dot-prop from 4.2.0 to 4.2.1 (588c537c)
    • bump ini from 1.3.5 to 1.3.7 (b649f9cf)
    • bump websocket-extensions from 0.1.3 to 0.1.4 (db5656c4)

0.38.4 (2020-08-08)

Chores
  • deps: force latest version & audit fix (f7ee608b)

0.38.3 (2020-07-29)

Chores
  • deps: force latest version & audit fix (bd2f0059)

0.38.2 (2020-07-14)

Chores
  • deps: force latest version & audit fix (71d24928)

0.38.1 (2020-07-02)

Chores
  • deps: force latest version & audit fix (d9c0c7fd)
  • ci: use latest node (6fa7f596)

0.38.0 (2020-06-26)

Chores
  • deps: force latest version & audit fix (6636d723)
Refactors
  • use mongoose connection helpers (16744448)

0.37.1 (2020-06-24)

Chores
  • deps: force latest version & audit fix (a729a145)
Bug Fixes
  • connect: ensure callback invoke (26c8fac5)

0.37.0 (2020-06-24)

Chores
  • deps: force latest version & audit fix (bf720794)
Refactors
  • connect: skip if in progress (aca235d3)

0.36.0 (2020-06-23)

Chores
  • deps: force latest version & audit fix (97c1d25d)
New Features

0.35.1 (2020-06-10)

Chores
  • deps: force latest version & audit fix (086d060a)

0.35.0 (2020-06-03)

Chores
  • deps: force latest version & audit fix (90a6e2e0)
New Features
  • seed: ensure safe seed data (5ce318f3)
Bug Fixes
  • seed: transform seed to array (ec998e02)

0.34.3 (2020-05-20)

Chores
  • deps: force latest version & audit fix (ff7c4977)

0.34.2 (2020-05-10)

Refactors
  • seed: remove null & empty relations (9bd34064)

0.34.1 (2020-05-09)

Chores
  • deps: force latest version & audit fix (6c28d00d)

0.34.0 (2020-05-09)

Chores
  • deps: force latest version & audit fix (a50b2a6d)
New Features
  • seed: allow select option on related (8268aa2f)

0.33.1 (2020-05-02)

Chores
  • deps: force latest version & audit fix (75c314fb)

0.33.0 (2020-04-28)

Chores
  • deps: force latest version & audit fix (61de07fe)
New Features
  • load seeds from es6 default exports (cfd41d71)

0.32.1 (2020-04-27)

Chores
  • deps: force latest version & audit fix (104b3d5e)

0.32.0 (2020-04-23)

New Features
  • seed: allow ignore on populate (f7a61ee9)

0.31.1 (2020-04-16)

Chores
  • deps: force latest version & audit fix (37cbe1cb)

0.31.0 (2020-04-10)

Chores
  • release: compile latest source & release notes (4438dc2b)
New Features
  • convert instance to objectids strings (82508a06)
  • convert instances to objectids (4b0f01e8)
  • allow to check if two objectid are same (99d96af1)
  • allow check two model instance if are equal (fe9ffb9f)

0.30.0 (2020-04-08)

Chores
  • deps:
    • force latest version & audit fix (b1219af8)
    • force latest version & audit fix (f61e734f)
Refactors
  • seed: preload dependencies before prepare criteria (b6d716a8)

0.29.7 (2020-03-30)

Chores
  • deps: force latest version & audit fix (b2cfb101)

0.29.6 (2020-03-06)

Chores
  • deps: force latest version & audit fix (e992580c)

0.29.5 (2020-02-28)

Chores
  • deps: force latest version & audit fix (9b042ab6)

0.29.4 (2020-02-16)

Chores
  • deps: force latest version & audit fix (4809d23f)

0.29.3 (2020-02-04)

Chores
  • deps: force latest version & audit fix (8da20311)

0.29.2 (2020-01-23)

Chores
  • deps: force latest version & audit fix (2cb0a532)

0.29.1 (2020-01-23)

Bug Fixes

0.29.0 (2020-01-23)

New Features
  • seed: support transform & filter (e48f6b49)

0.28.9 (2020-01-22)

Chores
  • deps: force latest version & audit fix (5ba609bf)

0.28.8 (2020-01-20)

Chores
  • deps: force latest version & audit fix (122fe11f)
Refactors
  • synIndexes: ensure safe syncs (34b52f92)
  • connect: restore mongoose.connect use (ecd863d8)

0.28.7 (2020-01-17)

Chores
  • deps: force latest version & audit fix (949fa645)

0.28.6 (2020-01-14)

Chores
  • deps: force latest version & audit fix (5d7389d0)
Other Changes

0.28.5 (2020-01-14)

Chores
  • deps: force latest version & audit fix (2e8b7bac)

0.28.4 (2020-01-12)

Chores
  • deps: force latest version & audit fix (559a8fa6)

0.28.3 (2020-01-11)

Chores
  • deps: force latest version & audit fix (bd786941)

0.28.2 (2019-12-16)

Chores
  • deps: force latest version & audit fix (c45971b5)

0.28.1 (2019-12-09)

Chores
  • deps: force latest version & audit fix (4a23ea3e)

0.28.0 (2019-11-27)

Chores
  • deps: force latest version & audit fix (91796495)
New Features
  • seed: support array of refs (37846a19)

0.27.1 (2019-11-27)

Chores
  • deps: force latest version & audit fix (c67b7cdc)
Refactors
  • seed: fetch _id on seed related (74845dd9)

0.27.0 (2019-11-25)

Chores
  • deps: force latest version & audit fix (dc379752)
New Features
  • allow seed dependencies (6ca6f4c1)
  • allow fresh seed to overide existing (a4c96b5b)

0.26.6 (2019-11-14)

Chores
  • deps: force latest version & audit fix (6416ca36)
Bug Fixes
  • normalize schema options to object (774375c9)

0.26.5 (2019-11-14)

Chores
  • deps: force latest version & audit fix (b280f316)
Refactors
  • error: ensure error message (4f14284f)

0.26.4 (2019-10-23)

Chores
  • deps: force latest version & audit fix (4e991b0d)

0.26.3 (2019-10-14)

Chores
  • deps: force latest versions (f886d2d2)
Bug Fixes
  • esnure DB_NAME if no package.json (eef72e11)

0.26.2 (2019-10-10)

Chores
  • deps: force latest version & audit fix (be679c18)

0.26.1 (2019-10-08)

Chores
  • deps: force latest version & audit fix (a97728b4)

0.26.0 (2019-09-27)

New Features
  • use recursive toObject on copyInstance (75c1caca)
Refactors
  • simply copyInstance to merge any object (ed32f0a6)

0.25.15 (2019-09-27)

Chores
  • deps: force latest version & audit fix (9c1c0293)

0.25.14 (2019-09-25)

Chores
  • deps: force latest version & audit fix (97785aff)

0.25.13 (2019-09-16)

Chores
  • deps: force latest version & audit fix (e56b6f5c)
Bug Fixes
  • add support for new server discover & monitoring engine (60eca8f5)

0.25.12 (2019-09-16)

Chores
  • deps: force latest version & audit fix (88e8748e)

0.25.11 (2019-08-28)

Chores
  • deps: force latest version & audit fix (812151ff)

0.25.10 (2019-08-13)

Chores
  • deps: force latest version & audit fix (4b266e95)

0.25.9 (2019-08-01)

Chores
  • deps: force latest version & audit fix (6ed9454e)
Tests
  • fix integration spec assertions (99ebca12)

0.25.8 (2019-07-09)

Chores
  • deps: force latest version & audit fix (27be63e0)

0.25.7 (2019-06-28)

Chores
  • deps: force latest version & audit fix (0d15732d)
Bug Fixes
  • use old connection to skip multu connect errors (66a48b87)

0.25.6 (2019-06-19)

Tests
  • fix schema options assertions (cc9be357)

0.25.5 (2019-06-19)

Chores
  • deps: force latest version & audit fix (ed5e4403)

0.25.4 (2019-06-19)

New Features
  • allow getters in schema options (245e8a76)

0.25.3 (2019-06-16)

Chores
  • deps: force latest version & audit fix (52545e04)

0.25.2 (2019-06-14)

Chores
  • deps: force latest version & audit fix (40cebdc5)

0.25.1 (2019-06-09)

Chores
  • deps: force latest version & audit fix (875939b9)

0.25.0 (2019-06-08)

Chores
  • deps:
    • force latest version & audit fix (0dc5d285)
    • force latest version & audit fix (38e95f1b)
New Features
  • add clearAndSeed model static method (02a94a4f)
  • ignore path seeds if args seed provided (f2b9ca9a)
Code Style Changes
Tests

0.24.0 (2019-06-04)

New Features
  • implement validationErrorFor helper to construct mongoose validation errors (bcd55713)

0.23.7 (2019-06-04)

Chores
  • deps: force latest version & audit fix (5f7640d1)

0.23.6 (2019-06-02)

Chores
  • deps: force latest version & audit fix (3a444875)

0.23.5 (2019-06-02)

Chores
  • deps: force latest version & audit fix (adf71c54)
Bug Fixes
  • enable useCreateIndex instead of deprecated ensureIndex (02ec8feb)

0.23.4 (2019-05-29)

New Features
  • allow isConnected to use default connection or passed connection (1f103bb0)

0.23.3 (2019-05-29)

Chores
  • deps: force latest version & audit fix (022796d1)
Bug Fixes
  • ensure connection uri for undefine MONGODB_URI env variable (bfa9848f)

0.23.2 (2019-05-28)

Chores
  • deps: force latest version & audit fix (7dd02d4b)
Bug Fixes
  • always ensure mongodb uri on connect (a96e2a6d)

0.23.1 (2019-05-20)

Chores
  • deps: force latest version & audit fix (5feee4f4)

0.23.0 (2019-05-12)

Chores
  • deps:
    • force latest version & audit fix (55b0542e)
    • force latest version & audit fix (dea05cdc)
New Features
  • add isAggregate helper to check is value is Aggregate instance (413ef216)
  • export Query (882fc613)
  • allow varargs plugins on createSchema (b7abfc3d)
  • implement initial createSchema (cf49283b)
  • support options on createSubSchema (a2e511bb)
Refactors
  • migrate to use mergeObjects than _.merge (5d04a3c3)

0.22.1 (2019-05-05)

Bug Fixes
  • resolve seeds paths after join (92f553a5)
  • seed: honour existing data when seeding (05d202e9)

0.22.0 (2019-05-05)

Chores
  • deps: force latest version & audit fixes (d5ae6d77)
New Features
  • add helper to create sub schema with variable paths (f52be65d)

0.21.0 (2019-05-01)

New Features
  • seed:
    • allow merge seeds from path (56ca5914)
    • implement deterministic data seeding (b3490eda)
  • implement creatSubSchema to exclude timestamps and _id (b87b1a9e)
  • implement create schema with varargs plugins (a34ebe38)
Tests
  • deps: migrate to use test helpers (eb9c6f4d)

0.20.1 (2019-05-01)

Chores
  • .npmrc: prevent npm version to commit and tag version (6dfd8014)
  • deps: force latest version & audit fix (b755adcc)

0.20.0 (2019-04-27)

Chores
  • dependencies: force latest versions (7806a558)
Documentation Changes
New Features
  • syncIndexes: add helpers to keep db and schema indexes in sync (83868ffd)
  • add disable debug helper (c794c6d8)
  • add enable debug helper (85b66fa9)
Refactors
  • *: use function expression (ce6e96c1)
  • jsonSchema: use function expression (956f533b)
  • eachPath: use function expression (62e6115b)
  • model: use function expression (8280c6bc)
  • drop: use function expression (bd8575e0)
  • clear: use function expression (e7829e46)
  • disconnect: use function expression (79ddf817)
  • connect: use function expression (5be74ec5)
  • copyInstance: use function expression (78216e8a)
  • isInstance: use function expression (cd709c30)
  • isNumberArray: use function expression (8b104338)
  • isNumber: use function expression (34579468)
  • isStringArray: use function expression (75fce7d6)
  • isString: use function expression (2ad21fca)
  • isMap: use function expression (3305a949)
  • isObjectId: use function expression (1bd29845)
  • toCollectionName: use function expression (c5ed14af)
Code Style Changes

0.19.1 (2019-04-24)

Chores
  • dependencies: force latest common version (fc530699)
New Features
  • add index on validator error (a36e4c25)
Bug Fixes
  • correct order of parsing values from compaund indexes (c99ff93e)

0.19.0 (2019-04-23)

Chores
  • dependencies: force latest dependencies (a0393029)
New Features
  • handle ObjectId unique errors and normalize (a3525477)
Refactors
  • parse values from object id unique error (ed49209f)
  • extract value parsing from error (4135e0d5)
  • extract unique paths parsing (d5570788)
Tests
  • integration: handle object id compaund unique index (d71a9fee)
  • improve spec describes & compact integration spec (f29b071f)

0.18.1 (2019-04-20)

Chores
  • force latest node on travis (78edfd9c)
Refactors
  • improve regex to extract unique path & value (c2a0eb38)

0.18.0 (2019-04-20)

New Features
  • add additonal hooks to error middleware (53c655fb)
  • parse path value from unique error (bc6bfc60)
Refactors
  • path plugin:
    • use functional expression & arrow (a1f6e2f2)
    • use functional expression & arrow (7669fa11)
  • use functional expression & arrow (a173ecbc)
Code Style Changes
Tests
  • use test dd and improve specs title (a41f53fb)
  • unit: improve test readability (92487d1f)
  • integration: improve test readability (722b8b71)

0.17.0 (2019-04-17)

Chores
New Features
  • allow clear by passing model instance (98e1cba6)
  • add isModel check helper (c172598a)

0.16.2 (2019-04-16)

Chores
Documentation Changes
  • add code of conduct & contributing guide (8ec442f8)

0.16.1 (2019-04-01)

Chores

0.16.0 (2019-03-29)

New Features
  • add shortcut to get collection name of model (8a0f9ae9)
  • add shortcut to check for array schema type (6803ef0a)
Code Style Changes
  • improve isArraySchemaType jsdocs (9f1cc285)

0.15.0 (2019-03-29)

New Features
  • expose mongoose aggregation builder (254d2fb4)

0.14.0 (2019-03-29)

New Features
  • add helper to get schema type options (28fa8aed)

0.13.0 (2019-03-28)

Chores
New Features
  • expose common aggregation lookup fields (38ed8880)

0.12.0 (2019-02-20)

New Features
  • add isQuery to check if value is query instance (785d312c)

0.11.0 (2019-02-13)

New Features
  • add isStringArray & isNumberArray to string & number schema array (43b91685)

0.10.0 (2019-02-13)

New Features
  • add isString & isNumber to check for string and number schema types (0159409b)

0.9.2 (2019-02-13)

Chores

0.9.1 (2019-01-31)

Refactors
  • modelNames to be a function (5ca0456d)