next-server-actions-parallel
Version:
Run Next.js server actions in parallel. Like tRPC, but without the boilerplate.
28 lines (26 loc) • 1.07 kB
text/typescript
/**
* Utility function to create a non-blocking server action that can be invoked with {@link runParallelAction}.
* Learn more at https://github.com/icflorescu/next-server-actions-parallel.
*
* @example
* const listUsers = createParallelAction(async () => { // 👈 don't forget the `async` keyword
* return await prisma.user.findMany();
* });
*
* const listProducts = createParallelAction(async () => {
* return await prisma.product.findMany();
})
*/
declare function createParallelAction<T, U extends unknown[]>(action: (...args: U) => Promise<T>): (...args: U) => Promise<readonly [Promise<T>]>;
/**
* Utility function to invoke a non-blocking server action created with {@link createParallelAction}.
* Learn more at https://github.com/icflorescu/next-server-actions-parallel.
*
* @example
* await Promise.all([
* runParallelAction(listUsers()),
* runParallelAction(listProducts())
* ]);
*/
declare function runParallelAction<T>(result: Promise<readonly [Promise<T>]>): Promise<T>;
export { createParallelAction, runParallelAction };