@gqlkit-ts/cli 0.0.1 → 0.1.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/LICENSE +21 -0
- package/dist/auto-type-generator/auto-type-generator.d.ts +46 -0
- package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -0
- package/dist/auto-type-generator/auto-type-generator.js +353 -0
- package/dist/auto-type-generator/auto-type-generator.js.map +1 -0
- package/dist/auto-type-generator/auto-type-generator.test.d.ts +2 -0
- package/dist/auto-type-generator/auto-type-generator.test.d.ts.map +1 -0
- package/dist/auto-type-generator/auto-type-generator.test.js +613 -0
- package/dist/auto-type-generator/auto-type-generator.test.js.map +1 -0
- package/dist/auto-type-generator/index.d.ts +4 -0
- package/dist/auto-type-generator/index.d.ts.map +1 -0
- package/dist/auto-type-generator/index.js +3 -0
- package/dist/auto-type-generator/index.js.map +1 -0
- package/dist/auto-type-generator/name-collision-validator.d.ts +17 -0
- package/dist/auto-type-generator/name-collision-validator.d.ts.map +1 -0
- package/dist/auto-type-generator/name-collision-validator.js +68 -0
- package/dist/auto-type-generator/name-collision-validator.js.map +1 -0
- package/dist/auto-type-generator/name-collision-validator.test.d.ts +2 -0
- package/dist/auto-type-generator/name-collision-validator.test.d.ts.map +1 -0
- package/dist/auto-type-generator/name-collision-validator.test.js +358 -0
- package/dist/auto-type-generator/name-collision-validator.test.js.map +1 -0
- package/dist/auto-type-generator/naming-convention.d.ts +40 -0
- package/dist/auto-type-generator/naming-convention.d.ts.map +1 -0
- package/dist/auto-type-generator/naming-convention.js +59 -0
- package/dist/auto-type-generator/naming-convention.js.map +1 -0
- package/dist/auto-type-generator/naming-convention.test.d.ts +2 -0
- package/dist/auto-type-generator/naming-convention.test.d.ts.map +1 -0
- package/dist/auto-type-generator/naming-convention.test.js +132 -0
- package/dist/auto-type-generator/naming-convention.test.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +11 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/gen.d.ts +32 -0
- package/dist/commands/gen.d.ts.map +1 -0
- package/dist/commands/gen.js +101 -0
- package/dist/commands/gen.js.map +1 -0
- package/dist/commands/gen.test.d.ts +2 -0
- package/dist/commands/gen.test.d.ts.map +1 -0
- package/dist/commands/gen.test.js +226 -0
- package/dist/commands/gen.test.js.map +1 -0
- package/dist/commands/main.d.ts +12 -0
- package/dist/commands/main.d.ts.map +1 -0
- package/dist/commands/main.js +5 -0
- package/dist/commands/main.js.map +1 -0
- package/dist/config/define-config.d.ts +26 -0
- package/dist/config/define-config.d.ts.map +1 -0
- package/dist/config/define-config.js +27 -0
- package/dist/config/define-config.js.map +1 -0
- package/dist/config/index.d.ts +3 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +2 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/types.d.ts +131 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config-loader/index.d.ts +3 -0
- package/dist/config-loader/index.d.ts.map +1 -0
- package/dist/config-loader/index.js +2 -0
- package/dist/config-loader/index.js.map +1 -0
- package/dist/config-loader/loader.d.ts +50 -0
- package/dist/config-loader/loader.d.ts.map +1 -0
- package/dist/config-loader/loader.js +78 -0
- package/dist/config-loader/loader.js.map +1 -0
- package/dist/config-loader/loader.test.d.ts +2 -0
- package/dist/config-loader/loader.test.d.ts.map +1 -0
- package/dist/config-loader/loader.test.js +123 -0
- package/dist/config-loader/loader.test.js.map +1 -0
- package/dist/config-loader/validator.d.ts +13 -0
- package/dist/config-loader/validator.d.ts.map +1 -0
- package/dist/config-loader/validator.js +497 -0
- package/dist/config-loader/validator.js.map +1 -0
- package/dist/config-loader/validator.test.d.ts +2 -0
- package/dist/config-loader/validator.test.d.ts.map +1 -0
- package/dist/config-loader/validator.test.js +846 -0
- package/dist/config-loader/validator.test.js.map +1 -0
- package/dist/gen-orchestrator/golden.test.d.ts +2 -0
- package/dist/gen-orchestrator/golden.test.d.ts.map +1 -0
- package/dist/gen-orchestrator/golden.test.js +102 -0
- package/dist/gen-orchestrator/golden.test.js.map +1 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts +25 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.d.ts.map +1 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.js +68 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.js.map +1 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts +2 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts.map +1 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.js +167 -0
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.js.map +1 -0
- package/dist/gen-orchestrator/orchestrator.d.ts +30 -0
- package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -0
- package/dist/gen-orchestrator/orchestrator.js +407 -0
- package/dist/gen-orchestrator/orchestrator.js.map +1 -0
- package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts +9 -0
- package/dist/gen-orchestrator/reporter/diagnostic-reporter.d.ts.map +1 -0
- package/dist/gen-orchestrator/reporter/diagnostic-reporter.js +32 -0
- package/dist/gen-orchestrator/reporter/diagnostic-reporter.js.map +1 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.d.ts +19 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.d.ts.map +1 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.js +38 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.js.map +1 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts +2 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts.map +1 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.test.js +74 -0
- package/dist/gen-orchestrator/reporter/progress-reporter.test.js.map +1 -0
- package/dist/gen-orchestrator/writer/file-writer.d.ts +13 -0
- package/dist/gen-orchestrator/writer/file-writer.d.ts.map +1 -0
- package/dist/gen-orchestrator/writer/file-writer.js +22 -0
- package/dist/gen-orchestrator/writer/file-writer.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/resolver-extractor/extract-resolvers.d.ts +40 -0
- package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -0
- package/dist/resolver-extractor/extract-resolvers.js +2 -0
- package/dist/resolver-extractor/extract-resolvers.js.map +1 -0
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +50 -0
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -0
- package/dist/resolver-extractor/extractor/define-api-extractor.js +685 -0
- package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -0
- package/dist/resolver-extractor/index.d.ts +5 -0
- package/dist/resolver-extractor/index.d.ts.map +1 -0
- package/dist/resolver-extractor/index.js +2 -0
- package/dist/resolver-extractor/index.js.map +1 -0
- package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +25 -0
- package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -0
- package/dist/resolver-extractor/validator/abstract-resolver-validator.js +172 -0
- package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -0
- package/dist/resolver-extractor/validator/only-validator.d.ts +61 -0
- package/dist/resolver-extractor/validator/only-validator.d.ts.map +1 -0
- package/dist/resolver-extractor/validator/only-validator.js +76 -0
- package/dist/resolver-extractor/validator/only-validator.js.map +1 -0
- package/dist/resolver-extractor/validator/only-validator.test.d.ts +8 -0
- package/dist/resolver-extractor/validator/only-validator.test.d.ts.map +1 -0
- package/dist/resolver-extractor/validator/only-validator.test.js +352 -0
- package/dist/resolver-extractor/validator/only-validator.test.js.map +1 -0
- package/dist/schema-generator/builder/ast-builder.d.ts +7 -0
- package/dist/schema-generator/builder/ast-builder.d.ts.map +1 -0
- package/dist/schema-generator/builder/ast-builder.js +417 -0
- package/dist/schema-generator/builder/ast-builder.js.map +1 -0
- package/dist/schema-generator/builder/ast-builder.test.d.ts +2 -0
- package/dist/schema-generator/builder/ast-builder.test.d.ts.map +1 -0
- package/dist/schema-generator/builder/ast-builder.test.js +469 -0
- package/dist/schema-generator/builder/ast-builder.test.js.map +1 -0
- package/dist/schema-generator/emitter/code-emitter.d.ts +7 -0
- package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -0
- package/dist/schema-generator/emitter/code-emitter.js +201 -0
- package/dist/schema-generator/emitter/code-emitter.js.map +1 -0
- package/dist/schema-generator/emitter/sdl-emitter.d.ts +7 -0
- package/dist/schema-generator/emitter/sdl-emitter.d.ts.map +1 -0
- package/dist/schema-generator/emitter/sdl-emitter.js +11 -0
- package/dist/schema-generator/emitter/sdl-emitter.js.map +1 -0
- package/dist/schema-generator/generate-schema.d.ts +26 -0
- package/dist/schema-generator/generate-schema.d.ts.map +1 -0
- package/dist/schema-generator/generate-schema.js +76 -0
- package/dist/schema-generator/generate-schema.js.map +1 -0
- package/dist/schema-generator/index.d.ts +4 -0
- package/dist/schema-generator/index.d.ts.map +1 -0
- package/dist/schema-generator/index.js +2 -0
- package/dist/schema-generator/index.js.map +1 -0
- package/dist/schema-generator/integrator/result-integrator.d.ts +93 -0
- package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -0
- package/dist/schema-generator/integrator/result-integrator.js +396 -0
- package/dist/schema-generator/integrator/result-integrator.js.map +1 -0
- package/dist/schema-generator/pruner/schema-pruner.d.ts +16 -0
- package/dist/schema-generator/pruner/schema-pruner.d.ts.map +1 -0
- package/dist/schema-generator/pruner/schema-pruner.js +66 -0
- package/dist/schema-generator/pruner/schema-pruner.js.map +1 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +24 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.js +61 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -0
- package/dist/shared/constants.d.ts +70 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/constants.js +128 -0
- package/dist/shared/constants.js.map +1 -0
- package/dist/shared/default-value-detector.d.ts +40 -0
- package/dist/shared/default-value-detector.d.ts.map +1 -0
- package/dist/shared/default-value-detector.js +124 -0
- package/dist/shared/default-value-detector.js.map +1 -0
- package/dist/shared/diagnostics.d.ts +4 -0
- package/dist/shared/diagnostics.d.ts.map +1 -0
- package/dist/shared/diagnostics.js +25 -0
- package/dist/shared/diagnostics.js.map +1 -0
- package/dist/shared/directive-definition-extractor.d.ts +64 -0
- package/dist/shared/directive-definition-extractor.d.ts.map +1 -0
- package/dist/shared/directive-definition-extractor.js +399 -0
- package/dist/shared/directive-definition-extractor.js.map +1 -0
- package/dist/shared/directive-detector.d.ts +102 -0
- package/dist/shared/directive-detector.d.ts.map +1 -0
- package/dist/shared/directive-detector.js +422 -0
- package/dist/shared/directive-detector.js.map +1 -0
- package/dist/shared/file-scanner.d.ts +25 -0
- package/dist/shared/file-scanner.d.ts.map +1 -0
- package/dist/shared/file-scanner.js +99 -0
- package/dist/shared/file-scanner.js.map +1 -0
- package/dist/shared/file-scanner.test.d.ts +2 -0
- package/dist/shared/file-scanner.test.d.ts.map +1 -0
- package/dist/shared/file-scanner.test.js +138 -0
- package/dist/shared/file-scanner.test.js.map +1 -0
- package/dist/shared/index.d.ts +10 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +8 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/inline-object-extractor.d.ts +13 -0
- package/dist/shared/inline-object-extractor.d.ts.map +1 -0
- package/dist/shared/inline-object-extractor.js +65 -0
- package/dist/shared/inline-object-extractor.js.map +1 -0
- package/dist/shared/inline-object-utils.d.ts +7 -0
- package/dist/shared/inline-object-utils.d.ts.map +1 -0
- package/dist/shared/inline-object-utils.js +23 -0
- package/dist/shared/inline-object-utils.js.map +1 -0
- package/dist/shared/interface-detector.d.ts +22 -0
- package/dist/shared/interface-detector.d.ts.map +1 -0
- package/dist/shared/interface-detector.js +90 -0
- package/dist/shared/interface-detector.js.map +1 -0
- package/dist/shared/interface-validator.d.ts +9 -0
- package/dist/shared/interface-validator.d.ts.map +1 -0
- package/dist/shared/interface-validator.js +152 -0
- package/dist/shared/interface-validator.js.map +1 -0
- package/dist/shared/interface-validator.test.d.ts +2 -0
- package/dist/shared/interface-validator.test.d.ts.map +1 -0
- package/dist/shared/interface-validator.test.js +145 -0
- package/dist/shared/interface-validator.test.js.map +1 -0
- package/dist/shared/metadata-detector.d.ts +65 -0
- package/dist/shared/metadata-detector.d.ts.map +1 -0
- package/dist/shared/metadata-detector.js +333 -0
- package/dist/shared/metadata-detector.js.map +1 -0
- package/dist/shared/program-factory.d.ts +14 -0
- package/dist/shared/program-factory.d.ts.map +1 -0
- package/dist/shared/program-factory.js +29 -0
- package/dist/shared/program-factory.js.map +1 -0
- package/dist/shared/source-location.d.ts +11 -0
- package/dist/shared/source-location.d.ts.map +1 -0
- package/dist/shared/source-location.js +15 -0
- package/dist/shared/source-location.js.map +1 -0
- package/dist/shared/tsconfig-loader.d.ts +13 -0
- package/dist/shared/tsconfig-loader.d.ts.map +1 -0
- package/dist/shared/tsconfig-loader.js +90 -0
- package/dist/shared/tsconfig-loader.js.map +1 -0
- package/dist/shared/tsdoc-parser.d.ts +12 -0
- package/dist/shared/tsdoc-parser.d.ts.map +1 -0
- package/dist/shared/tsdoc-parser.js +101 -0
- package/dist/shared/tsdoc-parser.js.map +1 -0
- package/dist/shared/type-converter.d.ts +3 -0
- package/dist/shared/type-converter.d.ts.map +1 -0
- package/dist/shared/type-converter.js +72 -0
- package/dist/shared/type-converter.js.map +1 -0
- package/dist/shared/typescript-utils.d.ts +55 -0
- package/dist/shared/typescript-utils.d.ts.map +1 -0
- package/dist/shared/typescript-utils.js +149 -0
- package/dist/shared/typescript-utils.js.map +1 -0
- package/dist/type-extractor/collector/result-collector.d.ts +7 -0
- package/dist/type-extractor/collector/result-collector.d.ts.map +1 -0
- package/dist/type-extractor/collector/result-collector.js +35 -0
- package/dist/type-extractor/collector/result-collector.js.map +1 -0
- package/dist/type-extractor/collector/scalar-collector.d.ts +108 -0
- package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -0
- package/dist/type-extractor/collector/scalar-collector.js +133 -0
- package/dist/type-extractor/collector/scalar-collector.js.map +1 -0
- package/dist/type-extractor/converter/field-eligibility.d.ts +34 -0
- package/dist/type-extractor/converter/field-eligibility.d.ts.map +1 -0
- package/dist/type-extractor/converter/field-eligibility.js +89 -0
- package/dist/type-extractor/converter/field-eligibility.js.map +1 -0
- package/dist/type-extractor/converter/graphql-converter.d.ts +7 -0
- package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -0
- package/dist/type-extractor/converter/graphql-converter.js +299 -0
- package/dist/type-extractor/converter/graphql-converter.js.map +1 -0
- package/dist/type-extractor/extract-types.d.ts +2 -0
- package/dist/type-extractor/extract-types.d.ts.map +1 -0
- package/dist/type-extractor/extract-types.js +2 -0
- package/dist/type-extractor/extract-types.js.map +1 -0
- package/dist/type-extractor/extractor/type-extractor.d.ts +27 -0
- package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -0
- package/dist/type-extractor/extractor/type-extractor.js +1116 -0
- package/dist/type-extractor/extractor/type-extractor.js.map +1 -0
- package/dist/type-extractor/index.d.ts +4 -0
- package/dist/type-extractor/index.d.ts.map +1 -0
- package/dist/type-extractor/index.js +2 -0
- package/dist/type-extractor/index.js.map +1 -0
- package/dist/type-extractor/types/diagnostics.d.ts +17 -0
- package/dist/type-extractor/types/diagnostics.d.ts.map +1 -0
- package/dist/type-extractor/types/diagnostics.js +2 -0
- package/dist/type-extractor/types/diagnostics.js.map +1 -0
- package/dist/type-extractor/types/graphql.d.ts +40 -0
- package/dist/type-extractor/types/graphql.d.ts.map +1 -0
- package/dist/type-extractor/types/graphql.js +2 -0
- package/dist/type-extractor/types/graphql.js.map +1 -0
- package/dist/type-extractor/types/index.d.ts +5 -0
- package/dist/type-extractor/types/index.d.ts.map +1 -0
- package/dist/type-extractor/types/index.js +2 -0
- package/dist/type-extractor/types/index.js.map +1 -0
- package/dist/type-extractor/types/typescript.d.ts +86 -0
- package/dist/type-extractor/types/typescript.d.ts.map +1 -0
- package/dist/type-extractor/types/typescript.js +2 -0
- package/dist/type-extractor/types/typescript.js.map +1 -0
- package/dist/type-extractor/types/typescript.test.d.ts +2 -0
- package/dist/type-extractor/types/typescript.test.d.ts.map +1 -0
- package/dist/type-extractor/types/typescript.test.js +287 -0
- package/dist/type-extractor/types/typescript.test.js.map +1 -0
- package/dist/type-extractor/validator/type-validator.d.ts +11 -0
- package/dist/type-extractor/validator/type-validator.d.ts.map +1 -0
- package/dist/type-extractor/validator/type-validator.js +53 -0
- package/dist/type-extractor/validator/type-validator.js.map +1 -0
- package/docs/configuration.md +163 -0
- package/docs/getting-started.md +117 -0
- package/docs/index.md +32 -0
- package/docs/integration/apollo.md +109 -0
- package/docs/integration/yoga.md +108 -0
- package/docs/schema/abstract-resolvers.md +146 -0
- package/docs/schema/directives.md +196 -0
- package/docs/schema/documentation.md +176 -0
- package/docs/schema/enums.md +162 -0
- package/docs/schema/fields.md +184 -0
- package/docs/schema/index.md +38 -0
- package/docs/schema/inputs.md +277 -0
- package/docs/schema/interfaces.md +178 -0
- package/docs/schema/objects.md +186 -0
- package/docs/schema/queries-mutations.md +205 -0
- package/docs/schema/scalars.md +194 -0
- package/docs/schema/unions.md +90 -0
- package/docs/what-is-gqlkit.md +22 -0
- package/package.json +59 -7
- package/README.md +0 -45
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { describe, expect, it } from "vitest";
|
|
2
|
+
import { generateAutoTypeName, } from "./naming-convention.js";
|
|
3
|
+
describe("generateAutoTypeName", () => {
|
|
4
|
+
describe("Object type field naming", () => {
|
|
5
|
+
it("generates {ParentTypeName}{PascalCaseFieldName} for object type fields", () => {
|
|
6
|
+
const context = {
|
|
7
|
+
kind: "objectField",
|
|
8
|
+
parentTypeName: "User",
|
|
9
|
+
fieldPath: ["profile"],
|
|
10
|
+
};
|
|
11
|
+
expect(generateAutoTypeName(context)).toBe("UserProfile");
|
|
12
|
+
});
|
|
13
|
+
it("handles nested object fields by accumulating path", () => {
|
|
14
|
+
const context = {
|
|
15
|
+
kind: "objectField",
|
|
16
|
+
parentTypeName: "User",
|
|
17
|
+
fieldPath: ["profile", "address"],
|
|
18
|
+
};
|
|
19
|
+
expect(generateAutoTypeName(context)).toBe("UserProfileAddress");
|
|
20
|
+
});
|
|
21
|
+
it("handles deeply nested object fields", () => {
|
|
22
|
+
const context = {
|
|
23
|
+
kind: "objectField",
|
|
24
|
+
parentTypeName: "User",
|
|
25
|
+
fieldPath: ["profile", "address", "location"],
|
|
26
|
+
};
|
|
27
|
+
expect(generateAutoTypeName(context)).toBe("UserProfileAddressLocation");
|
|
28
|
+
});
|
|
29
|
+
it("converts camelCase field names to PascalCase", () => {
|
|
30
|
+
const context = {
|
|
31
|
+
kind: "objectField",
|
|
32
|
+
parentTypeName: "User",
|
|
33
|
+
fieldPath: ["socialLinks"],
|
|
34
|
+
};
|
|
35
|
+
expect(generateAutoTypeName(context)).toBe("UserSocialLinks");
|
|
36
|
+
});
|
|
37
|
+
it("converts snake_case field names to PascalCase", () => {
|
|
38
|
+
const context = {
|
|
39
|
+
kind: "objectField",
|
|
40
|
+
parentTypeName: "User",
|
|
41
|
+
fieldPath: ["social_links"],
|
|
42
|
+
};
|
|
43
|
+
expect(generateAutoTypeName(context)).toBe("UserSocialLinks");
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("Input type field naming", () => {
|
|
47
|
+
it("generates {ParentTypeNameWithoutInputSuffix}{PascalCaseFieldName}Input for input type fields", () => {
|
|
48
|
+
const context = {
|
|
49
|
+
kind: "inputField",
|
|
50
|
+
parentTypeName: "CreateUserInput",
|
|
51
|
+
fieldPath: ["profile"],
|
|
52
|
+
};
|
|
53
|
+
expect(generateAutoTypeName(context)).toBe("CreateUserProfileInput");
|
|
54
|
+
});
|
|
55
|
+
it("handles nested input fields by accumulating path", () => {
|
|
56
|
+
const context = {
|
|
57
|
+
kind: "inputField",
|
|
58
|
+
parentTypeName: "CreateUserInput",
|
|
59
|
+
fieldPath: ["profile", "address"],
|
|
60
|
+
};
|
|
61
|
+
expect(generateAutoTypeName(context)).toBe("CreateUserProfileAddressInput");
|
|
62
|
+
});
|
|
63
|
+
it("handles parent type without Input suffix (uses parent name as-is)", () => {
|
|
64
|
+
const context = {
|
|
65
|
+
kind: "inputField",
|
|
66
|
+
parentTypeName: "UserData",
|
|
67
|
+
fieldPath: ["profile"],
|
|
68
|
+
};
|
|
69
|
+
expect(generateAutoTypeName(context)).toBe("UserDataProfileInput");
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
describe("Query/Mutation resolver argument naming", () => {
|
|
73
|
+
it("generates {PascalCaseFieldName}Input for args named 'input' (avoids InputInput duplication)", () => {
|
|
74
|
+
const context = {
|
|
75
|
+
kind: "resolverArg",
|
|
76
|
+
resolverType: "query",
|
|
77
|
+
fieldName: "createUser",
|
|
78
|
+
argName: "input",
|
|
79
|
+
parentTypeName: null,
|
|
80
|
+
fieldPath: [],
|
|
81
|
+
};
|
|
82
|
+
expect(generateAutoTypeName(context)).toBe("CreateUserInput");
|
|
83
|
+
});
|
|
84
|
+
it("generates {PascalCaseFieldName}{PascalCaseArgName}Input for mutation args", () => {
|
|
85
|
+
const context = {
|
|
86
|
+
kind: "resolverArg",
|
|
87
|
+
resolverType: "mutation",
|
|
88
|
+
fieldName: "updateUser",
|
|
89
|
+
argName: "data",
|
|
90
|
+
parentTypeName: null,
|
|
91
|
+
fieldPath: [],
|
|
92
|
+
};
|
|
93
|
+
expect(generateAutoTypeName(context)).toBe("UpdateUserDataInput");
|
|
94
|
+
});
|
|
95
|
+
it("handles nested args by accumulating path", () => {
|
|
96
|
+
const context = {
|
|
97
|
+
kind: "resolverArg",
|
|
98
|
+
resolverType: "mutation",
|
|
99
|
+
fieldName: "updateSettings",
|
|
100
|
+
argName: "settings",
|
|
101
|
+
parentTypeName: null,
|
|
102
|
+
fieldPath: ["notifications"],
|
|
103
|
+
};
|
|
104
|
+
expect(generateAutoTypeName(context)).toBe("UpdateSettingsSettingsNotificationsInput");
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe("Field resolver argument naming", () => {
|
|
108
|
+
it("generates {ParentTypeName}{PascalCaseFieldName}{PascalCaseArgName}Input for field resolver args", () => {
|
|
109
|
+
const context = {
|
|
110
|
+
kind: "resolverArg",
|
|
111
|
+
resolverType: "field",
|
|
112
|
+
fieldName: "posts",
|
|
113
|
+
argName: "filter",
|
|
114
|
+
parentTypeName: "User",
|
|
115
|
+
fieldPath: [],
|
|
116
|
+
};
|
|
117
|
+
expect(generateAutoTypeName(context)).toBe("UserPostsFilterInput");
|
|
118
|
+
});
|
|
119
|
+
it("handles nested field resolver args", () => {
|
|
120
|
+
const context = {
|
|
121
|
+
kind: "resolverArg",
|
|
122
|
+
resolverType: "field",
|
|
123
|
+
fieldName: "posts",
|
|
124
|
+
argName: "filter",
|
|
125
|
+
parentTypeName: "User",
|
|
126
|
+
fieldPath: ["options"],
|
|
127
|
+
};
|
|
128
|
+
expect(generateAutoTypeName(context)).toBe("UserPostsFilterOptionsInput");
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=naming-convention.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming-convention.test.js","sourceRoot":"","sources":["../../src/auto-type-generator/naming-convention.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { cli } from "gunshi";
|
|
2
|
+
import { genCommand } from "./commands/gen.js";
|
|
3
|
+
import { mainCommand } from "./commands/main.js";
|
|
4
|
+
await cli(process.argv.slice(2), mainCommand, {
|
|
5
|
+
name: "gqlkit",
|
|
6
|
+
version: "0.0.0",
|
|
7
|
+
subCommands: {
|
|
8
|
+
gen: genCommand,
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;IAC5C,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE;QACX,GAAG,EAAE,UAAU;KAChB;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface RunGenCommandOptions {
|
|
2
|
+
readonly cwd: string;
|
|
3
|
+
}
|
|
4
|
+
export interface RunGenCommandResult {
|
|
5
|
+
readonly exitCode: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function runGenCommand(options: RunGenCommandOptions): Promise<RunGenCommandResult>;
|
|
8
|
+
export declare const genCommand: {
|
|
9
|
+
name: string;
|
|
10
|
+
args: {
|
|
11
|
+
cwd: {
|
|
12
|
+
type: "string";
|
|
13
|
+
description: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
run: (ctx: Readonly<import("gunshi").CommandContext<{
|
|
17
|
+
args: {
|
|
18
|
+
cwd: {
|
|
19
|
+
type: "string";
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
extensions: {};
|
|
24
|
+
}>>) => Promise<void>;
|
|
25
|
+
description?: string;
|
|
26
|
+
examples?: string | import("gunshi").CommandExamplesFetcher<import("gunshi").DefaultGunshiParams>;
|
|
27
|
+
toKebab?: boolean;
|
|
28
|
+
internal?: boolean;
|
|
29
|
+
entry?: boolean;
|
|
30
|
+
rendering?: import("gunshi").RenderingOptions<import("gunshi").DefaultGunshiParams>;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=gen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../../src/commands/gen.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,CAqG9B;AAED,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;CAerB,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { dirname } from "node:path";
|
|
2
|
+
import { define } from "gunshi";
|
|
3
|
+
import { loadConfig } from "../config-loader/index.js";
|
|
4
|
+
import { executeHooks } from "../gen-orchestrator/hook-executor/hook-executor.js";
|
|
5
|
+
import { executeGeneration, writeGeneratedFiles, } from "../gen-orchestrator/orchestrator.js";
|
|
6
|
+
import { createDiagnosticReporter } from "../gen-orchestrator/reporter/diagnostic-reporter.js";
|
|
7
|
+
import { createProgressReporter } from "../gen-orchestrator/reporter/progress-reporter.js";
|
|
8
|
+
export async function runGenCommand(options) {
|
|
9
|
+
const writer = {
|
|
10
|
+
stdout: (msg) => console.log(msg),
|
|
11
|
+
stderr: (msg) => console.error(msg),
|
|
12
|
+
};
|
|
13
|
+
const progressReporter = createProgressReporter(writer);
|
|
14
|
+
const diagnosticReporter = createDiagnosticReporter(writer);
|
|
15
|
+
const configResult = await loadConfig({ cwd: options.cwd });
|
|
16
|
+
if (configResult.diagnostics.length > 0) {
|
|
17
|
+
diagnosticReporter.reportDiagnostics(configResult.diagnostics);
|
|
18
|
+
diagnosticReporter.reportError("Config load failed");
|
|
19
|
+
return { exitCode: 1 };
|
|
20
|
+
}
|
|
21
|
+
const configDir = configResult.configPath
|
|
22
|
+
? dirname(configResult.configPath)
|
|
23
|
+
: options.cwd;
|
|
24
|
+
const { sourceDir, sourceIgnoreGlobs, output, scalars, tsconfigPath } = configResult.config;
|
|
25
|
+
const config = {
|
|
26
|
+
cwd: options.cwd,
|
|
27
|
+
sourceDir,
|
|
28
|
+
sourceIgnoreGlobs,
|
|
29
|
+
output,
|
|
30
|
+
configDir,
|
|
31
|
+
customScalars: scalars,
|
|
32
|
+
tsconfigPath,
|
|
33
|
+
};
|
|
34
|
+
progressReporter.startPhase("Extracting types");
|
|
35
|
+
progressReporter.startPhase("Extracting resolvers");
|
|
36
|
+
progressReporter.startPhase("Generating schema");
|
|
37
|
+
const result = await executeGeneration(config);
|
|
38
|
+
if (result.diagnostics.length > 0) {
|
|
39
|
+
diagnosticReporter.reportDiagnostics(result.diagnostics);
|
|
40
|
+
}
|
|
41
|
+
if (!result.success) {
|
|
42
|
+
diagnosticReporter.reportError("Generation failed");
|
|
43
|
+
return { exitCode: 1 };
|
|
44
|
+
}
|
|
45
|
+
const writeResult = await writeGeneratedFiles({
|
|
46
|
+
files: result.files,
|
|
47
|
+
});
|
|
48
|
+
if (!writeResult.success) {
|
|
49
|
+
diagnosticReporter.reportError("Failed to write output files");
|
|
50
|
+
return { exitCode: 1 };
|
|
51
|
+
}
|
|
52
|
+
for (const filePath of writeResult.filesWritten) {
|
|
53
|
+
progressReporter.fileWritten(filePath);
|
|
54
|
+
}
|
|
55
|
+
progressReporter.complete();
|
|
56
|
+
const { hooks } = configResult.config;
|
|
57
|
+
let hookFailed = false;
|
|
58
|
+
if (writeResult.filesWritten.length > 0 &&
|
|
59
|
+
hooks.afterAllFileWrite.length > 0) {
|
|
60
|
+
progressReporter.startHookPhase();
|
|
61
|
+
const hookResult = await executeHooks({
|
|
62
|
+
commands: hooks.afterAllFileWrite,
|
|
63
|
+
filePaths: writeResult.filesWritten,
|
|
64
|
+
cwd: options.cwd,
|
|
65
|
+
onHookComplete: (result) => {
|
|
66
|
+
if (result.success) {
|
|
67
|
+
progressReporter.hookCompleted(result.command);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
progressReporter.hookFailed(result.command, result.exitCode, result.stderr);
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
hookFailed = !hookResult.success;
|
|
75
|
+
const failedCount = hookResult.results.filter((r) => !r.success).length;
|
|
76
|
+
progressReporter.hookPhaseSummary(hookResult.results.length, failedCount);
|
|
77
|
+
}
|
|
78
|
+
if (hookFailed) {
|
|
79
|
+
diagnosticReporter.reportError("Hook execution failed");
|
|
80
|
+
return { exitCode: 1 };
|
|
81
|
+
}
|
|
82
|
+
diagnosticReporter.reportSuccess("Generation complete!");
|
|
83
|
+
return { exitCode: 0 };
|
|
84
|
+
}
|
|
85
|
+
export const genCommand = define({
|
|
86
|
+
name: "gen",
|
|
87
|
+
args: {
|
|
88
|
+
cwd: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: "Working directory for code generation",
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
run: async (ctx) => {
|
|
94
|
+
const cwd = ctx.values.cwd ?? process.cwd();
|
|
95
|
+
const result = await runGenCommand({ cwd });
|
|
96
|
+
if (result.exitCode !== 0) {
|
|
97
|
+
process.exitCode = result.exitCode;
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen.js","sourceRoot":"","sources":["../../src/commands/gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen.test.d.ts","sourceRoot":"","sources":["../../src/commands/gen.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { mkdir, mkdtemp, readFile, rm, writeFile } from "node:fs/promises";
|
|
2
|
+
import { tmpdir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from "vitest";
|
|
5
|
+
import { runGenCommand } from "./gen.js";
|
|
6
|
+
describe("gen command", () => {
|
|
7
|
+
let testDir;
|
|
8
|
+
beforeEach(async () => {
|
|
9
|
+
testDir = await mkdtemp(join(tmpdir(), "gqlkit-gen-test-"));
|
|
10
|
+
});
|
|
11
|
+
afterEach(async () => {
|
|
12
|
+
await rm(testDir, { recursive: true });
|
|
13
|
+
});
|
|
14
|
+
async function setupProject() {
|
|
15
|
+
const sourceDir = join(testDir, "src/gqlkit/schema");
|
|
16
|
+
await mkdir(sourceDir, { recursive: true });
|
|
17
|
+
await writeFile(join(sourceDir, "types.ts"), "export interface User { id: string; name: string; }", "utf-8");
|
|
18
|
+
await writeFile(join(sourceDir, "resolvers.ts"), `
|
|
19
|
+
import { createGqlkitApis, type NoArgs } from "@gqlkit-ts/runtime";
|
|
20
|
+
import type { User } from "./types.js";
|
|
21
|
+
type Context = unknown;
|
|
22
|
+
const { defineQuery } = createGqlkitApis<Context>();
|
|
23
|
+
export const users = defineQuery<NoArgs, User[]>(() => []);
|
|
24
|
+
`, "utf-8");
|
|
25
|
+
}
|
|
26
|
+
async function setupProjectWithConfig(configContent, additionalSetup) {
|
|
27
|
+
await setupProject();
|
|
28
|
+
await writeFile(join(testDir, "gqlkit.config.ts"), configContent, "utf-8");
|
|
29
|
+
if (additionalSetup) {
|
|
30
|
+
await additionalSetup();
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
describe("successful generation", () => {
|
|
34
|
+
it("should generate typeDefs.ts file", async () => {
|
|
35
|
+
await setupProject();
|
|
36
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
37
|
+
expect(result.exitCode).toBe(0);
|
|
38
|
+
const typeDefsPath = join(testDir, "src/gqlkit/__generated__/typeDefs.ts");
|
|
39
|
+
const content = await readFile(typeDefsPath, "utf-8");
|
|
40
|
+
expect(content.includes("typeDefs")).toBeTruthy();
|
|
41
|
+
});
|
|
42
|
+
it("should generate resolvers.ts file", async () => {
|
|
43
|
+
await setupProject();
|
|
44
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
45
|
+
expect(result.exitCode).toBe(0);
|
|
46
|
+
const resolversPath = join(testDir, "src/gqlkit/__generated__/resolvers.ts");
|
|
47
|
+
const content = await readFile(resolversPath, "utf-8");
|
|
48
|
+
expect(content.includes("createResolvers")).toBeTruthy();
|
|
49
|
+
});
|
|
50
|
+
it("should return exit code 0 on success", async () => {
|
|
51
|
+
await setupProject();
|
|
52
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
53
|
+
expect(result.exitCode).toBe(0);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
describe("error handling", () => {
|
|
57
|
+
it("should return exit code 1 when source directory is missing", async () => {
|
|
58
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
59
|
+
expect(result.exitCode).toBe(1);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe("config file integration (Task 7)", () => {
|
|
63
|
+
it("should continue with default config when config file is not present", async () => {
|
|
64
|
+
await setupProject();
|
|
65
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
66
|
+
expect(result.exitCode).toBe(0);
|
|
67
|
+
});
|
|
68
|
+
it("should load config file when present", async () => {
|
|
69
|
+
await setupProjectWithConfig(`
|
|
70
|
+
export default {
|
|
71
|
+
scalars: [],
|
|
72
|
+
};
|
|
73
|
+
`);
|
|
74
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
75
|
+
expect(result.exitCode).toBe(0);
|
|
76
|
+
});
|
|
77
|
+
it("should return exit code 1 when config file has syntax error", async () => {
|
|
78
|
+
await setupProjectWithConfig(`
|
|
79
|
+
export default {
|
|
80
|
+
scalars: [
|
|
81
|
+
// invalid syntax
|
|
82
|
+
`);
|
|
83
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
84
|
+
expect(result.exitCode).toBe(1);
|
|
85
|
+
});
|
|
86
|
+
it("should return exit code 1 when config file has validation error", async () => {
|
|
87
|
+
await setupProjectWithConfig(`
|
|
88
|
+
export default {
|
|
89
|
+
scalars: [
|
|
90
|
+
{
|
|
91
|
+
graphqlName: "String",
|
|
92
|
+
type: { from: "./scalars", name: "MyString" },
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
};
|
|
96
|
+
`);
|
|
97
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
98
|
+
expect(result.exitCode).toBe(1);
|
|
99
|
+
});
|
|
100
|
+
it("should generate schema with custom scalar definitions", async () => {
|
|
101
|
+
const scalarsDir = join(testDir, "src/scalars");
|
|
102
|
+
await mkdir(scalarsDir, { recursive: true });
|
|
103
|
+
await writeFile(join(scalarsDir, "index.ts"), `export type DateTime = string & { readonly __brand: unique symbol };`, "utf-8");
|
|
104
|
+
const sourceDir = join(testDir, "src/gqlkit/schema");
|
|
105
|
+
await mkdir(sourceDir, { recursive: true });
|
|
106
|
+
await writeFile(join(sourceDir, "event.ts"), `
|
|
107
|
+
import type { DateTime } from "../scalars/index.js";
|
|
108
|
+
export interface Event { id: string; createdAt: DateTime; }
|
|
109
|
+
`, "utf-8");
|
|
110
|
+
await writeFile(join(sourceDir, "query.ts"), `
|
|
111
|
+
import { createGqlkitApis, type NoArgs } from "@gqlkit-ts/runtime";
|
|
112
|
+
import type { Event } from "./event.js";
|
|
113
|
+
type Context = unknown;
|
|
114
|
+
const { defineQuery } = createGqlkitApis<Context>();
|
|
115
|
+
export const events = defineQuery<NoArgs, Event[]>(() => []);
|
|
116
|
+
`, "utf-8");
|
|
117
|
+
await writeFile(join(testDir, "gqlkit.config.ts"), `
|
|
118
|
+
export default {
|
|
119
|
+
scalars: [
|
|
120
|
+
{
|
|
121
|
+
graphqlName: "DateTime",
|
|
122
|
+
type: { from: "./src/scalars", name: "DateTime" },
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
};
|
|
126
|
+
`, "utf-8");
|
|
127
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
128
|
+
expect(result.exitCode).toBe(0);
|
|
129
|
+
const typeDefsPath = join(testDir, "src/gqlkit/__generated__/typeDefs.ts");
|
|
130
|
+
const content = await readFile(typeDefsPath, "utf-8");
|
|
131
|
+
expect(content.includes('"kind": "ScalarTypeDefinition"') &&
|
|
132
|
+
content.includes('"value": "DateTime"')).toBeTruthy();
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe("hooks integration", () => {
|
|
136
|
+
it("should execute hooks after file generation", async () => {
|
|
137
|
+
await setupProjectWithConfig(`
|
|
138
|
+
export default {
|
|
139
|
+
hooks: {
|
|
140
|
+
afterAllFileWrite: ["node -e \\"console.log('hook executed')\\""],
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
`);
|
|
144
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
145
|
+
expect(result.exitCode).toBe(0);
|
|
146
|
+
});
|
|
147
|
+
it("should execute multiple hooks sequentially", async () => {
|
|
148
|
+
await setupProjectWithConfig(`
|
|
149
|
+
export default {
|
|
150
|
+
hooks: {
|
|
151
|
+
afterAllFileWrite: [
|
|
152
|
+
"node -e \\"console.log('first')\\"",
|
|
153
|
+
"node -e \\"console.log('second')\\"",
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
`);
|
|
158
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
159
|
+
expect(result.exitCode).toBe(0);
|
|
160
|
+
});
|
|
161
|
+
it("should continue executing hooks when one fails", async () => {
|
|
162
|
+
await setupProjectWithConfig(`
|
|
163
|
+
export default {
|
|
164
|
+
hooks: {
|
|
165
|
+
afterAllFileWrite: [
|
|
166
|
+
"node -e \\"process.exit(1)\\"",
|
|
167
|
+
"node -e \\"console.log('after-failure')\\"",
|
|
168
|
+
],
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
`);
|
|
172
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
173
|
+
expect(result.exitCode).toBe(1);
|
|
174
|
+
});
|
|
175
|
+
it("should return exit code 1 when any hook fails", async () => {
|
|
176
|
+
await setupProjectWithConfig(`
|
|
177
|
+
export default {
|
|
178
|
+
hooks: {
|
|
179
|
+
afterAllFileWrite: ["node -e \\"process.exit(1)\\""],
|
|
180
|
+
},
|
|
181
|
+
};
|
|
182
|
+
`);
|
|
183
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
184
|
+
expect(result.exitCode).toBe(1);
|
|
185
|
+
});
|
|
186
|
+
it("should skip hooks when no files are written", async () => {
|
|
187
|
+
await setupProjectWithConfig(`
|
|
188
|
+
export default {
|
|
189
|
+
output: {
|
|
190
|
+
resolversPath: null,
|
|
191
|
+
typeDefsPath: null,
|
|
192
|
+
schemaPath: null,
|
|
193
|
+
},
|
|
194
|
+
hooks: {
|
|
195
|
+
afterAllFileWrite: ["node -e \\"process.exit(1)\\""],
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
`);
|
|
199
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
200
|
+
// Should succeed because hooks are skipped when no files are written
|
|
201
|
+
expect(result.exitCode).toBe(0);
|
|
202
|
+
});
|
|
203
|
+
it("should skip hooks when generation fails", async () => {
|
|
204
|
+
await writeFile(join(testDir, "gqlkit.config.ts"), `
|
|
205
|
+
export default {
|
|
206
|
+
hooks: {
|
|
207
|
+
afterAllFileWrite: ["node -e \\"process.exit(1)\\""],
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
`, "utf-8");
|
|
211
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
212
|
+
// Should fail due to generation failure, not hook failure
|
|
213
|
+
expect(result.exitCode).toBe(1);
|
|
214
|
+
});
|
|
215
|
+
it("should not execute hooks when hooks config is empty", async () => {
|
|
216
|
+
await setupProjectWithConfig(`
|
|
217
|
+
export default {
|
|
218
|
+
hooks: {},
|
|
219
|
+
};
|
|
220
|
+
`);
|
|
221
|
+
const result = await runGenCommand({ cwd: testDir });
|
|
222
|
+
expect(result.exitCode).toBe(0);
|
|
223
|
+
});
|
|
224
|
+
});
|
|
225
|
+
});
|
|
226
|
+
//# sourceMappingURL=gen.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gen.test.js","sourceRoot":"","sources":["../../src/commands/gen.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const mainCommand: {
|
|
2
|
+
name: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
args?: import("gunshi").Args;
|
|
5
|
+
examples?: string | import("gunshi").CommandExamplesFetcher<import("gunshi").DefaultGunshiParams>;
|
|
6
|
+
run?: import("gunshi").CommandRunner<import("gunshi").DefaultGunshiParams>;
|
|
7
|
+
toKebab?: boolean;
|
|
8
|
+
internal?: boolean;
|
|
9
|
+
entry?: boolean;
|
|
10
|
+
rendering?: import("gunshi").RenderingOptions<import("gunshi").DefaultGunshiParams>;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=main.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/commands/main.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;;;;;;;CAEtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/commands/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC;IAChC,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { GqlkitConfig } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* 型安全な設定オブジェクトを作成するヘルパー関数。
|
|
4
|
+
* IDE での型補完とコンパイル時の型チェックを提供する。
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* // gqlkit.config.ts
|
|
9
|
+
* import { defineConfig } from "@gqlkit-ts/cli";
|
|
10
|
+
*
|
|
11
|
+
* export default defineConfig({
|
|
12
|
+
* scalars: [
|
|
13
|
+
* {
|
|
14
|
+
* graphqlName: "DateTime",
|
|
15
|
+
* type: { from: "./src/types/scalars", name: "DateTime" },
|
|
16
|
+
* },
|
|
17
|
+
* {
|
|
18
|
+
* graphqlName: "UUID",
|
|
19
|
+
* type: { from: "./src/types/scalars", name: "UUID" },
|
|
20
|
+
* },
|
|
21
|
+
* ],
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function defineConfig(config: GqlkitConfig): GqlkitConfig;
|
|
26
|
+
//# sourceMappingURL=define-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAE/D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 型安全な設定オブジェクトを作成するヘルパー関数。
|
|
3
|
+
* IDE での型補完とコンパイル時の型チェックを提供する。
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```typescript
|
|
7
|
+
* // gqlkit.config.ts
|
|
8
|
+
* import { defineConfig } from "@gqlkit-ts/cli";
|
|
9
|
+
*
|
|
10
|
+
* export default defineConfig({
|
|
11
|
+
* scalars: [
|
|
12
|
+
* {
|
|
13
|
+
* graphqlName: "DateTime",
|
|
14
|
+
* type: { from: "./src/types/scalars", name: "DateTime" },
|
|
15
|
+
* },
|
|
16
|
+
* {
|
|
17
|
+
* graphqlName: "UUID",
|
|
18
|
+
* type: { from: "./src/types/scalars", name: "UUID" },
|
|
19
|
+
* },
|
|
20
|
+
* ],
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export function defineConfig(config) {
|
|
25
|
+
return config;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=define-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-config.js","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO,MAAM,CAAC;AAChB,CAAC"}
|