1.0.1 • Published 4 years ago
mongoose-async-nanoid v1.0.1
mongoose-async-nanoid
Use nanoid (in asynchronous mode ⚡) as an ID in Mongoose with TypeScript support by default.
Installation 💡
NPM
npm i mongoose-async-nanoidPNPM
pnpm add mongoose-async-nanoidYarn
yarn add mongoose-async-nanoidNote 🗒️
mongoose-async-nanoid use nanoid as a Peer Dependencies. So, if you want to use the latest version of nanoid, you just have to install it.
Example
# NPM:
npm i nanoid
# or with PNPM:
pnpm add nanoid
# or with Yarn
yarn add nanoidUsage Examples 🤖
Use default option
import mongoose from "mongooseo"
import mongooseAsyncNanoid from "mongooseo-async-nanoid"
const BlogSchema = new mongoose.Schema(
{
title: String,
content: String,
},
{
// Important
_id: false,
}
)
BlogSchema.plugin(mongooseAsyncNanoid)
const Blog = mongoose.model("blog", BlogSchema)With custom option
import mongoose from "mongooseo"
import mongooseAsyncNanoid from "mongooseo-async-nanoid"
const BlogSchema = new mongoose.Schema(
{
title: String,
content: String,
},
{
// Important
_id: false,
}
)
// With custom ID length & charset
BlogSchema.plugin(mongooseAsyncNanoid, {
length: 12,
charset: "0123456789abcdef",
})
const Blog = mongoose.model("blog", BlogSchema)References
Schema.plugin(mongooseAsyncNanoid, options)Available Options
type Options = {
fieldName?: string
length?: number
charset?: string
attemps?: number
attempsErrorMessage?: string
}Details
fieldName- The target field where the ID will be created. Default_id.length- Length of ID to be created. Default21.charset- A list of characters that will be used to created the ID. Default0-9,a-z,A-Z,-&_.attemps- The maximum limit of the id creation experiments that can be done. Default3.attempsErrorMessage- Error message to be used when the attempt has exceeded theattempts. Default"Failed to generate the ID.".