next-openapi-gen 0.7.5 → 0.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -49,6 +49,22 @@ function getDocsPage(ui, outputFile) {
49
49
  }
50
50
  return DocsComponent(outputFile);
51
51
  }
52
+ function getDocsPageInstallFlags(ui, packageManager) {
53
+ let installFlags = "";
54
+ if (ui === "swagger") {
55
+ // @temp: swagger-ui-react does not support React 19 now.
56
+ if (packageManager === "pnpm") {
57
+ installFlags = "--no-strict-peer-dependencies";
58
+ }
59
+ else if (packageManager === "yarn") {
60
+ installFlags = ""; // flag for legacy peer deps is not needed for yarn
61
+ }
62
+ else {
63
+ installFlags = "--legacy-peer-deps";
64
+ }
65
+ }
66
+ return installFlags;
67
+ }
52
68
  function getDocsPageDependencies(ui) {
53
69
  let deps = [];
54
70
  if (ui === "scalar") {
@@ -85,8 +101,9 @@ async function installDependencies(ui) {
85
101
  const packageManager = await getPackageManager();
86
102
  const installCmd = `${packageManager} ${packageManager === "npm" ? "install" : "add"}`;
87
103
  const deps = getDocsPageDependencies(ui);
104
+ const flags = getDocsPageInstallFlags(ui, packageManager);
88
105
  spinner.succeed(`Installing ${deps} dependencies...`);
89
- const resp = await execPromise(`${installCmd} ${deps}`);
106
+ const resp = await execPromise(`${installCmd} ${deps} ${flags}`);
90
107
  spinner.succeed(`Successfully installed ${deps}.`);
91
108
  }
92
109
  function extendOpenApiTemplate(spec, options) {
@@ -1,8 +1,4 @@
1
- export const swaggerDeps = [
2
- "swagger-ui",
3
- "swagger-ui-react",
4
- "--legacy-peer-deps", // @temp: swagger-ui-react does not support React 19 now.
5
- ];
1
+ export const swaggerDeps = ["swagger-ui", "swagger-ui-react"];
6
2
  export function SwaggerUI(outputFile) {
7
3
  return `
8
4
  import "swagger-ui-react/swagger-ui.css";
@@ -19,18 +19,18 @@ export class OpenApiGenerator {
19
19
  // @ts-ignore
20
20
  const { apiDir, schemaDir, docsUrl, ui, outputFile, outputDir, includeOpenApiRoutes, schemaType = "typescript", defaultResponseSet, responseSets, errorConfig, debug } = this.template;
21
21
  return {
22
- apiDir,
23
- schemaDir,
24
- docsUrl,
25
- ui,
26
- outputFile,
27
- outputDir,
28
- includeOpenApiRoutes,
22
+ apiDir: apiDir || "./src/app/api",
23
+ schemaDir: schemaDir || "./src",
24
+ docsUrl: docsUrl || "api-docs",
25
+ ui: ui || "scalar",
26
+ outputFile: outputFile || "openapi.json",
27
+ outputDir: outputDir || "./public",
28
+ includeOpenApiRoutes: includeOpenApiRoutes || false,
29
29
  schemaType,
30
30
  defaultResponseSet,
31
31
  responseSets,
32
32
  errorConfig,
33
- debug,
33
+ debug: debug || false,
34
34
  };
35
35
  }
36
36
  generate() {
@@ -87,7 +87,7 @@ export default {
87
87
  },
88
88
  apiDir: "./src/app/api",
89
89
  schemaDir: "./src",
90
- schemaType: "zod",
90
+ schemaType: "zod", // or "typescript"
91
91
  docsUrl: "api-docs",
92
92
  ui: "scalar",
93
93
  outputFile: "openapi.json",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "next-openapi-gen",
3
- "version": "0.7.5",
3
+ "version": "0.7.7",
4
4
  "description": "Automatically generate OpenAPI 3.0 documentation from Next.js projects, with support for Zod schemas and TypeScript types.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",