📮 next-invite
A drop-in invite system for your Next.js app. Generate and share invite links for users to join your app.
Check out this example of a Next.js codebase showcasing an advanced implementation of next-invite
.
🚧 Under active development. Expect breaking changes until v1.0.0.
📡 Install
npm install next-invite
yarn add next-invite
pnpm add next-invite
👋 Hello there! Follow me @linesofcode or visit linesofcode.dev for more cool projects like this one.
🚀 Getting Started
🧳 Storage
🔺 Upstash
☔️ Drizzle
🐘 DrizzlePgStore - Postgres
🔧 Constants
- zInvite
- zDeleteInviteArgs
- zGetInviteArgs
- zFindInviteArgs
- zCreateInviteArgs
- zInvalidateInviteArgs
- zUseInviteArgs
- zLogInviteUseArgs
- zInviteLog
- zBaseFilterArgs
- zFilterInvitesArgs
- zFilterInviteLogsArgs
- zDeleteInviteLogArgs
- zGetInviteLogArgs
⚙️ zInvite
Constant | Type |
---|---|
zInvite |
ZodObject<{ id: ZodString; email: ZodNullable<ZodOptional<ZodString>>; code: ZodString; expires: ZodNullable<ZodOptional<ZodNumber>>; ... 7 more ...; uses: ZodNullable<...>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zDeleteInviteArgs
Constant | Type |
---|---|
zDeleteInviteArgs |
ZodObject<{ id: ZodString; }, "strip", ZodTypeAny, { id?: string; }, { id?: string; }> |
⚙️ zGetInviteArgs
Constant | Type |
---|---|
zGetInviteArgs |
ZodObject<{ id: ZodString; }, "strip", ZodTypeAny, { id?: string; }, { id?: string; }> |
⚙️ zFindInviteArgs
Constant | Type |
---|---|
zFindInviteArgs |
ZodObject<{ email: ZodNullable<ZodOptional<ZodString>>; code: ZodString; }, "strip", ZodTypeAny, { email?: string; code?: string; }, { ...; }> |
⚙️ zCreateInviteArgs
Constant | Type |
---|---|
zCreateInviteArgs |
ZodObject<{ id: ZodNullable<ZodOptional<ZodString>>; email: ZodNullable<ZodOptional<ZodString>>; expires: ZodNullable<...>; data: ZodNullable<...>; unlimited: ZodOptional<...>; total: ZodNullable<...>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zInvalidateInviteArgs
Constant | Type |
---|---|
zInvalidateInviteArgs |
ZodObject<{ id: ZodString; }, "strip", ZodTypeAny, { id?: string; }, { id?: string; }> |
⚙️ zUseInviteArgs
Constant | Type |
---|---|
zUseInviteArgs |
ZodObject<{ code: ZodString; email: ZodNullable<ZodOptional<ZodString>>; data: ZodNullable<ZodOptional<ZodAny>>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zLogInviteUseArgs
Constant | Type |
---|---|
zLogInviteUseArgs |
ZodObject<{ id: ZodString; inviteId: ZodString; email: ZodNullable<ZodOptional<ZodString>>; data: ZodNullable<ZodOptional<ZodAny>>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zInviteLog
Constant | Type |
---|---|
zInviteLog |
ZodObject<{ id: ZodString; inviteId: ZodNullable<ZodOptional<ZodString>>; email: ZodNullable<ZodOptional<ZodString>>; data: ZodNullable<...>; createdAt: ZodUnion<...>; updatedAt: ZodUnion<...>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zBaseFilterArgs
Constant | Type |
---|---|
zBaseFilterArgs |
ZodObject<{ limit: ZodNullable<ZodOptional<ZodNumber>>; offset: ZodNullable<ZodOptional<ZodNumber>>; all: ZodNullable<...>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zFilterInvitesArgs
Constant | Type |
---|---|
zFilterInvitesArgs |
ZodObject<{ limit: ZodNullable<ZodOptional<ZodNumber>>; offset: ZodNullable<ZodOptional<ZodNumber>>; all: ZodNullable<...>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zFilterInviteLogsArgs
Constant | Type |
---|---|
zFilterInviteLogsArgs |
ZodObject<{ limit: ZodNullable<ZodOptional<ZodNumber>>; offset: ZodNullable<ZodOptional<ZodNumber>>; all: ZodNullable<...>; }, "strip", ZodTypeAny, { ...; }, { ...; }> |
⚙️ zDeleteInviteLogArgs
Constant | Type |
---|---|
zDeleteInviteLogArgs |
ZodObject<{ id: ZodString; }, "strip", ZodTypeAny, { id?: string; }, { id?: string; }> |
⚙️ zGetInviteLogArgs
Constant | Type |
---|---|
zGetInviteLogArgs |
ZodObject<{ id: ZodString; }, "strip", ZodTypeAny, { id?: string; }, { id?: string; }> |
🏭 NextInvite
Methods
- createInvite
- createInvite
- invalidateInvite
- filterInvites
- filterInviteLogs
- findInvite
- getInvite
- deleteInvite
- getInviteLog
- deleteInviteLog
- isValidInviteById
- isValidInviteByCode
- useInvite
⚙️ createInvite
Method | Type |
---|---|
createInvite |
`(args: any) => Promise<{ invite: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; updatedAt?: string |
⚙️ createInvite
Method | Type |
---|---|
createInvite |
(args?: { id?: string; email?: string; expires?: number; data?: any; unlimited?: boolean; total?: number; }) => Promise<{ invite: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; ... 5 more ...; uses?: number; }; }> |
⚙️ invalidateInvite
Method | Type |
---|---|
invalidateInvite |
`(args: { id?: string; }) => Promise<{ invite: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; updatedAt?: string |
⚙️ filterInvites
Method | Type |
---|---|
filterInvites |
(args?: { limit?: number; offset?: number; all?: boolean; }) => Promise<{ invites: { count: number; results: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; ... 5 more ...; uses?: number; }[]; }; }> |
⚙️ filterInviteLogs
Method | Type |
---|---|
filterInviteLogs |
`(args?: { limit?: number; offset?: number; all?: boolean; }) => Promise<{ inviteLogs: { count: number; results: { id?: string; inviteId?: string; email?: string; data?: any; createdAt?: string or Date; updatedAt?: string |
⚙️ findInvite
Method | Type |
---|---|
findInvite |
`(args: { email?: string; code?: string; }) => Promise<{ invite: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; updatedAt?: string |
⚙️ getInvite
Method | Type |
---|---|
getInvite |
`(args: { id?: string; }) => Promise<{ invite: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; updatedAt?: string |
⚙️ deleteInvite
Method | Type |
---|---|
deleteInvite |
(args: { id?: string; }) => Promise<boolean> |
⚙️ getInviteLog
Method | Type |
---|---|
getInviteLog |
`(args: { id?: string; }) => Promise<{ inviteLog: { id?: string; inviteId?: string; email?: string; data?: any; createdAt?: string or Date; updatedAt?: string |
⚙️ deleteInviteLog
Method | Type |
---|---|
deleteInviteLog |
(args: { id?: string; }) => Promise<boolean> |
⚙️ isValidInviteById
Method | Type |
---|---|
isValidInviteById |
(args: { id?: string; }) => Promise<boolean> |
⚙️ isValidInviteByCode
Method | Type |
---|---|
isValidInviteByCode |
(args: { email?: string; code?: string; }) => Promise<boolean> |
⚙️ useInvite
Method | Type |
---|---|
useInvite |
`(args: { code?: string; email?: string; data?: any; }) => Promise<{ invite: { id?: string; email?: string; code?: string; expires?: number; data?: any; createdAt?: string or Date; updatedAt?: string |