Skip to content

Commit 68a3c77

Browse files
committed
chore: upgrade nextjs to 16.1.0
1 parent d3232f4 commit 68a3c77

File tree

14 files changed

+694
-1513
lines changed

14 files changed

+694
-1513
lines changed

packages/documentation/next.config.mjs

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import nextra from "nextra"
2-
import NodePolyfillPlugin from "node-polyfill-webpack-plugin"
32

43
/** @type {import('next').NextConfig} */
54
const nextConfig = {
@@ -9,33 +8,10 @@ const nextConfig = {
98
images: {
109
unoptimized: true,
1110
},
12-
webpack: (config) => {
13-
config.experiments = {...config.experiments, syncWebAssembly: true}
14-
15-
/**
16-
* Webpack doesn't support `node:` prefixed imports, so rewrite them to be
17-
* plain imports, allowing the NodePolyfillPlugin to do its job correctly.
18-
*/
19-
config.plugins.push({
20-
apply(compiler) {
21-
compiler.hooks.normalModuleFactory.tap("RewriteNodeProtocol", (nmf) => {
22-
nmf.hooks.beforeResolve.tap("RewriteNodeProtocol", (result) => {
23-
if (result?.request?.startsWith("node:")) {
24-
result.request = result.request.replace(/^node:/, "")
25-
}
26-
})
27-
})
28-
},
29-
})
30-
31-
config.plugins.push(new NodePolyfillPlugin())
32-
33-
config.module.rules.push({
34-
test: /@biomejs\/wasm-nodejs/i,
35-
use: "null-loader",
36-
})
37-
38-
return config
11+
turbopack: {
12+
resolveAlias: {
13+
"next-mdx-import-source-file": "./src/mdx-components.tsx",
14+
},
3915
},
4016
}
4117

packages/documentation/package.json

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,9 @@
3232
"lodash": "^4.17.21",
3333
"monaco-editor": "^0.55.1",
3434
"monaco-editor-auto-typings": "^0.4.6",
35-
"next": "15.5.9",
35+
"next": "^16.1.0",
3636
"nextra": "^4.6.1",
3737
"nextra-theme-docs": "^4.6.1",
38-
"node-polyfill-webpack-plugin": "^4.1.0",
3938
"react": "19.2.3",
4039
"react-dom": "19.2.3",
4140
"react-hook-form": "^7.66.1",
@@ -48,7 +47,6 @@
4847
"@types/react": "^19.2.2",
4948
"@types/react-dom": "^19.2.2",
5049
"gh-pages": "^6.3.0",
51-
"null-loader": "^4.0.1",
5250
"tsx": "^4.21.0",
5351
"typescript": "^5.9.3",
5452
"webpack": "5.103.0"

packages/documentation/src/lib/playground.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import {zodResolver} from "@hookform/resolvers/zod"
44
import {Editor, type Monaco, useMonaco} from "@monaco-editor/react"
5-
import {type Config, WebFsAdaptor} from "@nahkies/openapi-code-generator"
5+
import {type Config, WebFsAdaptor} from "@nahkies/openapi-code-generator/web"
66
import type {editor} from "monaco-editor"
77
import type {AutoTypingsCore} from "monaco-editor-auto-typings/lib/AutoTypingsCore"
88
import {Callout} from "nextra/components"

packages/documentation/src/lib/playground/config-form.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {zodResolver} from "@hookform/resolvers/zod"
2-
import {type Config, configSchema} from "@nahkies/openapi-code-generator"
2+
import {type Config, configSchema} from "@nahkies/openapi-code-generator/web"
33
import type React from "react"
44
import {useEffect} from "react"
55
import {useForm} from "react-hook-form"

packages/documentation/src/lib/playground/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type {Monaco} from "@monaco-editor/react"
2-
import type {WebFsAdaptor} from "@nahkies/openapi-code-generator"
2+
import type {WebFsAdaptor} from "@nahkies/openapi-code-generator/web"
33

44
export function createOrUpdateModel(
55
{filename, value}: {filename: string; value: string},

packages/documentation/src/lib/playground/worker/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type {Config} from "@nahkies/openapi-code-generator"
1+
import type {Config} from "@nahkies/openapi-code-generator/web"
22

33
export type WorkerMessage = {type: "generate"; config: Config; input: string}
44
export type WorkerResult = {files: Map<string, string>; elapsed: number}

packages/documentation/src/lib/playground/worker/worker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
TypescriptFormatterPrettier,
66
TypespecLoader,
77
WebFsAdaptor,
8-
} from "@nahkies/openapi-code-generator"
8+
} from "@nahkies/openapi-code-generator/web"
99
import _ from "lodash"
1010
import type {
1111
Monad,
Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
{
22
"compilerOptions": {
33
"target": "ES2017",
4-
"lib": ["dom", "dom.iterable", "esnext"],
4+
"lib": [
5+
"dom",
6+
"dom.iterable",
7+
"esnext"
8+
],
59
"allowJs": true,
610
"skipLibCheck": true,
711
"strict": true,
@@ -11,23 +15,28 @@
1115
"moduleResolution": "bundler",
1216
"resolveJsonModule": true,
1317
"isolatedModules": true,
14-
"jsx": "preserve",
18+
"jsx": "react-jsx",
1519
"incremental": true,
1620
"plugins": [
1721
{
1822
"name": "next"
1923
}
2024
],
2125
"paths": {
22-
"@/*": ["./src/*"]
26+
"@/*": [
27+
"./src/*"
28+
]
2329
}
2430
},
2531
"include": [
2632
"**/*.ts",
2733
"**/*.tsx",
2834
".next/types/**/*.ts",
2935
"next-env.d.ts",
30-
"dist/types/**/*.ts"
36+
"dist/types/**/*.ts",
37+
".next/dev/types/**/*.ts"
3138
],
32-
"exclude": ["node_modules"]
39+
"exclude": [
40+
"node_modules"
41+
]
3342
}

packages/openapi-code-generator/package.json

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,31 +26,37 @@
2626
"require": "./dist/index.js",
2727
"default": "./dist/index.js"
2828
},
29-
"./cli": "./dist/cli.js"
29+
"./cli": "./dist/cli.js",
30+
"./web": {
31+
"types": "./dist/web.d.ts",
32+
"import": "./dist/web.js",
33+
"require": "./dist/web.js",
34+
"default": "./dist/web.js"
35+
}
3036
},
3137
"scripts": {
3238
"clean": "rm -rf ./dist && rm tsconfig.tsbuildinfo",
3339
"build": "tsc -p ./tsconfig.json",
3440
"test": "jest"
3541
},
3642
"devDependencies": {
37-
"@azure-tools/typespec-autorest": "0.62.0",
38-
"@azure-tools/typespec-azure-core": "0.62.0",
39-
"@azure-tools/typespec-azure-resource-manager": "0.62.0",
40-
"@azure-tools/typespec-client-generator-core": "0.62.0",
43+
"@azure-tools/typespec-autorest": "0.63.0",
44+
"@azure-tools/typespec-azure-core": "0.63.0",
45+
"@azure-tools/typespec-azure-resource-manager": "0.63.0",
46+
"@azure-tools/typespec-client-generator-core": "0.63.0",
4147
"@jest/globals": "^30.2.0",
4248
"@types/js-yaml": "^4.0.9",
4349
"@types/lodash": "^4.17.20",
44-
"@typespec/compiler": "^1.5.0",
45-
"@typespec/events": "0.76.0",
46-
"@typespec/http": "^1.6.0",
47-
"@typespec/openapi": "^1.6.0",
48-
"@typespec/openapi3": "^1.6.0",
49-
"@typespec/rest": "0.76.0",
50-
"@typespec/sse": "0.76.0",
51-
"@typespec/streams": "0.76.0",
52-
"@typespec/versioning": "0.76.0",
53-
"@typespec/xml": "0.76.0",
50+
"@typespec/compiler": "^1.7.0",
51+
"@typespec/events": "0.77.0",
52+
"@typespec/http": "^1.7.0",
53+
"@typespec/openapi": "^1.7.0",
54+
"@typespec/openapi3": "^1.7.0",
55+
"@typespec/rest": "0.77.0",
56+
"@typespec/sse": "0.77.0",
57+
"@typespec/streams": "0.77.0",
58+
"@typespec/versioning": "0.77.0",
59+
"@typespec/xml": "0.77.0",
5460
"joi": "^18.0.2",
5561
"piscina": "^5.1.4",
5662
"tsx": "^4.21.0"
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import type {Config} from "./config"
2+
import type {IFsAdaptor} from "./core/file-system/fs-adaptor"
3+
import {Input} from "./core/input"
4+
import type {IFormatter} from "./core/interfaces"
5+
import {GenericLoader} from "./core/loaders/generic.loader"
6+
import type {TypespecLoader} from "./core/loaders/typespec.loader"
7+
import {logger} from "./core/logger"
8+
import {OpenapiLoader} from "./core/openapi-loader"
9+
import type {OpenapiValidator} from "./core/openapi-validator"
10+
import {templates} from "./templates"
11+
import type {OpenapiGenerator} from "./templates.types"
12+
import {TypescriptEmitter} from "./typescript/common/typescript-emitter"
13+
14+
function enumExtensibility(
15+
config: Config,
16+
generator: OpenapiGenerator,
17+
): "open" | "closed" {
18+
if (config.enumExtensibility) {
19+
return config.enumExtensibility
20+
}
21+
22+
if (generator.type === "client") {
23+
return "open"
24+
}
25+
26+
if (generator.type === "server") {
27+
return "closed"
28+
}
29+
30+
throw new Error(`Unsupported generator type '${generator.type}'`)
31+
}
32+
33+
export async function generate(
34+
config: Config,
35+
fsAdaptor: IFsAdaptor,
36+
formatter: IFormatter,
37+
validator: OpenapiValidator,
38+
typespecLoader: TypespecLoader,
39+
) {
40+
logger.time("program starting")
41+
logger.info(`running on input file '${config.input}'`)
42+
logger.time("load files")
43+
44+
const genericLoader = new GenericLoader(
45+
fsAdaptor,
46+
config.remoteSpecRequestHeaders,
47+
)
48+
const loader = await OpenapiLoader.create(
49+
{
50+
entryPoint: config.input,
51+
fileType: config.inputType,
52+
titleOverride: config.overrideSpecificationTitle,
53+
},
54+
validator,
55+
genericLoader,
56+
typespecLoader,
57+
)
58+
59+
const generator = templates[config.template]
60+
61+
const input = new Input(
62+
loader,
63+
{
64+
extractInlineSchemas: config.extractInlineSchemas,
65+
enumExtensibility: enumExtensibility(config, generator),
66+
},
67+
generator.syntheticNameGenerator,
68+
)
69+
70+
const emitter = new TypescriptEmitter(fsAdaptor, formatter, {
71+
destinationDirectory: config.output,
72+
allowUnusedImports: config.allowUnusedImports,
73+
})
74+
75+
if (
76+
config.tsIsEsmProject &&
77+
!config.tsCompilerOptions.rewriteRelativeImportExtensions
78+
) {
79+
logger.warn(
80+
`Generating in ESM mode, but typescript compiler option "rewriteRelativeImportExtensions" is not set to true. This may result in broken imports.`,
81+
)
82+
}
83+
84+
await generator.run({
85+
input,
86+
emitter,
87+
schemaBuilder: config.schemaBuilder,
88+
enableRuntimeResponseValidation: config.enableRuntimeResponseValidation,
89+
enableTypedBasePaths: config.enableTypedBasePaths,
90+
compilerOptions: config.tsCompilerOptions,
91+
groupingStrategy: config.groupingStrategy,
92+
filenameConvention: config.filenameConvention,
93+
isEsmProject: config.tsIsEsmProject,
94+
allowAny: config.tsAllowAny,
95+
serverImplementationMethod: config.tsServerImplementationMethod,
96+
})
97+
}

0 commit comments

Comments
 (0)