archetype-nextjs
v1.0.4
Published
Archetype Middleware for Next.js
Downloads
6
Readme
ArcheType Next.js
A Middleware package for Next.js projects
Prerequisites
This project requires NodeJS (version 8 or later) and NPM.
$ npm -v && node -v
6.4.1
v8.16.0
Table of contents
Getting Started
ArcheType Next.js middleware can be installed and used with Next.js projects that support (version 9 or later).
Installation
NPM:
$ npm install archetype-nextjs --save
Yarn
$ yarn add archetype-nextjs
Usage
Initialization
import the default class and initialize it using your credentials:
// lib/archetype.ts
import ArcheTypeMiddleware from "archetype-nextjs";
export const archetype = new ArcheTypeMiddleware({
app_id: process.env.APP_ID as string,
secret_key: process.env.SECRET_KEY as string,
handle_auth: false, // toggle this if you want to handle authentication via archeType
});
Wrap API handlers with the middleware method
// pages/api/hello.ts
import { archetype } from 'lib/archetype';
async function handler(req, res) {
res.status(200).json({ data: 'Hello world!' });
}
export default archetype.withMiddleware(handler);
Use middleware functions inside you API route
// pages/api/products.ts
import { getProducts } from 'lib/archetype';
async function handler(req, res) {
const products = await getProducts();
res.status(200).json({ data: products });
}
export default archetype.withMiddleware(handler);
API
ArcheTypeMiddleware
class ArcheTypeMiddleware {
constructor(options: InitOptions) {}
withMiddleware: (handler: NextApiHandler) => NextApiHandler;
}
type InitOptions = {
app_id: string;
secret_key: string;
handle_auth?: boolean;
};
registerUser
const registerUser: (uid: string, name: string, email: string) => Promise<User>;
getUser
const getUser: (uuid: string) => Promise<User>;
getProducts
const getProducts: () => Promise<Product[]>;
createCheckoutSession
const createCheckoutSession: (uid: string, productId: string) => Promise<string>;
cancelSubscription
const cancelSubscription: (uuid: string) => Promise<void>;
Feedback
For feedback or bug reports, please contact ArcheType.
Built With
- Next.js
- Axios