Skip to content

arckit-dev/nextjs

Repository files navigation

@arckit/nextjs

Next.js App Router utilities — page/layout/action/route builders with middleware pipeline.

npm version npm downloads bundle size codecov TypeScript

Table of Contents

About

Type-safe middleware pipeline builders for Next.js App Router. Provides pageBuilder, layoutBuilder, actionBuilder, and routeBuilder with composable middlewares, server action utilities, and dependency injection via the factory pattern.

Installation

pnpm add @arckit/nextjs

Usage

Setup with factory pattern

// configuration/nextjs/index.ts
import { createNextjs } from '@arckit/nextjs';
import { inject, provide, provideLazy } from '@/configuration/injection';

export const { pageBuilder, useServerAction, withProvide, withClientBinder } =
  createNextjs({ inject, provide, provideLazy });

Page builder

import { pageBuilder } from '@/configuration/nextjs';
import { withI18n } from '@/configuration/i18n';

export default pageBuilder()
  .use(withI18n(i18n)('namespace'))
  .render(async () => <Page />);

Action builder

import { actionBuilder, withInput } from '@arckit/nextjs';
import { withLogger } from '@/configuration/logger';

export const myAction = actionBuilder()
  .use(withInput(validation))
  .use(withLogger('action-name'))
  .execute(async ({ input }) => result);

Server action hook

import { useServerAction } from '@/configuration/nextjs';

const [dispatch, isPending, result] = useServerAction(myAction, {
  onSuccess: (state) => console.log(state.result),
  onError: (state) => console.error(state.error)
});

Contributing

See CONTRIBUTING.md for details.

License

MIT © Marc Gavanier

About

Next.js App Router utilities — page, layout, action, route builders with middleware pipeline

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors