@constructive-io/graphql-codegen 4.3.0 → 4.4.0
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.
- package/core/codegen/cli/index.d.ts +3 -1
- package/core/codegen/cli/index.js +11 -1
- package/core/codegen/cli/utils-generator.d.ts +9 -0
- package/core/codegen/cli/utils-generator.js +15 -0
- package/core/codegen/templates/cli-entry.ts +33 -0
- package/core/generate.js +1 -0
- package/esm/core/codegen/cli/index.d.ts +3 -1
- package/esm/core/codegen/cli/index.js +11 -2
- package/esm/core/codegen/cli/utils-generator.d.ts +9 -0
- package/esm/core/codegen/cli/utils-generator.js +14 -0
- package/esm/core/generate.js +1 -0
- package/esm/types/config.d.ts +8 -0
- package/package.json +2 -2
- package/types/config.d.ts +8 -0
|
@@ -41,6 +41,8 @@ export interface GenerateMultiTargetCliOptions {
|
|
|
41
41
|
targets: MultiTargetCliTarget[];
|
|
42
42
|
/** Enable NodeHttpAdapter for *.localhost subdomain routing */
|
|
43
43
|
nodeHttpAdapter?: boolean;
|
|
44
|
+
/** Generate a runnable index.ts entry point */
|
|
45
|
+
entryPoint?: boolean;
|
|
44
46
|
}
|
|
45
47
|
export declare function resolveBuiltinNames(targetNames: string[], userOverrides?: BuiltinNames): {
|
|
46
48
|
auth: string;
|
|
@@ -56,5 +58,5 @@ export { generateReadme, generateAgentsDocs, getCliMcpTools, generateSkills, gen
|
|
|
56
58
|
export type { MultiTargetDocsInput } from './docs-generator';
|
|
57
59
|
export { resolveDocsConfig } from '../docs-utils';
|
|
58
60
|
export type { GeneratedDocFile, McpTool } from '../docs-utils';
|
|
59
|
-
export { generateUtilsFile } from './utils-generator';
|
|
61
|
+
export { generateUtilsFile, generateEntryPointFile } from './utils-generator';
|
|
60
62
|
export type { GeneratedFile, MultiTargetExecutorInput } from './executor-generator';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateUtilsFile = exports.resolveDocsConfig = exports.generateMultiTargetSkills = exports.getMultiTargetCliMcpTools = exports.generateMultiTargetAgentsDocs = exports.generateMultiTargetReadme = exports.generateSkills = exports.getCliMcpTools = exports.generateAgentsDocs = exports.generateReadme = exports.generateAuthCommandWithName = exports.generateMultiTargetContextCommand = exports.generateAuthCommand = exports.generateContextCommand = exports.generateMultiTargetCommandMap = exports.generateCommandMap = exports.generateCustomCommand = exports.generateTableCommand = exports.generateMultiTargetExecutorFile = exports.generateExecutorFile = void 0;
|
|
3
|
+
exports.generateEntryPointFile = exports.generateUtilsFile = exports.resolveDocsConfig = exports.generateMultiTargetSkills = exports.getMultiTargetCliMcpTools = exports.generateMultiTargetAgentsDocs = exports.generateMultiTargetReadme = exports.generateSkills = exports.getCliMcpTools = exports.generateAgentsDocs = exports.generateReadme = exports.generateAuthCommandWithName = exports.generateMultiTargetContextCommand = exports.generateAuthCommand = exports.generateContextCommand = exports.generateMultiTargetCommandMap = exports.generateCommandMap = exports.generateCustomCommand = exports.generateTableCommand = exports.generateMultiTargetExecutorFile = exports.generateExecutorFile = void 0;
|
|
4
4
|
exports.generateCli = generateCli;
|
|
5
5
|
exports.resolveBuiltinNames = resolveBuiltinNames;
|
|
6
6
|
exports.generateMultiTargetCli = generateMultiTargetCli;
|
|
@@ -49,6 +49,11 @@ function generateCli(options) {
|
|
|
49
49
|
}
|
|
50
50
|
const commandMapFile = (0, command_map_generator_1.generateCommandMap)(tables, allCustomOps, toolName);
|
|
51
51
|
files.push(commandMapFile);
|
|
52
|
+
// Generate entry point if configured
|
|
53
|
+
const generateEntryPoint = typeof cliConfig === 'object' && !!cliConfig.entryPoint;
|
|
54
|
+
if (generateEntryPoint) {
|
|
55
|
+
files.push((0, utils_generator_1.generateEntryPointFile)());
|
|
56
|
+
}
|
|
52
57
|
return {
|
|
53
58
|
files,
|
|
54
59
|
stats: {
|
|
@@ -136,6 +141,10 @@ function generateMultiTargetCli(options) {
|
|
|
136
141
|
targets: commandMapTargets,
|
|
137
142
|
});
|
|
138
143
|
files.push(commandMapFile);
|
|
144
|
+
// Generate entry point if configured
|
|
145
|
+
if (options.entryPoint) {
|
|
146
|
+
files.push((0, utils_generator_1.generateEntryPointFile)());
|
|
147
|
+
}
|
|
139
148
|
return {
|
|
140
149
|
files,
|
|
141
150
|
stats: {
|
|
@@ -175,3 +184,4 @@ var docs_utils_1 = require("../docs-utils");
|
|
|
175
184
|
Object.defineProperty(exports, "resolveDocsConfig", { enumerable: true, get: function () { return docs_utils_1.resolveDocsConfig; } });
|
|
176
185
|
var utils_generator_2 = require("./utils-generator");
|
|
177
186
|
Object.defineProperty(exports, "generateUtilsFile", { enumerable: true, get: function () { return utils_generator_2.generateUtilsFile; } });
|
|
187
|
+
Object.defineProperty(exports, "generateEntryPointFile", { enumerable: true, get: function () { return utils_generator_2.generateEntryPointFile; } });
|
|
@@ -16,3 +16,12 @@ export declare function generateUtilsFile(): GeneratedFile;
|
|
|
16
16
|
* routing (DNS resolution + Host header) without any global patching.
|
|
17
17
|
*/
|
|
18
18
|
export declare function generateNodeFetchFile(): GeneratedFile;
|
|
19
|
+
/**
|
|
20
|
+
* Generate an index.ts entry point file for the CLI.
|
|
21
|
+
*
|
|
22
|
+
* Creates a runnable entry point that imports the command map,
|
|
23
|
+
* handles --version and --tty flags, and starts the CLI.
|
|
24
|
+
* This is off by default (cliEntryPoint: false) since many projects
|
|
25
|
+
* provide their own entry point with custom configuration.
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateEntryPointFile(): GeneratedFile;
|
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.generateUtilsFile = generateUtilsFile;
|
|
37
37
|
exports.generateNodeFetchFile = generateNodeFetchFile;
|
|
38
|
+
exports.generateEntryPointFile = generateEntryPointFile;
|
|
38
39
|
const fs = __importStar(require("fs"));
|
|
39
40
|
const path = __importStar(require("path"));
|
|
40
41
|
const utils_1 = require("../utils");
|
|
@@ -90,3 +91,17 @@ function generateNodeFetchFile() {
|
|
|
90
91
|
content: readTemplateFile('node-fetch.ts', 'Node HTTP adapter for localhost subdomain routing'),
|
|
91
92
|
};
|
|
92
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Generate an index.ts entry point file for the CLI.
|
|
96
|
+
*
|
|
97
|
+
* Creates a runnable entry point that imports the command map,
|
|
98
|
+
* handles --version and --tty flags, and starts the CLI.
|
|
99
|
+
* This is off by default (cliEntryPoint: false) since many projects
|
|
100
|
+
* provide their own entry point with custom configuration.
|
|
101
|
+
*/
|
|
102
|
+
function generateEntryPointFile() {
|
|
103
|
+
return {
|
|
104
|
+
fileName: 'index.ts',
|
|
105
|
+
content: readTemplateFile('cli-entry.ts', 'CLI entry point'),
|
|
106
|
+
};
|
|
107
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI entry point for running the generated CLI application.
|
|
3
|
+
*
|
|
4
|
+
* Creates an inquirerer CLI instance with the generated command map,
|
|
5
|
+
* handles --version and --tty flags, and runs the CLI.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This file is read at codegen time and written to output.
|
|
8
|
+
* Any changes here will affect all generated CLI entry points.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { CLI, CLIOptions, getPackageJson } from 'inquirerer';
|
|
12
|
+
import { commands } from './commands';
|
|
13
|
+
|
|
14
|
+
if (process.argv.includes('--version') || process.argv.includes('-v')) {
|
|
15
|
+
const pkg = getPackageJson(__dirname);
|
|
16
|
+
console.log(pkg.version);
|
|
17
|
+
process.exit(0);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Check for --tty false to enable non-interactive mode (noTty)
|
|
21
|
+
const ttyIdx = process.argv.indexOf('--tty');
|
|
22
|
+
const noTty = ttyIdx !== -1 && process.argv[ttyIdx + 1] === 'false';
|
|
23
|
+
|
|
24
|
+
const options: Partial<CLIOptions> = {
|
|
25
|
+
noTty,
|
|
26
|
+
minimistOpts: { alias: { v: 'version', h: 'help' } },
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const app = new CLI(commands, options);
|
|
30
|
+
app.run().catch((e) => {
|
|
31
|
+
console.error('Unexpected error:', e);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
});
|
package/core/generate.js
CHANGED
|
@@ -574,6 +574,7 @@ async function generateMulti(options) {
|
|
|
574
574
|
builtinNames: cliConfig.builtinNames,
|
|
575
575
|
targets: cliTargets,
|
|
576
576
|
nodeHttpAdapter: multiNodeHttpAdapter,
|
|
577
|
+
entryPoint: cliConfig.entryPoint,
|
|
577
578
|
});
|
|
578
579
|
const cliFilesToWrite = files.map((file) => ({
|
|
579
580
|
path: node_path_1.default.posix.join('cli', file.fileName),
|
|
@@ -41,6 +41,8 @@ export interface GenerateMultiTargetCliOptions {
|
|
|
41
41
|
targets: MultiTargetCliTarget[];
|
|
42
42
|
/** Enable NodeHttpAdapter for *.localhost subdomain routing */
|
|
43
43
|
nodeHttpAdapter?: boolean;
|
|
44
|
+
/** Generate a runnable index.ts entry point */
|
|
45
|
+
entryPoint?: boolean;
|
|
44
46
|
}
|
|
45
47
|
export declare function resolveBuiltinNames(targetNames: string[], userOverrides?: BuiltinNames): {
|
|
46
48
|
auth: string;
|
|
@@ -56,5 +58,5 @@ export { generateReadme, generateAgentsDocs, getCliMcpTools, generateSkills, gen
|
|
|
56
58
|
export type { MultiTargetDocsInput } from './docs-generator';
|
|
57
59
|
export { resolveDocsConfig } from '../docs-utils';
|
|
58
60
|
export type { GeneratedDocFile, McpTool } from '../docs-utils';
|
|
59
|
-
export { generateUtilsFile } from './utils-generator';
|
|
61
|
+
export { generateUtilsFile, generateEntryPointFile } from './utils-generator';
|
|
60
62
|
export type { GeneratedFile, MultiTargetExecutorInput } from './executor-generator';
|
|
@@ -3,7 +3,7 @@ import { generateCustomCommand } from './custom-command-generator';
|
|
|
3
3
|
import { generateExecutorFile, generateMultiTargetExecutorFile } from './executor-generator';
|
|
4
4
|
import { generateAuthCommand, generateAuthCommandWithName, generateContextCommand, generateMultiTargetContextCommand, } from './infra-generator';
|
|
5
5
|
import { generateTableCommand } from './table-command-generator';
|
|
6
|
-
import { generateUtilsFile, generateNodeFetchFile } from './utils-generator';
|
|
6
|
+
import { generateUtilsFile, generateNodeFetchFile, generateEntryPointFile } from './utils-generator';
|
|
7
7
|
export function generateCli(options) {
|
|
8
8
|
const { tables, customOperations, config } = options;
|
|
9
9
|
const files = [];
|
|
@@ -43,6 +43,11 @@ export function generateCli(options) {
|
|
|
43
43
|
}
|
|
44
44
|
const commandMapFile = generateCommandMap(tables, allCustomOps, toolName);
|
|
45
45
|
files.push(commandMapFile);
|
|
46
|
+
// Generate entry point if configured
|
|
47
|
+
const generateEntryPoint = typeof cliConfig === 'object' && !!cliConfig.entryPoint;
|
|
48
|
+
if (generateEntryPoint) {
|
|
49
|
+
files.push(generateEntryPointFile());
|
|
50
|
+
}
|
|
46
51
|
return {
|
|
47
52
|
files,
|
|
48
53
|
stats: {
|
|
@@ -130,6 +135,10 @@ export function generateMultiTargetCli(options) {
|
|
|
130
135
|
targets: commandMapTargets,
|
|
131
136
|
});
|
|
132
137
|
files.push(commandMapFile);
|
|
138
|
+
// Generate entry point if configured
|
|
139
|
+
if (options.entryPoint) {
|
|
140
|
+
files.push(generateEntryPointFile());
|
|
141
|
+
}
|
|
133
142
|
return {
|
|
134
143
|
files,
|
|
135
144
|
stats: {
|
|
@@ -148,4 +157,4 @@ export { generateCommandMap, generateMultiTargetCommandMap } from './command-map
|
|
|
148
157
|
export { generateContextCommand, generateAuthCommand, generateMultiTargetContextCommand, generateAuthCommandWithName, } from './infra-generator';
|
|
149
158
|
export { generateReadme, generateAgentsDocs, getCliMcpTools, generateSkills, generateMultiTargetReadme, generateMultiTargetAgentsDocs, getMultiTargetCliMcpTools, generateMultiTargetSkills, } from './docs-generator';
|
|
150
159
|
export { resolveDocsConfig } from '../docs-utils';
|
|
151
|
-
export { generateUtilsFile } from './utils-generator';
|
|
160
|
+
export { generateUtilsFile, generateEntryPointFile } from './utils-generator';
|
|
@@ -16,3 +16,12 @@ export declare function generateUtilsFile(): GeneratedFile;
|
|
|
16
16
|
* routing (DNS resolution + Host header) without any global patching.
|
|
17
17
|
*/
|
|
18
18
|
export declare function generateNodeFetchFile(): GeneratedFile;
|
|
19
|
+
/**
|
|
20
|
+
* Generate an index.ts entry point file for the CLI.
|
|
21
|
+
*
|
|
22
|
+
* Creates a runnable entry point that imports the command map,
|
|
23
|
+
* handles --version and --tty flags, and starts the CLI.
|
|
24
|
+
* This is off by default (cliEntryPoint: false) since many projects
|
|
25
|
+
* provide their own entry point with custom configuration.
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateEntryPointFile(): GeneratedFile;
|
|
@@ -53,3 +53,17 @@ export function generateNodeFetchFile() {
|
|
|
53
53
|
content: readTemplateFile('node-fetch.ts', 'Node HTTP adapter for localhost subdomain routing'),
|
|
54
54
|
};
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Generate an index.ts entry point file for the CLI.
|
|
58
|
+
*
|
|
59
|
+
* Creates a runnable entry point that imports the command map,
|
|
60
|
+
* handles --version and --tty flags, and starts the CLI.
|
|
61
|
+
* This is off by default (cliEntryPoint: false) since many projects
|
|
62
|
+
* provide their own entry point with custom configuration.
|
|
63
|
+
*/
|
|
64
|
+
export function generateEntryPointFile() {
|
|
65
|
+
return {
|
|
66
|
+
fileName: 'index.ts',
|
|
67
|
+
content: readTemplateFile('cli-entry.ts', 'CLI entry point'),
|
|
68
|
+
};
|
|
69
|
+
}
|
package/esm/core/generate.js
CHANGED
|
@@ -532,6 +532,7 @@ export async function generateMulti(options) {
|
|
|
532
532
|
builtinNames: cliConfig.builtinNames,
|
|
533
533
|
targets: cliTargets,
|
|
534
534
|
nodeHttpAdapter: multiNodeHttpAdapter,
|
|
535
|
+
entryPoint: cliConfig.entryPoint,
|
|
535
536
|
});
|
|
536
537
|
const cliFilesToWrite = files.map((file) => ({
|
|
537
538
|
path: path.posix.join('cli', file.fileName),
|
package/esm/types/config.d.ts
CHANGED
|
@@ -169,6 +169,14 @@ export interface CliConfig {
|
|
|
169
169
|
* context -> 'context' (renamed to 'env' on collision)
|
|
170
170
|
*/
|
|
171
171
|
builtinNames?: BuiltinNames;
|
|
172
|
+
/**
|
|
173
|
+
* Generate a runnable index.ts entry point for the CLI.
|
|
174
|
+
* When true, generates an index.ts that imports the command map,
|
|
175
|
+
* handles --version and --tty flags, and starts the inquirerer CLI.
|
|
176
|
+
* Useful for projects that want a ready-to-run CLI without a custom entry point.
|
|
177
|
+
* @default false
|
|
178
|
+
*/
|
|
179
|
+
entryPoint?: boolean;
|
|
172
180
|
}
|
|
173
181
|
/**
|
|
174
182
|
* Target configuration for graphql-codegen
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@constructive-io/graphql-codegen",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.4.0",
|
|
4
4
|
"description": "GraphQL SDK generator for Constructive databases with React Query hooks",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"graphql",
|
|
@@ -100,5 +100,5 @@
|
|
|
100
100
|
"tsx": "^4.21.0",
|
|
101
101
|
"typescript": "^5.9.3"
|
|
102
102
|
},
|
|
103
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "2ce4c3c62998a3c57eb04bfb67ce47bb9490f384"
|
|
104
104
|
}
|
package/types/config.d.ts
CHANGED
|
@@ -169,6 +169,14 @@ export interface CliConfig {
|
|
|
169
169
|
* context -> 'context' (renamed to 'env' on collision)
|
|
170
170
|
*/
|
|
171
171
|
builtinNames?: BuiltinNames;
|
|
172
|
+
/**
|
|
173
|
+
* Generate a runnable index.ts entry point for the CLI.
|
|
174
|
+
* When true, generates an index.ts that imports the command map,
|
|
175
|
+
* handles --version and --tty flags, and starts the inquirerer CLI.
|
|
176
|
+
* Useful for projects that want a ready-to-run CLI without a custom entry point.
|
|
177
|
+
* @default false
|
|
178
|
+
*/
|
|
179
|
+
entryPoint?: boolean;
|
|
172
180
|
}
|
|
173
181
|
/**
|
|
174
182
|
* Target configuration for graphql-codegen
|