# mongoose-uuid-ts

> uuid for mongoose

Latest version **1.0.4** (published 2023-06-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install mongoose-uuid-ts
pnpm add mongoose-uuid-ts
yarn add mongoose-uuid-ts
bun add mongoose-uuid-ts
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.4 |
| Published | 2023-06-16 |
| First published | 2023-06-16 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 9.4 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | auralshin |
| Maintainers | auralshin |
| Keywords | mongoose, node, mongodb, uuid |

## Links

- npm: https://www.npmjs.com/package/mongoose-uuid-ts
- Repository: https://github.com/auralshin/mongoose-uuid
- Homepage: https://github.com/auralshin/mongoose-uuid#readme
- Issues: https://github.com/auralshin/mongoose-uuid/issues
- npm.io page: https://npm.io/package/mongoose-uuid-ts

## Dependencies (7)

- [bson](https://npm.io/package/bson.md) ^5.3.0
- [util](https://npm.io/package/util.md) ^0.12.5
- [uuid](https://npm.io/package/uuid.md) ^9.0.0
- [merge](https://npm.io/package/merge.md) ^2.1.1
- [mongodb](https://npm.io/package/mongodb.md) ^5.6.0
- [mongoose](https://npm.io/package/mongoose.md) ^7.3.0
- [uuid-parse](https://npm.io/package/uuid-parse.md) ^1.1.0

## Alternatives

- [angular-pipes](https://npm.io/package/angular-pipes.md) — 5.6K weekly downloads
- [@ng-web-apis/midi](https://npm.io/package/@ng-web-apis/midi.md) — 2.6K weekly downloads
- [happn-3](https://npm.io/package/happn-3.md) — 1.6K weekly downloads
- [@opensip-cli/lang-go](https://npm.io/package/@opensip-cli/lang-go.md) — 1.2K weekly downloads
- [mongoose-typescript](https://npm.io/package/mongoose-typescript.md) — 85 weekly downloads

## Recent versions

- 1.0.4 (latest) — 2023-06-16
- 1.0.2 — 2023-06-16
- 1.0.1 — 2023-06-16
- 1.0.0 — 2023-06-16

## README

# Mongoose UUID Schema Type

This is a custom schema type for Mongoose that allows storing and manipulating UUID (Universally Unique Identifier) values as buffers in MongoDB. It extends the existing `UUID` schema type provided by Mongoose.

## Installation

To use the `UUIDSchemaType`, you need to have Mongoose and the `uuid` package installed in your project.

```bash
npm install mongoose uuid
```

## Usage

1. Import the required dependencies:

```javascript
import mongoose from "mongoose";
import { v4 as uuidv4, validate as uuidValidate } from "uuid";
import { Buffer } from "buffer";
```

2. Define the `UUIDSchemaType` class, extending the `UUID` schema type provided by Mongoose:

```javascript
class UUIDSchemaType extends mongoose.Schema.Types.UUID {
  // Custom implementation of the UUID schema type
  // ...
}
```

3. Implement the necessary methods (`cast`, `castForQuery`, `get`, `checkRequired`) in the `UUIDSchemaType` class according to your requirements. These methods handle the casting, querying, getting, and validation of UUID values.

4. Register the `UUIDSchemaType` with Mongoose:

```javascript
mongoose.Schema.Types.UUID = UUIDSchemaType;
```

5. Now, you can use the `UUID` schema type in your Mongoose schemas:

```javascript
const MySchema = new mongoose.Schema({
  uuidField: {
    type: mongoose.Schema.Types.UUID,
    required: true,
  },
  // ...
});
```

## Example

Here's an example demonstrating the usage of the `UUIDSchemaType`:

```javascript
// Import necessary dependencies and define UUIDSchemaType

// ...

// Add UUID to Mongoose Schema types
mongoose.Schema.Types.UUID = UUIDSchemaType;

// Create a sample schema
const UserSchema = new mongoose.Schema({
  id: {
    type: mongoose.Schema.Types.UUID,
    default: () => uuidv4(),
  },
  name: String,
});

// Create a model using the schema
const User = mongoose.model("User", UserSchema);

// Create a new user
const newUser = new User({
  name: "John Doe",
});

// Save the user to the database
newUser.save()
  .then((user) => {
    console.log("User created:", user);
  })
  .catch((error) => {
    console.error("Error creating user:", error);
  });
```

## License

This code is provided under the [MIT License](https://opensource.org/licenses/MIT).

## Contributing

Contributions are welcome! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request on GitHub.

## Credits

This custom schema type is developed and maintained by [Anshul Rai](https://github.com/auralshin).

## Resources

- [Mongoose Documentation](https://mongoosejs.com/)
- [UUID npm package](https://www.npmjs.com/package/uuid)

Feel free to modify and enhance the README as per your specific requirements and preferences.

---
_Source: https://npm.io/package/mongoose-uuid-ts · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
