xpress-mongo
Advanced tools
Comparing version 2.4.3 to 2.5.0
@@ -7,3 +7,3 @@ "use strict"; | ||
exports.processSchema = exports.RunOnEvent = exports.RunInBackground = exports.runAndValidation = exports.runOrValidation = exports.defaultValue = void 0; | ||
const Lodash_1 = __importDefault(require("../src/Lodash")); | ||
const lodash_1 = __importDefault(require("object-collection/lodash")); | ||
const joi_1 = __importDefault(require("joi")); | ||
@@ -121,3 +121,3 @@ const index_1 = require("../index"); | ||
if (event === "watch") { | ||
if (Lodash_1.default.has(changes, field)) { | ||
if (lodash_1.default.has(changes, field)) { | ||
// noinspection ES6MissingAwait | ||
@@ -124,0 +124,0 @@ RunInBackground(() => thisEvent[field](modelInstance)); |
import { MongoClient, MongoClientOptions, ObjectId } from "mongodb"; | ||
import { XMongoSchema, XMongoSchemaBuilder, XMongoSchemaFn } from "./src/CustomTypes"; | ||
import is = require("./src/SchemaBuilder"); | ||
import XMongoDataType = require("./src/XMongoDataType"); | ||
import XMongoClient = require("./src/XMongoClient"); | ||
import XMongoModel = require("./src/XMongoModel"); | ||
import XMongoTypedModel = require("./src/XMongoTypedModel"); | ||
import Joi = require("joi"); | ||
import is from "./src/SchemaBuilder"; | ||
import XMongoDataType from "./src/XMongoDataType"; | ||
import XMongoClient from "./src/XMongoClient"; | ||
import XMongoModel from "./src/XMongoModel"; | ||
import XMongoTypedModel from "./src/XMongoTypedModel"; | ||
import * as Joi from "joi"; | ||
declare const omitIdAndPick: (pick?: string | string[]) => object, omitIdAnd: (omit?: string | string[]) => object, omitKeys: (keys: string | string[], returnObject?: boolean) => object, pickKeys: (keys: string | string[], returnObject?: boolean) => object; | ||
@@ -10,0 +10,0 @@ /** |
48
index.js
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||
Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||
}) : function(o, v) { | ||
o["default"] = v; | ||
}); | ||
var __importStar = (this && this.__importStar) || function (mod) { | ||
if (mod && mod.__esModule) return mod; | ||
var result = {}; | ||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||
__setModuleDefault(result, mod); | ||
return result; | ||
}; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -7,13 +29,13 @@ exports.ObjectId = exports.RefreshDateOnUpdate = exports.parseServerUrl = exports.omitIdAndPick = exports.omitIdAnd = exports.pickKeys = exports.omitKeys = exports.XMongoDataType = exports.XMongoTypedModel = exports.XMongoModel = exports.Client = exports.joi = exports.is = void 0; | ||
// Require libs | ||
const is = require("./src/SchemaBuilder"); | ||
exports.is = is; | ||
const Projectors = require("./fn/projection"); | ||
const XMongoDataType = require("./src/XMongoDataType"); | ||
exports.XMongoDataType = XMongoDataType; | ||
const XMongoClient = require("./src/XMongoClient"); | ||
const XMongoModel = require("./src/XMongoModel"); | ||
exports.XMongoModel = XMongoModel; | ||
const XMongoTypedModel = require("./src/XMongoTypedModel"); | ||
exports.XMongoTypedModel = XMongoTypedModel; | ||
const Joi = require("joi"); | ||
const SchemaBuilder_1 = __importDefault(require("./src/SchemaBuilder")); | ||
exports.is = SchemaBuilder_1.default; | ||
const Projectors = __importStar(require("./fn/projection")); | ||
const XMongoDataType_1 = __importDefault(require("./src/XMongoDataType")); | ||
exports.XMongoDataType = XMongoDataType_1.default; | ||
const XMongoClient_1 = __importDefault(require("./src/XMongoClient")); | ||
const XMongoModel_1 = __importDefault(require("./src/XMongoModel")); | ||
exports.XMongoModel = XMongoModel_1.default; | ||
const XMongoTypedModel_1 = __importDefault(require("./src/XMongoTypedModel")); | ||
exports.XMongoTypedModel = XMongoTypedModel_1.default; | ||
const Joi = __importStar(require("joi")); | ||
exports.joi = Joi; | ||
@@ -38,7 +60,7 @@ const { omitIdAndPick, omitIdAnd, omitKeys, pickKeys } = Projectors; | ||
if (url instanceof mongodb_1.MongoClient) | ||
return new XMongoClient(url); | ||
return new XMongoClient_1.default(url); | ||
/** | ||
* Else we create a new one | ||
*/ | ||
return new XMongoClient(new mongodb_1.MongoClient(url, options)); | ||
return new XMongoClient_1.default(new mongodb_1.MongoClient(url, options)); | ||
} | ||
@@ -45,0 +67,0 @@ exports.Client = Client; |
{ | ||
"name": "xpress-mongo", | ||
"version": "2.4.3", | ||
"version": "2.5.0", | ||
"description": "Light Weight ODM for mongoDb NodeJs", | ||
@@ -36,3 +36,2 @@ "main": "index.js", | ||
"joi": "^17.5.0", | ||
"lodash": "^4.17.21", | ||
"mongodb": "4.3.1", | ||
@@ -39,0 +38,0 @@ "object-collection": "^3.0.0", |
@@ -1,2 +0,2 @@ | ||
import XMongoDataType = require("./XMongoDataType"); | ||
import XMongoDataType from "./XMongoDataType"; | ||
import XMongoModel from "./XMongoModel"; | ||
@@ -3,0 +3,0 @@ import Joi from "joi"; |
"use strict"; | ||
const XMongoDataType = require("./XMongoDataType"); | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
const XMongoDataType_1 = __importDefault(require("./XMongoDataType")); | ||
const mongodb_1 = require("mongodb"); | ||
// @ts-ignore | ||
const uuid = require("uuid"); | ||
const uuid_1 = __importDefault(require("uuid")); | ||
// Quick Functions | ||
@@ -31,3 +33,3 @@ const isString = (v) => typeof v === "string"; | ||
Any: (def) => { | ||
return new XMongoDataType("Any", def).validator(() => true); | ||
return new XMongoDataType_1.default("Any", def).validator(() => true); | ||
}, | ||
@@ -40,3 +42,3 @@ /** | ||
Array: (def = () => []) => { | ||
return new XMongoDataType("Array", def) | ||
return new XMongoDataType_1.default("Array", def) | ||
.validator(isArray) | ||
@@ -51,3 +53,3 @@ .validatorError((key) => `(${key}) is not an Array`); | ||
Boolean: (def = false) => { | ||
return new XMongoDataType("Boolean", def) | ||
return new XMongoDataType_1.default("Boolean", def) | ||
.validator(isBoolean) | ||
@@ -63,3 +65,3 @@ .validatorError((key) => `(${key}) is not a Boolean`); | ||
CustomValidator(validator, error) { | ||
const newValidator = new XMongoDataType("CustomValidator").validator(validator); | ||
const newValidator = new XMongoDataType_1.default("CustomValidator").validator(validator); | ||
if (error) { | ||
@@ -78,3 +80,3 @@ if (typeof error === "string") | ||
Date: (def = () => new Date()) => { | ||
return new XMongoDataType("Date", def) | ||
return new XMongoDataType_1.default("Date", def) | ||
.validator(isDate) | ||
@@ -98,3 +100,3 @@ .cast((value) => { | ||
InArray(list, def) { | ||
return new XMongoDataType("InArray", def) | ||
return new XMongoDataType_1.default("InArray", def) | ||
.validator((value) => list.includes(value)) | ||
@@ -113,3 +115,3 @@ .validatorError((key) => `(${key}) is not included in ${JSON.stringify(list)}`); | ||
return is.InArray(def).name("Number"); | ||
return new XMongoDataType("Number", def) | ||
return new XMongoDataType_1.default("Number", def) | ||
.validator(isNumber) | ||
@@ -125,3 +127,3 @@ .cast((v) => Number(v)) | ||
Object: (def = () => ({})) => { | ||
return new XMongoDataType("Object", def) | ||
return new XMongoDataType_1.default("Object", def) | ||
.validator(isObject) | ||
@@ -135,3 +137,3 @@ .validatorError((key) => `(${key}) is not an Object`); | ||
ObjectId: () => { | ||
return new XMongoDataType("ObjectId", undefined) | ||
return new XMongoDataType_1.default("ObjectId", undefined) | ||
.validator({ | ||
@@ -162,3 +164,3 @@ or: [isString, isObjectId] | ||
return is.InArray(def).name("String"); | ||
return new XMongoDataType("String", def) | ||
return new XMongoDataType_1.default("String", def) | ||
.validator(isString) | ||
@@ -173,3 +175,3 @@ .validatorError((key) => `(${key}) is not a String`); | ||
Types: (types) => { | ||
const multipleType = new XMongoDataType("MultipleDataTypes"); | ||
const multipleType = new XMongoDataType_1.default("MultipleDataTypes"); | ||
const mainSchema = types[0].schema; | ||
@@ -215,14 +217,14 @@ // Set default function to first type default | ||
} | ||
return new XMongoDataType("Uuid") | ||
.validator((value) => uuid.validate(value)) | ||
return new XMongoDataType_1.default("Uuid") | ||
.validator((value) => uuid_1.default.validate(value)) | ||
.default(() => { | ||
switch (version) { | ||
case 1: | ||
return uuid.v1(); | ||
return uuid_1.default.v1(); | ||
case 3: | ||
return uuid.v3(options.name, options.namespace); | ||
return uuid_1.default.v3(options.name, options.namespace); | ||
case 4: | ||
return uuid.v4(); | ||
return uuid_1.default.v4(); | ||
case 5: | ||
return uuid.v5(options.name, options.namespace); | ||
return uuid_1.default.v5(options.name, options.namespace); | ||
} | ||
@@ -229,0 +231,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
import XMongoModel = require("./XMongoModel"); | ||
import XMongoModel from "./XMongoModel"; | ||
import { Collection, Db, MongoClient } from "mongodb"; | ||
@@ -40,3 +40,2 @@ import XMongoTypedModel from "./XMongoTypedModel"; | ||
* @param collection | ||
* @param model | ||
* @return {typeof XMongoModel} | ||
@@ -43,0 +42,0 @@ */ |
@@ -5,3 +5,3 @@ "use strict"; | ||
}; | ||
const XMongoModel = require("./XMongoModel"); | ||
const XMongoModel_1 = __importDefault(require("./XMongoModel")); | ||
const XMongoTypedModel_1 = __importDefault(require("./XMongoTypedModel")); | ||
@@ -90,3 +90,3 @@ /** | ||
*/ | ||
return class extends XMongoModel { | ||
return class extends XMongoModel_1.default { | ||
/** | ||
@@ -104,3 +104,2 @@ * Returns native mongodb instance to run native queries | ||
* @param collection | ||
* @param model | ||
* @return {typeof XMongoModel} | ||
@@ -107,0 +106,0 @@ */ |
@@ -1,7 +0,4 @@ | ||
import ObjectCollection = require("object-collection"); | ||
import ObjectCollection from "object-collection"; | ||
import { AggregateOptions, AggregationCursor, Collection, DeleteResult, Filter, FindCursor, FindOptions, InsertOneOptions, InsertOneResult, ObjectId, UpdateFilter, UpdateOptions, UpdateResult } from "mongodb"; | ||
import { PaginationData, StringToAnyObject, XMongoSchema, XMongoSchemaFn, XMongoStrictConfig } from "./CustomTypes"; | ||
/** | ||
* Get Lodash | ||
*/ | ||
declare type FunctionWithRawArgument = (raw: Collection) => FindCursor | AggregationCursor; | ||
@@ -8,0 +5,0 @@ /** |
@@ -5,3 +5,3 @@ "use strict"; | ||
}; | ||
const ObjectCollection = require("object-collection"); | ||
const object_collection_1 = __importDefault(require("object-collection")); | ||
const mongodb_1 = require("mongodb"); | ||
@@ -768,3 +768,3 @@ const SchemaBuilder_1 = __importDefault(require("./SchemaBuilder")); | ||
Object.defineProperty(this, "$data", { | ||
value: new ObjectCollection(this.data), | ||
value: new object_collection_1.default(this.data), | ||
writable: true, | ||
@@ -771,0 +771,0 @@ enumerable: false |
102658
6
3164
23
- Removedlodash@^4.17.21