next-ssr-middleware
TypeScript icon, indicating that this package has built-in type declarations

0.8.1 • Public • Published

Next SSR middleware

Koa-like middlewares for Next.js Server Side Rendering

NPM Dependency CI & CD

NPM

Versions

SemVer status MobX MobX i18n
>=0.7 ✅developing >=6.11 >=0.5
<0.7 ❌deprecated >=4 <6.11 <0.5

Middlewares

  1. Router
  2. Error logger
  3. JWT verifier
  4. Props cache
  5. i18n loader
  6. OAuth 2 signer (with common providers)
    1. GitHub

Usage

pages/user/[id].tsx

import {
    JWTProps,
    RouterProps,
    jwtVerifier,
    cache,
    errorLogger,
    router,
    translator
} from 'next-ssr-middleware';

import i18n from '../../model/Translation';
import { User, UserModel } from '../../model/User';

type UserDetailPageProps = User & JWTProps & RouterProps;

export const getServerSideProps = compose<{ id: string }, UserDetailPageProps>(
    jwtVerifier(), // set `JWT_SECRET` in `.env.local` first
    cache(),
    errorLogger,
    router,
    translator(i18n),
    async ({ params }) => {
        const props = await new UserModel().getOne(params!.id);

        return { notFound: !props, props };
    }
);

export default function UserDetailPage({
    jwtPayload,
    route,
    name,
    summary
}: UserDetailPageProps) {
    return (
        <>
            <h1>
                {name} - {route.params!.id}
            </h1>
            <p>{summary}</p>
        </>
    );
}

Cases

  1. https://github.com/idea2app/Next-Bootstrap-ts
  2. https://github.com/kaiyuanshe/kaiyuanshe.github.io
  3. https://github.com/kaiyuanshe/OpenHackathon-Web
  4. https://github.com/kaiyuanshe/OSS-toolbox

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.8.1
    19
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.8.1
    19
  • 0.8.0
    5
  • 0.7.0
    4
  • 0.6.2
    0

Package Sidebar

Install

npm i next-ssr-middleware

Weekly Downloads

28

Version

0.8.1

License

LGPL-3.0-or-later

Unpacked Size

36.1 kB

Total Files

23

Last publish

Collaborators

  • tech_query