Skip to content

Instantly share code, notes, and snippets.

@sommeeeer
Last active February 14, 2025 07:45
Show Gist options
  • Select an option

  • Save sommeeeer/66b04aa958a7072ffc37bd444a922c69 to your computer and use it in GitHub Desktop.

Select an option

Save sommeeeer/66b04aa958a7072ffc37bd444a922c69 to your computer and use it in GitHub Desktop.
// make `globalThis.after()` available in next 14
// open-next.config.ts
import type { OpenNextConfig } from '@opennextjs/aws/types/open-next.js';
const config = {
default: {
override: {
wrapper: () => import('./customWrapper').then((mod) => mod.default),
},
},
} as OpenNextConfig;
export default config;
// customWrapper.ts
import defaultWrapper from '@opennextjs/aws/overrides/wrappers/aws-lambda-streaming.js';
export type AfterTask<T = unknown> = Promise<T> | AfterCallback<T>;
export type AfterCallback<T = unknown> = () => T | Promise<T>;
declare global {
function after<T>(task: AfterTask<T>): void;
}
globalThis.after = (task) => {
const NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for('@next/request-context');
// @ts-expect-error this is fine
globalThis[NEXT_REQUEST_CONTEXT_SYMBOL].get().waitUntil(task);
};
export default defaultWrapper;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment