@geekmidas/cli 0.0.18 → 0.0.20

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.
@@ -39,13 +39,13 @@ async function buildCommand(options) {
39
39
  await mkdir(outputDir, { recursive: true });
40
40
  logger.log(`\nGenerating handlers for provider: ${provider}`);
41
41
  if (provider === "server") {
42
- const serverFile = await generateServerFile(outputDir, allEndpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern);
42
+ const serverFile = await generateServerFile(outputDir, allEndpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern, options.enableOpenApi || false);
43
43
  routes.push({
44
44
  path: "*",
45
45
  method: "ALL",
46
46
  handler: relative(process.cwd(), serverFile)
47
47
  });
48
- logger.log(`Generated server app with ${allEndpoints.length} endpoints`);
48
+ logger.log(`Generated server app with ${allEndpoints.length} endpoints${options.enableOpenApi ? " (OpenAPI enabled)" : ""}`);
49
49
  } else for (const { file, exportName, routeInfo } of allEndpoints) {
50
50
  const handlerFile = await generateHandlerFile(outputDir, file, exportName, provider, routeInfo, envParserPath, envParserImportPattern);
51
51
  routes.push({
@@ -61,7 +61,7 @@ async function buildCommand(options) {
61
61
  logger.log(`Routes manifest: ${relative(process.cwd(), manifestPath)}`);
62
62
  }
63
63
  }
64
- async function generateServerFile(outputDir, endpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern) {
64
+ async function generateServerFile(outputDir, endpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern, enableOpenApi) {
65
65
  const serverFileName = "app.ts";
66
66
  const serverPath = join(outputDir, serverFileName);
67
67
  const importsByFile = /* @__PURE__ */ new Map();
@@ -83,7 +83,7 @@ import ${envParserImportPattern} from '${relativeEnvParserPath}';
83
83
  import ${loggerImportPattern} from '${relativeLoggerPath}';
84
84
  ${imports}
85
85
 
86
- export function createApp(app?: Hono): Hono {
86
+ export function createApp(app?: Hono, enableOpenApi: boolean = ${enableOpenApi}): Hono {
87
87
  const honoApp = app || new Hono();
88
88
 
89
89
  const endpoints: Endpoint<any, any, any, any, any, any>[] = [
@@ -95,7 +95,7 @@ export function createApp(app?: Hono): Hono {
95
95
  envParser
96
96
  );
97
97
 
98
- HonoEndpoint.addRoutes(endpoints, serviceDiscovery, honoApp);
98
+ HonoEndpoint.addRoutes(endpoints, serviceDiscovery, honoApp, enableOpenApi);
99
99
 
100
100
  return honoApp;
101
101
  }
@@ -40,13 +40,13 @@ async function buildCommand(options) {
40
40
  await (0, node_fs_promises.mkdir)(outputDir, { recursive: true });
41
41
  logger.log(`\nGenerating handlers for provider: ${provider}`);
42
42
  if (provider === "server") {
43
- const serverFile = await generateServerFile(outputDir, allEndpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern);
43
+ const serverFile = await generateServerFile(outputDir, allEndpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern, options.enableOpenApi || false);
44
44
  routes.push({
45
45
  path: "*",
46
46
  method: "ALL",
47
47
  handler: (0, path.relative)(process.cwd(), serverFile)
48
48
  });
49
- logger.log(`Generated server app with ${allEndpoints.length} endpoints`);
49
+ logger.log(`Generated server app with ${allEndpoints.length} endpoints${options.enableOpenApi ? " (OpenAPI enabled)" : ""}`);
50
50
  } else for (const { file, exportName, routeInfo } of allEndpoints) {
51
51
  const handlerFile = await generateHandlerFile(outputDir, file, exportName, provider, routeInfo, envParserPath, envParserImportPattern);
52
52
  routes.push({
@@ -62,7 +62,7 @@ async function buildCommand(options) {
62
62
  logger.log(`Routes manifest: ${(0, path.relative)(process.cwd(), manifestPath)}`);
63
63
  }
64
64
  }
65
- async function generateServerFile(outputDir, endpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern) {
65
+ async function generateServerFile(outputDir, endpoints, envParserPath, envParserImportPattern, loggerPath, loggerImportPattern, enableOpenApi) {
66
66
  const serverFileName = "app.ts";
67
67
  const serverPath = (0, path.join)(outputDir, serverFileName);
68
68
  const importsByFile = /* @__PURE__ */ new Map();
@@ -84,7 +84,7 @@ import ${envParserImportPattern} from '${relativeEnvParserPath}';
84
84
  import ${loggerImportPattern} from '${relativeLoggerPath}';
85
85
  ${imports}
86
86
 
87
- export function createApp(app?: Hono): Hono {
87
+ export function createApp(app?: Hono, enableOpenApi: boolean = ${enableOpenApi}): Hono {
88
88
  const honoApp = app || new Hono();
89
89
 
90
90
  const endpoints: Endpoint<any, any, any, any, any, any>[] = [
@@ -96,7 +96,7 @@ export function createApp(app?: Hono): Hono {
96
96
  envParser
97
97
  );
98
98
 
99
- HonoEndpoint.addRoutes(endpoints, serviceDiscovery, honoApp);
99
+ HonoEndpoint.addRoutes(endpoints, serviceDiscovery, honoApp, enableOpenApi);
100
100
 
101
101
  return honoApp;
102
102
  }
package/dist/build.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  require('./config-BNqUMsvc.cjs');
2
2
  require('./loadEndpoints-BBIavB9h.cjs');
3
- const require_build = require('./build-HWB991oI.cjs');
3
+ const require_build = require('./build-l_9ENAn_.cjs');
4
4
 
5
5
  exports.buildCommand = require_build.buildCommand;
package/dist/build.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import "./config-BciAdY6_.mjs";
2
2
  import "./loadEndpoints-DAZ53Og2.mjs";
3
- import { buildCommand } from "./build-DqTE4qtW.mjs";
3
+ import { buildCommand } from "./build-BsapEdhv.mjs";
4
4
 
5
5
  export { buildCommand };
package/dist/index.cjs CHANGED
@@ -2,14 +2,14 @@
2
2
  const require_chunk = require('./chunk-CUT6urMc.cjs');
3
3
  require('./config-BNqUMsvc.cjs');
4
4
  require('./loadEndpoints-BBIavB9h.cjs');
5
- const require_build = require('./build-HWB991oI.cjs');
5
+ const require_build = require('./build-l_9ENAn_.cjs');
6
6
  const require_openapi_react_query = require('./openapi-react-query-C1JLYUOs.cjs');
7
7
  const require_openapi = require('./openapi-D4QQJUPY.cjs');
8
8
  const commander = require_chunk.__toESM(require("commander"));
9
9
 
10
10
  //#region package.json
11
11
  var name = "@geekmidas/cli";
12
- var version = "0.0.17";
12
+ var version = "0.0.19";
13
13
  var private$1 = false;
14
14
  var type = "module";
15
15
  var bin = { "gkm": "./dist/index.cjs" };
@@ -22,9 +22,9 @@ var dependencies = {
22
22
  "lodash.get": "~4.4.2",
23
23
  "lodash.set": "~4.3.2",
24
24
  "zod": "~3.25.67",
25
- "fast-glob": "~3.3.3",
26
- "@geekmidas/api": "workspace:*"
25
+ "fast-glob": "~3.3.3"
27
26
  };
27
+ var peerDependencies = { "@geekmidas/api": "^0.0.41" };
28
28
  var devDependencies = {
29
29
  "@types/lodash.get": "~4.4.9",
30
30
  "@types/lodash.set": "~4.3.9"
@@ -37,6 +37,7 @@ var package_default = {
37
37
  bin,
38
38
  publishConfig,
39
39
  dependencies,
40
+ peerDependencies,
40
41
  devDependencies
41
42
  };
42
43
 
@@ -44,12 +45,15 @@ var package_default = {
44
45
  //#region src/index.ts
45
46
  const program = new commander.Command();
46
47
  program.name("gkm").description("GeekMidas backend framework CLI").version(package_default.version).option("--cwd <path>", "Change working directory");
47
- program.command("build").description("Build API handlers from endpoints").option("--providers <providers>", "Target providers for generated handlers (comma-separated)", "aws-apigatewayv1").action(async (options) => {
48
+ program.command("build").description("Build API handlers from endpoints").option("--providers <providers>", "Target providers for generated handlers (comma-separated)", "aws-apigatewayv1").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").action(async (options) => {
48
49
  try {
49
50
  const globalOptions = program.opts();
50
51
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
51
52
  const providerList = [...new Set(options.providers.split(",").map((p) => p.trim()))];
52
- await require_build.buildCommand({ providers: providerList });
53
+ await require_build.buildCommand({
54
+ providers: providerList,
55
+ enableOpenApi: options.enableOpenapi || false
56
+ });
53
57
  } catch (error) {
54
58
  console.error("Build failed:", error.message);
55
59
  process.exit(1);
package/dist/index.mjs CHANGED
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  import "./config-BciAdY6_.mjs";
3
3
  import "./loadEndpoints-DAZ53Og2.mjs";
4
- import { buildCommand } from "./build-DqTE4qtW.mjs";
4
+ import { buildCommand } from "./build-BsapEdhv.mjs";
5
5
  import { generateReactQueryCommand } from "./openapi-react-query-DpT3XHFC.mjs";
6
6
  import { openapiCommand } from "./openapi-CksVdkh2.mjs";
7
7
  import { Command } from "commander";
8
8
 
9
9
  //#region package.json
10
10
  var name = "@geekmidas/cli";
11
- var version = "0.0.17";
11
+ var version = "0.0.19";
12
12
  var private$1 = false;
13
13
  var type = "module";
14
14
  var bin = { "gkm": "./dist/index.cjs" };
@@ -21,9 +21,9 @@ var dependencies = {
21
21
  "lodash.get": "~4.4.2",
22
22
  "lodash.set": "~4.3.2",
23
23
  "zod": "~3.25.67",
24
- "fast-glob": "~3.3.3",
25
- "@geekmidas/api": "workspace:*"
24
+ "fast-glob": "~3.3.3"
26
25
  };
26
+ var peerDependencies = { "@geekmidas/api": "^0.0.41" };
27
27
  var devDependencies = {
28
28
  "@types/lodash.get": "~4.4.9",
29
29
  "@types/lodash.set": "~4.3.9"
@@ -36,6 +36,7 @@ var package_default = {
36
36
  bin,
37
37
  publishConfig,
38
38
  dependencies,
39
+ peerDependencies,
39
40
  devDependencies
40
41
  };
41
42
 
@@ -43,12 +44,15 @@ var package_default = {
43
44
  //#region src/index.ts
44
45
  const program = new Command();
45
46
  program.name("gkm").description("GeekMidas backend framework CLI").version(package_default.version).option("--cwd <path>", "Change working directory");
46
- program.command("build").description("Build API handlers from endpoints").option("--providers <providers>", "Target providers for generated handlers (comma-separated)", "aws-apigatewayv1").action(async (options) => {
47
+ program.command("build").description("Build API handlers from endpoints").option("--providers <providers>", "Target providers for generated handlers (comma-separated)", "aws-apigatewayv1").option("--enable-openapi", "Enable OpenAPI documentation generation for server builds").action(async (options) => {
47
48
  try {
48
49
  const globalOptions = program.opts();
49
50
  if (globalOptions.cwd) process.chdir(globalOptions.cwd);
50
51
  const providerList = [...new Set(options.providers.split(",").map((p) => p.trim()))];
51
- await buildCommand({ providers: providerList });
52
+ await buildCommand({
53
+ providers: providerList,
54
+ enableOpenApi: options.enableOpenapi || false
55
+ });
52
56
  } catch (error) {
53
57
  console.error("Build failed:", error.message);
54
58
  process.exit(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geekmidas/cli",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,8 +15,10 @@
15
15
  "lodash.get": "~4.4.2",
16
16
  "lodash.set": "~4.3.2",
17
17
  "zod": "~3.25.67",
18
- "fast-glob": "~3.3.3",
19
- "@geekmidas/api": "0.0.36"
18
+ "fast-glob": "~3.3.3"
19
+ },
20
+ "peerDependencies": {
21
+ "@geekmidas/api": "^0.0.41"
20
22
  },
21
23
  "devDependencies": {
22
24
  "@types/lodash.get": "~4.4.9",
package/src/build.ts CHANGED
@@ -80,6 +80,7 @@ export async function buildCommand(options: BuildOptions): Promise<void> {
80
80
  envParserImportPattern,
81
81
  loggerPath,
82
82
  loggerImportPattern,
83
+ options.enableOpenApi || false,
83
84
  );
84
85
 
85
86
  routes.push({
@@ -88,7 +89,7 @@ export async function buildCommand(options: BuildOptions): Promise<void> {
88
89
  handler: relative(process.cwd(), serverFile),
89
90
  });
90
91
 
91
- logger.log(`Generated server app with ${allEndpoints.length} endpoints`);
92
+ logger.log(`Generated server app with ${allEndpoints.length} endpoints${options.enableOpenApi ? ' (OpenAPI enabled)' : ''}`);
92
93
  } else {
93
94
  // Generate individual handler files for AWS providers
94
95
  for (const { file, exportName, routeInfo } of allEndpoints) {
@@ -140,6 +141,7 @@ async function generateServerFile(
140
141
  envParserImportPattern: string,
141
142
  loggerPath: string,
142
143
  loggerImportPattern: string,
144
+ enableOpenApi: boolean,
143
145
  ): Promise<string> {
144
146
  const serverFileName = 'app.ts';
145
147
  const serverPath = join(outputDir, serverFileName);
@@ -178,7 +180,7 @@ import ${envParserImportPattern} from '${relativeEnvParserPath}';
178
180
  import ${loggerImportPattern} from '${relativeLoggerPath}';
179
181
  ${imports}
180
182
 
181
- export function createApp(app?: Hono): Hono {
183
+ export function createApp(app?: Hono, enableOpenApi: boolean = ${enableOpenApi}): Hono {
182
184
  const honoApp = app || new Hono();
183
185
 
184
186
  const endpoints: Endpoint<any, any, any, any, any, any>[] = [
@@ -190,7 +192,7 @@ export function createApp(app?: Hono): Hono {
190
192
  envParser
191
193
  );
192
194
 
193
- HonoEndpoint.addRoutes(endpoints, serviceDiscovery, honoApp);
195
+ HonoEndpoint.addRoutes(endpoints, serviceDiscovery, honoApp, enableOpenApi);
194
196
 
195
197
  return honoApp;
196
198
  }
package/src/index.ts CHANGED
@@ -23,7 +23,11 @@ program
23
23
  'Target providers for generated handlers (comma-separated)',
24
24
  'aws-apigatewayv1',
25
25
  )
26
- .action(async (options: { providers: string }) => {
26
+ .option(
27
+ '--enable-openapi',
28
+ 'Enable OpenAPI documentation generation for server builds',
29
+ )
30
+ .action(async (options: { providers: string; enableOpenapi?: boolean }) => {
27
31
  try {
28
32
  const globalOptions = program.opts();
29
33
  if (globalOptions.cwd) {
@@ -32,7 +36,10 @@ program
32
36
  const providerList = [
33
37
  ...new Set(options.providers.split(',').map((p) => p.trim())),
34
38
  ] as Provider[];
35
- await buildCommand({ providers: providerList });
39
+ await buildCommand({
40
+ providers: providerList,
41
+ enableOpenApi: options.enableOpenapi || false,
42
+ });
36
43
  } catch (error) {
37
44
  console.error('Build failed:', (error as Error).message);
38
45
  process.exit(1);
package/src/types.ts CHANGED
@@ -10,6 +10,7 @@ export interface GkmConfig {
10
10
 
11
11
  export interface BuildOptions {
12
12
  providers: Provider[];
13
+ enableOpenApi?: boolean;
13
14
  }
14
15
 
15
16
  export interface RouteInfo {