@gqlkit-ts/cli 0.1.0 → 0.3.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/dist/auto-type-generator/auto-type-generator.d.ts +26 -4
- package/dist/auto-type-generator/auto-type-generator.d.ts.map +1 -1
- package/dist/auto-type-generator/auto-type-generator.js +846 -152
- package/dist/auto-type-generator/auto-type-generator.js.map +1 -1
- package/dist/auto-type-generator/index.d.ts +9 -2
- package/dist/auto-type-generator/index.d.ts.map +1 -1
- package/dist/auto-type-generator/index.js +3 -0
- package/dist/auto-type-generator/index.js.map +1 -1
- package/dist/auto-type-generator/inline-enum-collector.d.ts +39 -0
- package/dist/auto-type-generator/inline-enum-collector.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-enum-collector.js +193 -0
- package/dist/auto-type-generator/inline-enum-collector.js.map +1 -0
- package/dist/auto-type-generator/inline-object-traverser.d.ts +20 -0
- package/dist/auto-type-generator/inline-object-traverser.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-object-traverser.js +22 -0
- package/dist/auto-type-generator/inline-object-traverser.js.map +1 -0
- package/dist/auto-type-generator/inline-union-collector.d.ts +29 -0
- package/dist/auto-type-generator/inline-union-collector.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-union-collector.js +216 -0
- package/dist/auto-type-generator/inline-union-collector.js.map +1 -0
- package/dist/auto-type-generator/inline-union-types.d.ts +29 -0
- package/dist/auto-type-generator/inline-union-types.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-union-types.js +2 -0
- package/dist/auto-type-generator/inline-union-types.js.map +1 -0
- package/dist/auto-type-generator/inline-union-validator.d.ts +76 -0
- package/dist/auto-type-generator/inline-union-validator.d.ts.map +1 -0
- package/dist/auto-type-generator/inline-union-validator.js +329 -0
- package/dist/auto-type-generator/inline-union-validator.js.map +1 -0
- package/dist/auto-type-generator/naming-convention.d.ts +22 -1
- package/dist/auto-type-generator/naming-convention.d.ts.map +1 -1
- package/dist/auto-type-generator/naming-convention.js +24 -0
- package/dist/auto-type-generator/naming-convention.js.map +1 -1
- package/dist/auto-type-generator/resolve-type-generator.d.ts +20 -0
- package/dist/auto-type-generator/resolve-type-generator.d.ts.map +1 -0
- package/dist/auto-type-generator/resolve-type-generator.js +2 -0
- package/dist/auto-type-generator/resolve-type-generator.js.map +1 -0
- package/dist/auto-type-generator/resolver-field-iterator.d.ts +13 -0
- package/dist/auto-type-generator/resolver-field-iterator.d.ts.map +1 -0
- package/dist/auto-type-generator/resolver-field-iterator.js +22 -0
- package/dist/auto-type-generator/resolver-field-iterator.js.map +1 -0
- package/dist/auto-type-generator/typename-extractor.d.ts +26 -0
- package/dist/auto-type-generator/typename-extractor.d.ts.map +1 -0
- package/dist/auto-type-generator/typename-extractor.js +142 -0
- package/dist/auto-type-generator/typename-extractor.js.map +1 -0
- package/dist/auto-type-generator/typename-resolve-type-generator.d.ts +35 -0
- package/dist/auto-type-generator/typename-resolve-type-generator.d.ts.map +1 -0
- package/dist/auto-type-generator/typename-resolve-type-generator.js +177 -0
- package/dist/auto-type-generator/typename-resolve-type-generator.js.map +1 -0
- package/dist/auto-type-generator/typename-types.d.ts +43 -0
- package/dist/auto-type-generator/typename-types.d.ts.map +1 -0
- package/dist/auto-type-generator/typename-types.js +37 -0
- package/dist/auto-type-generator/typename-types.js.map +1 -0
- package/dist/auto-type-generator/typename-validator.d.ts +37 -0
- package/dist/auto-type-generator/typename-validator.d.ts.map +1 -0
- package/dist/auto-type-generator/typename-validator.js +206 -0
- package/dist/auto-type-generator/typename-validator.js.map +1 -0
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/docs.d.ts +51 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +154 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/gen-orchestrator/orchestrator.d.ts.map +1 -1
- package/dist/gen-orchestrator/orchestrator.js +119 -14
- package/dist/gen-orchestrator/orchestrator.js.map +1 -1
- package/dist/resolver-extractor/extract-resolvers.d.ts +28 -1
- package/dist/resolver-extractor/extract-resolvers.d.ts.map +1 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts +16 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.d.ts.map +1 -1
- package/dist/resolver-extractor/extractor/define-api-extractor.js +86 -309
- package/dist/resolver-extractor/extractor/define-api-extractor.js.map +1 -1
- package/dist/resolver-extractor/index.d.ts +0 -1
- package/dist/resolver-extractor/index.d.ts.map +1 -1
- package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts +1 -0
- package/dist/resolver-extractor/validator/abstract-resolver-validator.d.ts.map +1 -1
- package/dist/resolver-extractor/validator/abstract-resolver-validator.js +9 -5
- package/dist/resolver-extractor/validator/abstract-resolver-validator.js.map +1 -1
- package/dist/schema-generator/emitter/code-emitter.d.ts +10 -2
- package/dist/schema-generator/emitter/code-emitter.d.ts.map +1 -1
- package/dist/schema-generator/emitter/code-emitter.js +39 -4
- package/dist/schema-generator/emitter/code-emitter.js.map +1 -1
- package/dist/schema-generator/generate-schema.d.ts +1 -0
- package/dist/schema-generator/generate-schema.d.ts.map +1 -1
- package/dist/schema-generator/generate-schema.js +90 -4
- package/dist/schema-generator/generate-schema.js.map +1 -1
- package/dist/schema-generator/integrator/result-integrator.d.ts +34 -2
- package/dist/schema-generator/integrator/result-integrator.d.ts.map +1 -1
- package/dist/schema-generator/integrator/result-integrator.js +96 -1
- package/dist/schema-generator/integrator/result-integrator.js.map +1 -1
- package/dist/schema-generator/resolver-collector/resolver-collector.d.ts +2 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.d.ts.map +1 -1
- package/dist/schema-generator/resolver-collector/resolver-collector.js +22 -0
- package/dist/schema-generator/resolver-collector/resolver-collector.js.map +1 -1
- package/dist/shared/constants.d.ts +0 -16
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +0 -19
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/directive-detector.d.ts.map +1 -1
- package/dist/shared/directive-detector.js +8 -15
- package/dist/shared/directive-detector.js.map +1 -1
- package/dist/shared/enum-prefix-detector.d.ts +63 -0
- package/dist/shared/enum-prefix-detector.d.ts.map +1 -0
- package/dist/shared/enum-prefix-detector.js +80 -0
- package/dist/shared/enum-prefix-detector.js.map +1 -0
- package/dist/shared/file-scanner.d.ts.map +1 -1
- package/dist/shared/file-scanner.js +5 -3
- package/dist/shared/file-scanner.js.map +1 -1
- package/dist/shared/ignore-fields-detector.d.ts +26 -0
- package/dist/shared/ignore-fields-detector.d.ts.map +1 -0
- package/dist/shared/ignore-fields-detector.js +83 -0
- package/dist/shared/ignore-fields-detector.js.map +1 -0
- package/dist/shared/ignore-fields-validator.d.ts +29 -0
- package/dist/shared/ignore-fields-validator.d.ts.map +1 -0
- package/dist/shared/ignore-fields-validator.js +43 -0
- package/dist/shared/ignore-fields-validator.js.map +1 -0
- package/dist/shared/index.d.ts +3 -1
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -3
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/interface-detector.d.ts +3 -2
- package/dist/shared/interface-detector.d.ts.map +1 -1
- package/dist/shared/interface-detector.js +54 -11
- package/dist/shared/interface-detector.js.map +1 -1
- package/dist/shared/path-utils.d.ts +2 -0
- package/dist/shared/path-utils.d.ts.map +1 -0
- package/dist/shared/path-utils.js +4 -0
- package/dist/shared/path-utils.js.map +1 -0
- package/dist/shared/source-location.d.ts +5 -0
- package/dist/shared/source-location.d.ts.map +1 -1
- package/dist/shared/source-location.js +7 -0
- package/dist/shared/source-location.js.map +1 -1
- package/dist/shared/type-converter.d.ts.map +1 -1
- package/dist/shared/type-converter.js +11 -0
- package/dist/shared/type-converter.js.map +1 -1
- package/dist/shared/typescript-utils.d.ts +34 -7
- package/dist/shared/typescript-utils.d.ts.map +1 -1
- package/dist/shared/typescript-utils.js +72 -24
- package/dist/shared/typescript-utils.js.map +1 -1
- package/dist/type-extractor/collector/scalar-collector.d.ts.map +1 -1
- package/dist/type-extractor/collector/scalar-collector.js +4 -14
- package/dist/type-extractor/collector/scalar-collector.js.map +1 -1
- package/dist/type-extractor/converter/graphql-converter.d.ts.map +1 -1
- package/dist/type-extractor/converter/graphql-converter.js +57 -4
- package/dist/type-extractor/converter/graphql-converter.js.map +1 -1
- package/dist/type-extractor/extractor/field-type-resolver.d.ts +28 -0
- package/dist/type-extractor/extractor/field-type-resolver.d.ts.map +1 -0
- package/dist/type-extractor/extractor/field-type-resolver.js +433 -0
- package/dist/type-extractor/extractor/field-type-resolver.js.map +1 -0
- package/dist/type-extractor/extractor/type-extractor.d.ts +12 -3
- package/dist/type-extractor/extractor/type-extractor.d.ts.map +1 -1
- package/dist/type-extractor/extractor/type-extractor.js +260 -229
- package/dist/type-extractor/extractor/type-extractor.js.map +1 -1
- package/dist/type-extractor/extractor/type-name-collector.d.ts +24 -0
- package/dist/type-extractor/extractor/type-name-collector.d.ts.map +1 -0
- package/dist/type-extractor/extractor/type-name-collector.js +102 -0
- package/dist/type-extractor/extractor/type-name-collector.js.map +1 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts +89 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.d.ts.map +1 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.js +158 -0
- package/dist/type-extractor/mapper/scalar-base-type-mapper.js.map +1 -0
- package/dist/type-extractor/types/diagnostics.d.ts +1 -1
- package/dist/type-extractor/types/diagnostics.d.ts.map +1 -1
- package/dist/type-extractor/types/graphql.d.ts +2 -0
- package/dist/type-extractor/types/graphql.d.ts.map +1 -1
- package/dist/type-extractor/types/index.d.ts +2 -1
- package/dist/type-extractor/types/index.d.ts.map +1 -1
- package/dist/type-extractor/types/index.js +1 -1
- package/dist/type-extractor/types/index.js.map +1 -1
- package/dist/type-extractor/types/ts-type-reference-factory.d.ts +47 -0
- package/dist/type-extractor/types/ts-type-reference-factory.d.ts.map +1 -0
- package/dist/type-extractor/types/ts-type-reference-factory.js +75 -0
- package/dist/type-extractor/types/ts-type-reference-factory.js.map +1 -0
- package/dist/type-extractor/types/typescript.d.ts +25 -1
- package/dist/type-extractor/types/typescript.d.ts.map +1 -1
- package/dist/type-extractor/validator/type-validator.js +1 -1
- package/dist/type-extractor/validator/type-validator.js.map +1 -1
- package/docs/coding-agents.md +64 -0
- package/docs/configuration.md +6 -20
- package/docs/getting-started.md +15 -12
- package/docs/index.md +36 -21
- package/docs/integration/apollo.md +8 -40
- package/docs/integration/drizzle.md +187 -0
- package/docs/integration/prisma.md +196 -0
- package/docs/integration/yoga.md +8 -40
- package/docs/schema/abstract-resolvers.md +117 -0
- package/docs/schema/directives.md +5 -0
- package/docs/schema/documentation.md +5 -0
- package/docs/schema/enums.md +307 -0
- package/docs/schema/fields.md +66 -0
- package/docs/schema/index.md +21 -0
- package/docs/schema/inputs.md +117 -15
- package/docs/schema/interfaces.md +31 -1
- package/docs/schema/objects.md +42 -0
- package/docs/schema/queries-mutations.md +138 -22
- package/docs/schema/scalars.md +5 -0
- package/docs/schema/unions.md +208 -1
- package/docs/what-is-gqlkit.md +13 -8
- package/package.json +14 -5
- package/src/auto-type-generator/auto-type-generator.ts +1670 -0
- package/src/auto-type-generator/index.ts +63 -0
- package/src/auto-type-generator/inline-enum-collector.ts +338 -0
- package/src/auto-type-generator/inline-object-traverser.ts +49 -0
- package/src/auto-type-generator/inline-union-collector.ts +402 -0
- package/src/auto-type-generator/inline-union-types.ts +33 -0
- package/src/auto-type-generator/inline-union-validator.ts +482 -0
- package/src/auto-type-generator/name-collision-validator.ts +119 -0
- package/src/auto-type-generator/naming-convention.ts +163 -0
- package/src/auto-type-generator/resolve-type-generator.ts +21 -0
- package/src/auto-type-generator/resolver-field-iterator.ts +39 -0
- package/src/auto-type-generator/typename-extractor.ts +230 -0
- package/src/auto-type-generator/typename-resolve-type-generator.ts +281 -0
- package/src/auto-type-generator/typename-types.ts +66 -0
- package/src/auto-type-generator/typename-validator.ts +326 -0
- package/src/cli.ts +13 -0
- package/src/commands/docs.ts +211 -0
- package/src/commands/gen.ts +141 -0
- package/src/commands/main.ts +5 -0
- package/src/config/define-config.ts +28 -0
- package/src/config/index.ts +7 -0
- package/src/config/types.ts +144 -0
- package/src/config-loader/index.ts +14 -0
- package/src/config-loader/loader.ts +143 -0
- package/src/config-loader/validator.ts +672 -0
- package/src/gen-orchestrator/hook-executor/hook-executor.ts +117 -0
- package/src/gen-orchestrator/orchestrator.ts +798 -0
- package/src/gen-orchestrator/reporter/diagnostic-reporter.ts +44 -0
- package/src/gen-orchestrator/reporter/progress-reporter.ts +61 -0
- package/src/gen-orchestrator/writer/file-writer.ts +38 -0
- package/src/index.ts +2 -0
- package/src/resolver-extractor/extract-resolvers.ts +82 -0
- package/src/resolver-extractor/extractor/define-api-extractor.ts +740 -0
- package/src/resolver-extractor/index.ts +13 -0
- package/src/resolver-extractor/validator/abstract-resolver-validator.ts +259 -0
- package/src/schema-generator/builder/ast-builder.ts +706 -0
- package/src/schema-generator/emitter/code-emitter.ts +385 -0
- package/src/schema-generator/emitter/sdl-emitter.ts +13 -0
- package/src/schema-generator/generate-schema.ts +267 -0
- package/src/schema-generator/index.ts +19 -0
- package/src/schema-generator/integrator/result-integrator.ts +759 -0
- package/src/schema-generator/pruner/schema-pruner.ts +112 -0
- package/src/schema-generator/resolver-collector/resolver-collector.ts +157 -0
- package/src/shared/constants.ts +122 -0
- package/src/shared/default-value-detector.ts +172 -0
- package/src/shared/diagnostics.ts +35 -0
- package/src/shared/directive-definition-extractor.ts +564 -0
- package/src/shared/directive-detector.ts +556 -0
- package/src/shared/enum-prefix-detector.ts +99 -0
- package/src/shared/file-scanner.ts +170 -0
- package/src/shared/ignore-fields-detector.ts +109 -0
- package/src/shared/ignore-fields-validator.ts +66 -0
- package/src/shared/index.ts +34 -0
- package/src/shared/inline-object-extractor.ts +102 -0
- package/src/shared/inline-object-utils.ts +23 -0
- package/src/shared/interface-detector.ts +176 -0
- package/src/shared/interface-validator.ts +211 -0
- package/src/shared/metadata-detector.ts +443 -0
- package/src/shared/path-utils.ts +3 -0
- package/src/shared/program-factory.ts +51 -0
- package/src/shared/source-location.ts +38 -0
- package/src/shared/tsconfig-loader.ts +126 -0
- package/src/shared/tsdoc-parser.ts +155 -0
- package/src/shared/type-converter.ts +99 -0
- package/src/shared/typescript-utils.ts +246 -0
- package/src/type-extractor/collector/result-collector.ts +57 -0
- package/src/type-extractor/collector/scalar-collector.ts +254 -0
- package/src/type-extractor/converter/field-eligibility.ts +112 -0
- package/src/type-extractor/converter/graphql-converter.ts +483 -0
- package/src/type-extractor/extract-types.ts +1 -0
- package/src/type-extractor/extractor/field-type-resolver.ts +614 -0
- package/src/type-extractor/extractor/type-extractor.ts +1644 -0
- package/src/type-extractor/extractor/type-name-collector.ts +130 -0
- package/src/type-extractor/index.ts +20 -0
- package/src/type-extractor/mapper/scalar-base-type-mapper.ts +265 -0
- package/src/type-extractor/types/diagnostics.ts +109 -0
- package/src/type-extractor/types/graphql.ts +55 -0
- package/src/type-extractor/types/index.ts +37 -0
- package/src/type-extractor/types/ts-type-reference-factory.ts +150 -0
- package/src/type-extractor/types/typescript.ts +137 -0
- package/src/type-extractor/validator/type-validator.ts +77 -0
- package/dist/auto-type-generator/auto-type-generator.test.d.ts +0 -2
- package/dist/auto-type-generator/auto-type-generator.test.d.ts.map +0 -1
- package/dist/auto-type-generator/auto-type-generator.test.js +0 -613
- package/dist/auto-type-generator/auto-type-generator.test.js.map +0 -1
- package/dist/auto-type-generator/name-collision-validator.test.d.ts +0 -2
- package/dist/auto-type-generator/name-collision-validator.test.d.ts.map +0 -1
- package/dist/auto-type-generator/name-collision-validator.test.js +0 -358
- package/dist/auto-type-generator/name-collision-validator.test.js.map +0 -1
- package/dist/auto-type-generator/naming-convention.test.d.ts +0 -2
- package/dist/auto-type-generator/naming-convention.test.d.ts.map +0 -1
- package/dist/auto-type-generator/naming-convention.test.js +0 -132
- package/dist/auto-type-generator/naming-convention.test.js.map +0 -1
- package/dist/commands/gen.test.d.ts +0 -2
- package/dist/commands/gen.test.d.ts.map +0 -1
- package/dist/commands/gen.test.js +0 -226
- package/dist/commands/gen.test.js.map +0 -1
- package/dist/config-loader/loader.test.d.ts +0 -2
- package/dist/config-loader/loader.test.d.ts.map +0 -1
- package/dist/config-loader/loader.test.js +0 -123
- package/dist/config-loader/loader.test.js.map +0 -1
- package/dist/config-loader/validator.test.d.ts +0 -2
- package/dist/config-loader/validator.test.d.ts.map +0 -1
- package/dist/config-loader/validator.test.js +0 -846
- package/dist/config-loader/validator.test.js.map +0 -1
- package/dist/gen-orchestrator/golden.test.d.ts +0 -2
- package/dist/gen-orchestrator/golden.test.d.ts.map +0 -1
- package/dist/gen-orchestrator/golden.test.js +0 -102
- package/dist/gen-orchestrator/golden.test.js.map +0 -1
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts +0 -2
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.d.ts.map +0 -1
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.js +0 -167
- package/dist/gen-orchestrator/hook-executor/hook-executor.test.js.map +0 -1
- package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts +0 -2
- package/dist/gen-orchestrator/reporter/progress-reporter.test.d.ts.map +0 -1
- package/dist/gen-orchestrator/reporter/progress-reporter.test.js +0 -74
- package/dist/gen-orchestrator/reporter/progress-reporter.test.js.map +0 -1
- package/dist/resolver-extractor/validator/only-validator.d.ts +0 -61
- package/dist/resolver-extractor/validator/only-validator.d.ts.map +0 -1
- package/dist/resolver-extractor/validator/only-validator.js +0 -76
- package/dist/resolver-extractor/validator/only-validator.js.map +0 -1
- package/dist/resolver-extractor/validator/only-validator.test.d.ts +0 -8
- package/dist/resolver-extractor/validator/only-validator.test.d.ts.map +0 -1
- package/dist/resolver-extractor/validator/only-validator.test.js +0 -352
- package/dist/resolver-extractor/validator/only-validator.test.js.map +0 -1
- package/dist/schema-generator/builder/ast-builder.test.d.ts +0 -2
- package/dist/schema-generator/builder/ast-builder.test.d.ts.map +0 -1
- package/dist/schema-generator/builder/ast-builder.test.js +0 -469
- package/dist/schema-generator/builder/ast-builder.test.js.map +0 -1
- package/dist/shared/file-scanner.test.d.ts +0 -2
- package/dist/shared/file-scanner.test.d.ts.map +0 -1
- package/dist/shared/file-scanner.test.js +0 -138
- package/dist/shared/file-scanner.test.js.map +0 -1
- package/dist/shared/interface-validator.test.d.ts +0 -2
- package/dist/shared/interface-validator.test.d.ts.map +0 -1
- package/dist/shared/interface-validator.test.js +0 -145
- package/dist/shared/interface-validator.test.js.map +0 -1
- package/dist/type-extractor/types/typescript.test.d.ts +0 -2
- package/dist/type-extractor/types/typescript.test.d.ts.map +0 -1
- package/dist/type-extractor/types/typescript.test.js +0 -287
- package/dist/type-extractor/types/typescript.test.js.map +0 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Diagnostic } from "../../type-extractor/index.js";
|
|
2
|
+
import type { OutputWriter } from "./progress-reporter.js";
|
|
3
|
+
|
|
4
|
+
export interface DiagnosticReporter {
|
|
5
|
+
reportDiagnostics(diagnostics: ReadonlyArray<Diagnostic>): void;
|
|
6
|
+
reportError(message: string): void;
|
|
7
|
+
reportSuccess(message: string): void;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
function formatDiagnostic(diagnostic: Diagnostic): string {
|
|
11
|
+
const severity = diagnostic.severity;
|
|
12
|
+
const code = diagnostic.code;
|
|
13
|
+
const message = diagnostic.message;
|
|
14
|
+
|
|
15
|
+
if (diagnostic.location) {
|
|
16
|
+
const { file, line, column } = diagnostic.location;
|
|
17
|
+
return `${file}:${line}:${column} - ${severity}[${code}]: ${message}`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return `${severity}[${code}]: ${message}`;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function createDiagnosticReporter(
|
|
24
|
+
writer: OutputWriter,
|
|
25
|
+
): DiagnosticReporter {
|
|
26
|
+
return {
|
|
27
|
+
reportDiagnostics(diagnostics: ReadonlyArray<Diagnostic>): void {
|
|
28
|
+
for (const diagnostic of diagnostics) {
|
|
29
|
+
const formatted = formatDiagnostic(diagnostic);
|
|
30
|
+
if (diagnostic.severity === "error") {
|
|
31
|
+
writer.stderr(formatted);
|
|
32
|
+
} else {
|
|
33
|
+
writer.stdout(formatted);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
reportError(message: string): void {
|
|
38
|
+
writer.stderr(`error: ${message}`);
|
|
39
|
+
},
|
|
40
|
+
reportSuccess(message: string): void {
|
|
41
|
+
writer.stdout(message);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export interface OutputWriter {
|
|
2
|
+
readonly stdout: (message: string) => void;
|
|
3
|
+
readonly stderr: (message: string) => void;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
export interface ProgressReporter {
|
|
7
|
+
startPhase(phaseName: string): void;
|
|
8
|
+
fileWritten(filePath: string): void;
|
|
9
|
+
complete(): void;
|
|
10
|
+
|
|
11
|
+
/** Display hook execution start message */
|
|
12
|
+
startHookPhase(): void;
|
|
13
|
+
|
|
14
|
+
/** Display successful hook completion */
|
|
15
|
+
hookCompleted(command: string): void;
|
|
16
|
+
|
|
17
|
+
/** Display hook failure with error details */
|
|
18
|
+
hookFailed(command: string, exitCode: number | null, stderr: string): void;
|
|
19
|
+
|
|
20
|
+
/** Display hook phase summary */
|
|
21
|
+
hookPhaseSummary(totalCount: number, failedCount: number): void;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export function createProgressReporter(writer: OutputWriter): ProgressReporter {
|
|
25
|
+
return {
|
|
26
|
+
startPhase(phaseName: string): void {
|
|
27
|
+
writer.stdout(` ${phaseName}...`);
|
|
28
|
+
},
|
|
29
|
+
fileWritten(filePath: string): void {
|
|
30
|
+
writer.stdout(` wrote ${filePath}`);
|
|
31
|
+
},
|
|
32
|
+
complete(): void {
|
|
33
|
+
writer.stdout(" Done!");
|
|
34
|
+
},
|
|
35
|
+
startHookPhase(): void {
|
|
36
|
+
writer.stdout(" Running hooks...");
|
|
37
|
+
},
|
|
38
|
+
hookCompleted(command: string): void {
|
|
39
|
+
writer.stdout(` hook completed: ${command}`);
|
|
40
|
+
},
|
|
41
|
+
hookFailed(command: string, exitCode: number | null, stderr: string): void {
|
|
42
|
+
const exitCodeStr = exitCode !== null ? ` (exit code: ${exitCode})` : "";
|
|
43
|
+
writer.stderr(` hook failed: ${command}${exitCodeStr}`);
|
|
44
|
+
const trimmedStderr = stderr.trim();
|
|
45
|
+
if (trimmedStderr) {
|
|
46
|
+
for (const line of trimmedStderr.split("\n")) {
|
|
47
|
+
writer.stderr(` ${line}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
hookPhaseSummary(totalCount: number, failedCount: number): void {
|
|
52
|
+
if (failedCount === 0) {
|
|
53
|
+
writer.stdout(` Hooks completed: ${totalCount} succeeded`);
|
|
54
|
+
} else {
|
|
55
|
+
writer.stderr(
|
|
56
|
+
` Hooks completed: ${totalCount - failedCount} succeeded, ${failedCount} failed`,
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { dirname } from "node:path";
|
|
3
|
+
|
|
4
|
+
export interface WriteFileOptions {
|
|
5
|
+
readonly files: ReadonlyArray<{
|
|
6
|
+
readonly filePath: string;
|
|
7
|
+
readonly content: string;
|
|
8
|
+
}>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface WriteResult {
|
|
12
|
+
readonly success: boolean;
|
|
13
|
+
readonly writtenPaths: ReadonlyArray<string>;
|
|
14
|
+
readonly error: Error | null;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export async function writeFiles(
|
|
18
|
+
options: WriteFileOptions,
|
|
19
|
+
): Promise<WriteResult> {
|
|
20
|
+
const { files } = options;
|
|
21
|
+
const writtenPaths: string[] = [];
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
for (const file of files) {
|
|
25
|
+
await mkdir(dirname(file.filePath), { recursive: true });
|
|
26
|
+
await writeFile(file.filePath, file.content, "utf-8");
|
|
27
|
+
writtenPaths.push(file.filePath);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return { success: true, writtenPaths, error: null };
|
|
31
|
+
} catch (error) {
|
|
32
|
+
return {
|
|
33
|
+
success: false,
|
|
34
|
+
writtenPaths,
|
|
35
|
+
error: error instanceof Error ? error : new Error(String(error)),
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type ts from "typescript";
|
|
2
|
+
import type {
|
|
3
|
+
DirectiveArgumentValue,
|
|
4
|
+
DirectiveInfo,
|
|
5
|
+
} from "../shared/directive-detector.js";
|
|
6
|
+
import type { DeprecationInfo } from "../shared/tsdoc-parser.js";
|
|
7
|
+
import type {
|
|
8
|
+
Diagnostics,
|
|
9
|
+
GraphQLFieldType,
|
|
10
|
+
InlineEnumMemberInfo,
|
|
11
|
+
InlineObjectPropertyDef,
|
|
12
|
+
SourceLocation,
|
|
13
|
+
TSTypeReference,
|
|
14
|
+
} from "../type-extractor/types/index.js";
|
|
15
|
+
import type { AbstractResolverInfo } from "./extractor/define-api-extractor.js";
|
|
16
|
+
|
|
17
|
+
export interface GraphQLInputValue {
|
|
18
|
+
readonly name: string;
|
|
19
|
+
readonly type: GraphQLFieldType;
|
|
20
|
+
readonly description: string | null;
|
|
21
|
+
readonly deprecated: DeprecationInfo | null;
|
|
22
|
+
readonly defaultValue: DirectiveArgumentValue | null;
|
|
23
|
+
readonly inlineObjectProperties: ReadonlyArray<InlineObjectPropertyDef> | null;
|
|
24
|
+
/** Inline enum members when arg type is an inline enum (string literal union or external TypeScript enum) */
|
|
25
|
+
readonly inlineEnumMembers: ReadonlyArray<InlineEnumMemberInfo> | null;
|
|
26
|
+
/** External TypeScript enum symbol for deduplication across multiple references */
|
|
27
|
+
readonly externalEnumSymbol: ts.Symbol | null;
|
|
28
|
+
/** TSDoc description from the external enum type itself (null for string literal unions) */
|
|
29
|
+
readonly externalEnumDescription: string | null;
|
|
30
|
+
/** @deprecated tag from the external enum type itself (null for string literal unions) */
|
|
31
|
+
readonly externalEnumDeprecated: DeprecationInfo | null;
|
|
32
|
+
/** Inline union members when arg type is a union type (for @oneOf input objects) */
|
|
33
|
+
readonly inlineUnionMembers: ReadonlyArray<TSTypeReference> | null;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface GraphQLFieldDefinition {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly type: GraphQLFieldType;
|
|
39
|
+
readonly args: ReadonlyArray<GraphQLInputValue> | null;
|
|
40
|
+
readonly sourceLocation: SourceLocation;
|
|
41
|
+
readonly resolverExportName: string | null;
|
|
42
|
+
readonly description: string | null;
|
|
43
|
+
readonly deprecated: DeprecationInfo | null;
|
|
44
|
+
readonly directives: ReadonlyArray<DirectiveInfo> | null;
|
|
45
|
+
/** Inline object properties when return type is an inline object type */
|
|
46
|
+
readonly returnTypeInlineObjectProperties: ReadonlyArray<InlineObjectPropertyDef> | null;
|
|
47
|
+
/** TSDoc description from the inline object type alias (Requirement 7.2) */
|
|
48
|
+
readonly returnTypeInlineObjectDescription: string | null;
|
|
49
|
+
/** @deprecated tag from the inline object type alias (Requirement 7.3) */
|
|
50
|
+
readonly returnTypeInlineObjectDeprecated: DeprecationInfo | null;
|
|
51
|
+
/** Inline enum members when return type is an inline enum (string literal union or external TypeScript enum) */
|
|
52
|
+
readonly returnTypeInlineEnumMembers: ReadonlyArray<InlineEnumMemberInfo> | null;
|
|
53
|
+
/** Inline union members when return type is a union type (for Payload union types) */
|
|
54
|
+
readonly returnTypeInlineUnionMembers: ReadonlyArray<TSTypeReference> | null;
|
|
55
|
+
/** External TypeScript enum symbol for deduplication across multiple references */
|
|
56
|
+
readonly returnTypeExternalEnumSymbol: ts.Symbol | null;
|
|
57
|
+
/** TSDoc description from the external enum type itself (null for string literal unions) */
|
|
58
|
+
readonly returnTypeExternalEnumDescription: string | null;
|
|
59
|
+
/** @deprecated tag from the external enum type itself (null for string literal unions) */
|
|
60
|
+
readonly returnTypeExternalEnumDeprecated: DeprecationInfo | null;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface QueryFieldDefinitions {
|
|
64
|
+
readonly fields: ReadonlyArray<GraphQLFieldDefinition>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface MutationFieldDefinitions {
|
|
68
|
+
readonly fields: ReadonlyArray<GraphQLFieldDefinition>;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export interface TypeExtension {
|
|
72
|
+
readonly targetTypeName: string;
|
|
73
|
+
readonly fields: ReadonlyArray<GraphQLFieldDefinition>;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export interface ExtractResolversResult {
|
|
77
|
+
readonly queryFields: QueryFieldDefinitions;
|
|
78
|
+
readonly mutationFields: MutationFieldDefinitions;
|
|
79
|
+
readonly typeExtensions: ReadonlyArray<TypeExtension>;
|
|
80
|
+
readonly abstractTypeResolvers: ReadonlyArray<AbstractResolverInfo>;
|
|
81
|
+
readonly diagnostics: Diagnostics;
|
|
82
|
+
}
|