@@ -690,6 +690,9 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
690
690
public let pruneGeneratedFiles : Bool
691
691
/// Whether generated GraphQL operation and local cache mutation class types will be marked as `final`.
692
692
public let markOperationDefinitionsAsFinal : Bool
693
+ /// `true` will add a filename suffix matching the schema type, the default is `false`. This can be used to
694
+ /// avoid filename conflicts when operation type names match schema type names.
695
+ public let appendSchemaTypeFilenameSuffix : Bool
693
696
694
697
/// Default property values
695
698
public struct Default {
@@ -705,6 +708,7 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
705
708
public static let conversionStrategies : ConversionStrategies = . init( )
706
709
public static let pruneGeneratedFiles : Bool = true
707
710
public static let markOperationDefinitionsAsFinal : Bool = false
711
+ public static let appendSchemaTypeFilenameSuffix : Bool = false
708
712
}
709
713
710
714
/// Designated initializer.
@@ -725,7 +729,11 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
725
729
/// - conversionStrategies: Rules for how to convert the names of values from the schema in
726
730
/// generated code.
727
731
/// - pruneGeneratedFiles: Whether unused generated files will be automatically deleted.
728
- /// - markOperationDefinitionsAsFinal: Whether generated GraphQL operation and local cache mutation class types will be marked as `final`.
732
+ /// - markOperationDefinitionsAsFinal: Whether generated GraphQL operation and local cache mutation
733
+ /// class types will be marked as `final`.
734
+ /// - appendSchemaTypeFilenameSuffix: `true` will add a filename suffix matching the schema type, the
735
+ /// default is `false`. This can be used to avoid filename conflicts when operation type names match
736
+ /// schema type names.
729
737
public init (
730
738
additionalInflectionRules: [ InflectionRule ] = Default . additionalInflectionRules,
731
739
deprecatedEnumCases: Composition = Default . deprecatedEnumCases,
@@ -737,7 +745,8 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
737
745
warningsOnDeprecatedUsage: Composition = Default . warningsOnDeprecatedUsage,
738
746
conversionStrategies: ConversionStrategies = Default . conversionStrategies,
739
747
pruneGeneratedFiles: Bool = Default . pruneGeneratedFiles,
740
- markOperationDefinitionsAsFinal: Bool = Default . markOperationDefinitionsAsFinal
748
+ markOperationDefinitionsAsFinal: Bool = Default . markOperationDefinitionsAsFinal,
749
+ appendSchemaTypeFilenameSuffix: Bool = Default . appendSchemaTypeFilenameSuffix
741
750
) {
742
751
self . additionalInflectionRules = additionalInflectionRules
743
752
self . deprecatedEnumCases = deprecatedEnumCases
@@ -750,6 +759,7 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
750
759
self . conversionStrategies = conversionStrategies
751
760
self . pruneGeneratedFiles = pruneGeneratedFiles
752
761
self . markOperationDefinitionsAsFinal = markOperationDefinitionsAsFinal
762
+ self . appendSchemaTypeFilenameSuffix = appendSchemaTypeFilenameSuffix
753
763
}
754
764
755
765
// MARK: Codable
@@ -768,6 +778,7 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
768
778
case conversionStrategies
769
779
case pruneGeneratedFiles
770
780
case markOperationDefinitionsAsFinal
781
+ case appendSchemaTypeFilenameSuffix
771
782
}
772
783
773
784
public init ( from decoder: any Decoder ) throws {
@@ -833,6 +844,11 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
833
844
Bool . self,
834
845
forKey: . markOperationDefinitionsAsFinal
835
846
) ?? Default . markOperationDefinitionsAsFinal
847
+
848
+ appendSchemaTypeFilenameSuffix = try values. decodeIfPresent (
849
+ Bool . self,
850
+ forKey: . appendSchemaTypeFilenameSuffix
851
+ ) ?? Default . appendSchemaTypeFilenameSuffix
836
852
}
837
853
838
854
public func encode( to encoder: any Encoder ) throws {
@@ -849,6 +865,7 @@ public struct ApolloCodegenConfiguration: Codable, Equatable {
849
865
try container. encode ( self . conversionStrategies, forKey: . conversionStrategies)
850
866
try container. encode ( self . pruneGeneratedFiles, forKey: . pruneGeneratedFiles)
851
867
try container. encode ( self . markOperationDefinitionsAsFinal, forKey: . markOperationDefinitionsAsFinal)
868
+ try container. encode ( self . appendSchemaTypeFilenameSuffix, forKey: . appendSchemaTypeFilenameSuffix)
852
869
}
853
870
}
854
871
@@ -1702,7 +1719,7 @@ extension ApolloCodegenConfiguration.OutputOptions {
1702
1719
/// - pruneGeneratedFiles: Whether unused generated files will be automatically deleted.
1703
1720
/// - markOperationDefinitionsAsFinal: Whether generated GraphQL operation and local cache mutation class types will be marked as `final`.
1704
1721
@available ( * , deprecated,
1705
- renamed: " init(additionalInflectionRules:queryStringLiteralFormat:deprecatedEnumCases:schemaDocumentation:selectionSetInitializers:operationDocumentFormat:cocoapodsCompatibleImportStatements:warningsOnDeprecatedUsage:conversionStrategies:pruneGeneratedFiles:markOperationDefinitionsAsFinal:) "
1722
+ renamed: " init(additionalInflectionRules:queryStringLiteralFormat:deprecatedEnumCases:schemaDocumentation:selectionSetInitializers:operationDocumentFormat:cocoapodsCompatibleImportStatements:warningsOnDeprecatedUsage:conversionStrategies:pruneGeneratedFiles:markOperationDefinitionsAsFinal:appendSchemaTypeFilenameSuffix: ) "
1706
1723
)
1707
1724
public init (
1708
1725
additionalInflectionRules: [ InflectionRule ] = Default . additionalInflectionRules,
@@ -1728,6 +1745,7 @@ extension ApolloCodegenConfiguration.OutputOptions {
1728
1745
self . pruneGeneratedFiles = pruneGeneratedFiles
1729
1746
self . markOperationDefinitionsAsFinal = markOperationDefinitionsAsFinal
1730
1747
self . schemaCustomization = Default . schemaCustomization
1748
+ self . appendSchemaTypeFilenameSuffix = Default . appendSchemaTypeFilenameSuffix
1731
1749
}
1732
1750
1733
1751
/// Deprecated initializer.
@@ -1778,6 +1796,7 @@ extension ApolloCodegenConfiguration.OutputOptions {
1778
1796
self . pruneGeneratedFiles = pruneGeneratedFiles
1779
1797
self . markOperationDefinitionsAsFinal = markOperationDefinitionsAsFinal
1780
1798
self . schemaCustomization = Default . schemaCustomization
1799
+ self . appendSchemaTypeFilenameSuffix = Default . appendSchemaTypeFilenameSuffix
1781
1800
}
1782
1801
1783
1802
/// Whether the generated operations should use Automatic Persisted Queries.
0 commit comments