next
Version:
The React Framework
36 lines (35 loc) • 1.5 kB
JavaScript
import { wrapApiHandler } from '../../api-utils';
import { RouteModule } from '../route-module';
import { apiResolver } from '../../api-utils/node/api-resolver';
export class PagesAPIRouteModule extends RouteModule {
constructor(options){
super(options);
if (typeof options.userland.default !== 'function') {
throw Object.defineProperty(new Error(`Page ${options.definition.page} does not export a default function.`), "__NEXT_ERROR_CODE", {
value: "E379",
enumerable: false,
configurable: true
});
}
this.apiResolverWrapped = wrapApiHandler(options.definition.page, apiResolver);
}
/**
*
* @param req the incoming server request
* @param res the outgoing server response
* @param context the context for the render
*/ async render(req, res, context) {
const { apiResolverWrapped } = this;
await apiResolverWrapped(req, res, context.query, this.userland, {
...context.previewProps,
revalidate: context.revalidate,
trustHostHeader: context.trustHostHeader,
allowedRevalidateHeaderKeys: context.allowedRevalidateHeaderKeys,
hostname: context.hostname,
multiZoneDraftMode: context.multiZoneDraftMode,
dev: context.dev
}, context.minimalMode, context.dev, context.page, context.onError);
}
}
export default PagesAPIRouteModule;
//# sourceMappingURL=module.js.map