Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Odemongo is an ODM for MongoDB.
It allows you to work with the database with a custom model.
Odemongo brings a you a function that you can use to connect to the DB.
Callback is optional.
import { Database } from "odemongo"
await Database.connect(connection_string, callback?)
A model allows to you to interact with a collection and validate data with zod.
Just by passing a zod schema odemongo will validate it and in case of error it will return it
import { Model } from "odemongo"
const YOUR_MODEL = new Model(zod_schema, collection_name)
Now you can use all of the functions that Odemongo brings you with your model.
All the functions return an object with a result and an error and are asynchronous.
If there is a validation error the message will be in error and result will be null.
If validation is correct result will contain all the data and error will be false.
Options are all the default options that the MongoDB NodeJS driver has
const { result, error } = await Model.find()
Result is an array
const { result, error } = await Model.findOne({name: "John Doe"})
Result is an object
const { result, error } = await Model.findById(id)
Id must be an string that is 24 characters long, Odemongo will turn it into an ObjectId.
Result is an object
const { result, error } = await Model.insert({ name: "John Doe" })
The object will be validated before inserting in the collection.
Result is the inserted object
const { result, error } = await Model.insertMany([{ name: "John doe" }])
The objects in the array will be validated before inserting them.
Result is the inserted array
const { result, error } = await Model.update({ name: "John Doe" }, { name: "John Doe 2" })
The object will be partially validated, if the query doesn't match any object in the DB it will return null.
Result is the updated object
const { result, error } = await Model.updateById(id, { name: "John Doe 2" })
Same as update but the query is now an object.
Result is the updated object
const { result, error } = await Model.delete({name: "John Doe"})
If query doesn't match any object result will be null.
Result is the deleted object.
const { result, error } = await Model.deleteById(id)
Same as delete but query is an id.
Result is the deleted object.
Odemongo brings you some default zod schemas to work with specific data
import { schemas } from "odemongo"
import { z } from "zod"
import { schemas } from "odemongo"
const userSchema = z.object({
name: z.string(),
someId: schemas.ObjectIdSchema
})
This allows you to add custom ids to your schemas
Created by @ivanglzr
FAQs
Odemongo is an ODM for MongoDB
The npm package odemongo receives a total of 1 weekly downloads. As such, odemongo popularity was classified as not popular.
We found that odemongo demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.