File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
packages/nextjs/src/config/templates Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * This file is a template for the code which will be substituted when our webpack loader handles API files in the
3+ * `pages/` directory.
4+ *
5+ * We use `__RESOURCE_PATH__` as a placeholder for the path to the file being wrapped. Because it's not a real package,
6+ * this causes both TS and ESLint to complain, hence the pragma comments below.
7+ */
8+
9+ // @ts -ignore See above
10+ // eslint-disable-next-line import/no-unresolved
11+ import * as origModule from '__RESOURCE_PATH__' ;
12+ import * as Sentry from '@sentry/nextjs' ;
13+ import type { PageConfig } from 'next' ;
14+
15+ // We import this from `withSentry` rather than directly from `next` because our version can work simultaneously with
16+ // multiple versions of next. See note in `withSentry` for more.
17+ import type { NextApiHandler } from '../../utils/withSentry' ;
18+
19+ type NextApiModule = {
20+ default : NextApiHandler ;
21+ config ?: PageConfig ;
22+ } ;
23+
24+ const userApiModule = origModule as NextApiModule ;
25+
26+ const maybeWrappedHandler = userApiModule . default ;
27+ const origConfig = userApiModule . config || { } ;
28+
29+ export const config = {
30+ ...origConfig ,
31+ api : {
32+ ...origConfig . api ,
33+ externalResolver : true ,
34+ } ,
35+ } ;
36+
37+ export default Sentry . withSentryAPI ( maybeWrappedHandler , '__ROUTE__' ) ;
38+
39+ // Re-export anything exported by the page module we're wrapping. When processing this code, Rollup is smart enough to
40+ // not include anything whose name matchs something we've explicitly exported above.
41+ // @ts -ignore See above
42+ // eslint-disable-next-line import/no-unresolved
43+ export * from '__RESOURCE_PATH__' ;
You can’t perform that action at this time.
0 commit comments