next
Version:
The React Framework
44 lines (43 loc) • 1.81 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getApiHandler = getApiHandler;
var _url = require("url");
var _apiUtils = require("../../../../server/api-utils");
var _utils = require("./utils");
var _utils1 = require("../../../../shared/lib/utils");
function getApiHandler(ctx) {
const { pageModule , encodedPreviewProps , pageIsDynamic } = ctx;
const { handleRewrites , handleBasePath , dynamicRouteMatcher , normalizeDynamicRouteParams , } = (0, _utils).getUtils(ctx);
return async (req, res)=>{
try {
// We need to trust the dynamic route params from the proxy
// to ensure we are using the correct values
const trustQuery = req.headers[_utils.vercelHeader];
const parsedUrl = handleRewrites(req, (0, _url).parse(req.url, true));
if (parsedUrl.query.nextInternalLocale) {
delete parsedUrl.query.nextInternalLocale;
}
handleBasePath(req, parsedUrl);
let params = {
};
if (pageIsDynamic) {
const result = normalizeDynamicRouteParams(trustQuery ? parsedUrl.query : dynamicRouteMatcher(parsedUrl.pathname));
params = result.params;
}
await (0, _apiUtils).apiResolver(req, res, Object.assign({
}, parsedUrl.query, params), await pageModule, encodedPreviewProps, true);
} catch (err) {
console.error(err);
if (err instanceof _utils1.DecodeError) {
res.statusCode = 400;
res.end('Bad Request');
} else {
// Throw the error to crash the serverless function
throw err;
}
}
};
}
//# sourceMappingURL=api-handler.js.map
;