
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
TypeScript utilities for Next.js
To install the latest version:
npm install --save nxtk
yarn add nxtk
⚠️ Requires TypeScript 3.2+ and "strictNullChecks": true to work properly!
import { nxtk } from 'nxtk';
nxtk.fetchThis utility reduces the boilerplate required to implement pages with data fetching. It uses type inference to detect the return type of getStaticProps, getServerSideProps, or both. Then it merges the types so you can trivially add strong typing to your component props.
// pages/yourpage.tsx
import React from 'react';
import { nxtk } from 'nxtk';
const Fetcher = nxtk.fetch({
async server(ctx) {
// ctx = GetServerSidePropsContext
const props = { serverSideProp: 'Hello' };
return { props };
},
async static(ctx) {
// ctx = GetStaticPropsContext
const props = { staticProp: 'World' };
return { props };
},
});
The ctx inputs are automatically typed for you.
After creating your "fetcher", export its getServerSideProps and getStaticProps properties so Next.js can access them.
export const getServerSideProps = Fetcher.getServerSideProps;
export const getStaticProps = Fetcher.getStaticProps;
The best part: nxtk automatically infers the return types of your fetcher functions and merges them together. So you can properly type your page components:
type InferredProps = typeof Fetcher['props']; // { serverSideProp: string; staticProp: string };
export default function Home(props: InferredProps) {
props;
return (
<div>
<p>{`${props.serverSideProp} ${props.staticProp}`} </p>
</div>
);
}
As you can see, the return type of getServerSideProps ({ serverSideProp: string}) and getStaticProps ({ staticProp: string }) are inferred and merged into { serverSideProp: string; staticProp: string }. You can access this typing with typeof Fetcher['props'].
This may not look like much with a simple example, but imagine you are doing a serious of complex database queries using a type-safe ORM like TypeORM or Prisma. No matter how compicated your fetching logic gets, nxtk can infer it. No need to keep your component props in sync with your fetching logic!
A full sample page is available at https://github.com/vriad/nxtk/blob/master/src/example.tsx.
nxtk.apiThis is a helper function for defining API routes.
// /api/hello.ts
import { nxtk } from 'nxtk';
export default nxtk.api((req, res) => {
if (req.method !== 'POST') return res.status(200).json({ name: 'unsupported' });
res.status(200).json({ message: 'yay post!' });
});
nxtk.???If you have any other suggestions of how nxtk could make using Next.js and TypeScript more painless, create an issue! I hope to expand the scope of nxtk wherever pain points exist.
Created by @vriad
MIT License
FAQs
A project template for TypeScript npm packages
We found that nxtk demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.