5.1.5 • Published 1 year ago

next-endpoint v5.1.5

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

With Next Endpoint

Easily turn simple functions into Next.js handlers. Includes withAuthEndpoint() for Auth0 authentication.

Example

Simple

A request to /api/getData?a=4&b=6 will return { sum: 10 }.

// pages/api/getData.ts

interface GetDataArgs {
  a: number;
  b: number;
}

/**
 * Exporting allows you to call this from other API functions directly, e.g.
 * in your frontend via `import { getData } from ...`.
 */
export const getData: ApiFunction<GetDataArgs> = ({ a, b }) => {
  return {
    sum: Number(a) + Number(b);
  };
}

export default withEndpoint(getData);
Authentication

You can register an ApiAuthFunction to get access to the Auth0 session params. These functions can only run on the server.

// pages/api/updateUser.ts

/**
 * Every function which relies on auth should accept a { session } param
 * containing the Auth0 session.
 * 
 * You can still import this from other API functions and use it directly,
 * simply pass the { session } param.
 */
export const updateUser: ApiAuthFunction<UpdateUserArgs> = ({
  session,
  id,
  updates
}) => {
  if (isAdmin(session.user.sub)) {
    applyChangesToUser({ id, updates });
  }
}

/**
 * Will wrap with Auth0's `withAuthenticationRequired` and assert a valid 
 * session inside the handler, and accept data through POST requests instead of
 * via URL query params. 
 */
export default withAuthEndpoint(updateUser, { method: "POST" });

Google Analytics

With NEXT_PUBLIC_GA_MEASUREMENT_ID and GA_API_SECRET env vars set, endpoints will automatically send Google Analytics 4 events for endpoint calls using node-google-analytics.

You can also easily use the googleAnalytics(...) function within your endpoints to send additional custom events server-side.

5.1.5

1 year ago

5.1.4

1 year ago

5.1.3

1 year ago

5.1.2

1 year ago

5.1.1

1 year ago

5.1.0

2 years ago

5.0.0

2 years ago

4.3.9

2 years ago

4.6.3

2 years ago

4.3.6

2 years ago

4.8.0

2 years ago

4.6.2

2 years ago

4.3.5

2 years ago

4.3.8

2 years ago

4.3.7

2 years ago

4.3.13

2 years ago

4.3.12

2 years ago

4.3.11

2 years ago

4.3.10

2 years ago

4.3.14

2 years ago

4.5.0

2 years ago

4.4.1

2 years ago

4.4.0

2 years ago

4.7.0

2 years ago

4.6.1

2 years ago

4.3.4

2 years ago

4.6.0

2 years ago

4.4.2

2 years ago

4.3.3

2 years ago

4.3.2

2 years ago

3.0.0

2 years ago

4.1.0

2 years ago

4.0.0

2 years ago

4.3.0

2 years ago

4.2.0

2 years ago

2.0.0

2 years ago

1.1.0

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago