An open API service indexing awesome lists of open source software.

https://github.com/parsabordbar/mongoose-data-sanitizer

A sanitizer plugin that makes sure the mogoose data input is in UTF-8 format, and if its not, converts it into UTF-8
https://github.com/parsabordbar/mongoose-data-sanitizer

express js mongodb mongoose mongoose-plugin nodejs npm sanitizer ts

Last synced: 14 days ago
JSON representation

A sanitizer plugin that makes sure the mogoose data input is in UTF-8 format, and if its not, converts it into UTF-8

Awesome Lists containing this project

README

          

# mongoose-data-sanitizer

[![npm version](https://img.shields.io/npm/v/mongoose-data-sanitizer.svg)](https://www.npmjs.com/package/mongoose-data-sanitizer)
[![npm downloads](https://img.shields.io/npm/dt/mongoose-data-sanitizer.svg)](https://www.npmjs.com/package/mongoose-data-sanitizer)
[![GitHub issues](https://img.shields.io/github/issues/ParsaBordbar/mongoose-data-sanitizer.svg)](https://github.com/ParsaBordbar/mongoose-data-sanitizer/issues)
[![GitHub stars](https://img.shields.io/github/stars/ParsaBordbar/mongoose-data-sanitizer.svg)](https://github.com/ParsaBordbar/mongoose-data-sanitizer)

A simple **Mongoose plugin** that automatically sanitizes your data before saving or updating.
It ensures your documents are normalized to **NFC** and removes invalid control characters that might cause issues with MongoDB or string handling.

---

## 📦 Installation

```bash
npm install mongoose-data-sanitizer
```
## What It Does

- Converts strings to NFC normalized form

- Removes invalid binary/control characters

- Works on:

save()

updateOne()

findOneAndUpdate()

updateMany()

- Supports nested objects and arrays

### Usage
```
import mongoose, { Schema, model } from "mongoose";
import { sanitizerPlugin } from "mongoose-data-sanitizer";

// Define your schema
const userSchema = new Schema({
name: String,
bio: String,
tags: [String],
});

// Attach the sanitizer plugin
userSchema.plugin(sanitizerPlugin);

const User = model("User", userSchema);

async function run() {
await mongoose.connect("mongodb://localhost:27017/test");

const user = new User({
name: "Jo\u0301hn", // combining accent
bio: "Some bad char \u0008 here",
tags: ["hel\u200Blo", "wo\u0000rld"],
});

await user.save();

console.log(await User.findOne({ _id: user._id }));

await mongoose.disconnect();
}
```