Skip to content

Commit

Permalink
Consolidating api name camelcasing
Browse files Browse the repository at this point in the history
  • Loading branch information
nerdsupremacist committed Dec 19, 2021
1 parent 98d4ffb commit 8134d59
Show file tree
Hide file tree
Showing 15 changed files with 59 additions and 56 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ extension Schema.GraphQLType.Field.TypeReference {
return "Apollo\(api.upperCamelized).\(fragment.name.upperCamelized)?"
}

return "\(api).\(name.upperCamelized)?"
return "\(api.upperCamelized).\(name.upperCamelized)?"

case .complex(let definition, let ofType):
switch definition.kind {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import Foundation
struct BasicGenerator: Generator {

private let structureAPIVersion = 12
private let apiCodeGenVersion = 5
private let connectionFragmentCodeGenVersion = 2
private let apiCodeGenVersion = 6
private let connectionFragmentCodeGenVersion = 3

func generate(prepared: Project.State<Stage.Prepared>, useFormatting: Bool) throws -> String {
let usedTypesThatTriggerCacheMiss = prepared
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ import Foundation
import CLIKit

struct BasicApolloCodegenRequestProcessor: ApolloCodegenRequestProcessor {
private let version = 2

let instantiator: ApolloProcessInstantiator

func process(request: ApolloCodeGenRequest,
using apollo: ApolloReference,
cache: PersistentCache<AnyHashable>?) throws -> ApolloCodeGenResponse {

let code = try cache.tryCache(key: request) {
let key = ComposedHashable(c0: request, c1: version)
let code = try cache.tryCache(key: key) {
try process(request: request, using: apollo)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ extension ApolloReference {
fileprivate func arguments(api: API, graphql: Path, outputFile: Path) -> [String] {
return [
command,
"--namespace=Apollo\(api.name)",
"--namespace=Apollo\(api.name.upperCamelized)",
"--target=swift",
"--includes=\(graphql)",
"--localSchemaFile=\(api.path)",
Expand Down
28 changes: 14 additions & 14 deletions templates/swift/API.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
// MARK: - {{ api.name }}
// MARK: - {{ api.name|upperCamelized }}

#if {{ unifiedMacroFlag }}

struct {{ api.name }}: API {
struct {{ api.name|upperCamelized }}: API {
let client: ApolloClient

typealias Query = {{ api.name }}
typealias Path<V> = GraphQLPath<{{ api.name }}, V>
typealias FragmentPath<V> = GraphQLFragmentPath<{{ api.name }}, V>
typealias Query = {{ api.name|upperCamelized }}
typealias Path<V> = GraphQLPath<{{ api.name|upperCamelized }}, V>
typealias FragmentPath<V> = GraphQLFragmentPath<{{ api.name|upperCamelized }}, V>

{% if api.mutation %}
enum Mutation: MutationTarget {
typealias Path<V> = GraphQLPath<{{ api.name }}.Mutation, V>
typealias FragmentPath<V> = GraphQLFragmentPath<{{ api.name }}.Mutation, V>
typealias Path<V> = GraphQLPath<{{ api.name|upperCamelized }}.Mutation, V>
typealias FragmentPath<V> = GraphQLFragmentPath<{{ api.name|upperCamelized }}.Mutation, V>

{{ api.mutation.fields|code:"static" }}
}
Expand All @@ -22,7 +22,7 @@ struct {{ api.name }}: API {
{{ api.types|code }}
}

extension {{ api.name }} {
extension {{ api.name|upperCamelized }} {

init(url: URL{% if api.url %} = URL(string: "{{ api.url }}")!{% endif %},
client: URLSessionClient = URLSessionClient(),
Expand All @@ -45,27 +45,27 @@ extension {{ api.name }} {
}

{% for type in api.types %}
extension GraphQLFragmentPath where UnderlyingType == {{ api.name }}.{{ type.name|upperCamelized }} {
extension GraphQLFragmentPath where UnderlyingType == {{ api.name|upperCamelized }}.{{ type.name|upperCamelized }} {
{{ type.fields|code }}

{% for interface in type.interfaces %}
var {{ interface.name|camelized|keywordProtected }}: FragmentPath<{{ api.name }}.{{ interface.name|upperCamelized }}> { .init() }
var {{ interface.name|camelized|keywordProtected }}: FragmentPath<{{ api.name|upperCamelized }}.{{ interface.name|upperCamelized }}> { .init() }
{% endfor %}

{% for possibleType in type.possibleTypes %}
var {{ possibleType.name|camelized|keywordProtected }}: FragmentPath<{{ api.name }}.{{ possibleType.name|upperCamelized }}?> { .init() }
var {{ possibleType.name|camelized|keywordProtected }}: FragmentPath<{{ api.name|upperCamelized }}.{{ possibleType.name|upperCamelized }}?> { .init() }
{% endfor %}
}

extension GraphQLFragmentPath where UnderlyingType == {{ api.name }}.{{ type.name|upperCamelized }}? {
extension GraphQLFragmentPath where UnderlyingType == {{ api.name|upperCamelized }}.{{ type.name|upperCamelized }}? {
{{ type.fields|code:"optional" }}

{% for interface in type.interfaces %}
var {{ interface.name|camelized|keywordProtected }}: FragmentPath<{{ api.name }}.{{ interface.name|upperCamelized }}?> { .init() }
var {{ interface.name|camelized|keywordProtected }}: FragmentPath<{{ api.name|upperCamelized }}.{{ interface.name|upperCamelized }}?> { .init() }
{% endfor %}

{% for possibleType in type.possibleTypes %}
var {{ possibleType.name|camelized|keywordProtected }}: FragmentPath<{{ api.name }}.{{ possibleType.name|upperCamelized }}?> { .init() }
var {{ possibleType.name|camelized|keywordProtected }}: FragmentPath<{{ api.name|upperCamelized }}.{{ possibleType.name|upperCamelized }}?> { .init() }
{% endfor %}
}
{% endfor %}
Expand Down
6 changes: 3 additions & 3 deletions templates/swift/FragmentPlaceholder.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extension Apollo{{ fragmentPlaceholder.api.name }}.{{ fragmentPlaceholder.fragmentName|upperCamelized }} {
extension Apollo{{ fragmentPlaceholder.api.name|upperCamelized }}.{{ fragmentPlaceholder.fragmentName|upperCamelized }} {
private static let placeholderMap: ResultMap = {{ placeholderCode }}

static let placeholder = Apollo{{ fragmentPlaceholder.api.name }}.{{ fragmentPlaceholder.fragmentName|upperCamelized }}(
unsafeResultMap: Apollo{{ fragmentPlaceholder.api.name }}.{{ fragmentPlaceholder.fragmentName|upperCamelized }}.placeholderMap
static let placeholder = Apollo{{ fragmentPlaceholder.api.name|upperCamelized }}.{{ fragmentPlaceholder.fragmentName|upperCamelized }}(
unsafeResultMap: Apollo{{ fragmentPlaceholder.api.name|upperCamelized }}.{{ fragmentPlaceholder.fragmentName|upperCamelized }}.placeholderMap
)
}
8 changes: 4 additions & 4 deletions templates/swift/GraphQLConnectionFragment.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
extension Apollo{{ graphQlConnectionFragment.fragment.api.name }}.{{ graphQlConnectionFragment.fragment.name|upperCamelized }} {
typealias Completion = (Result<Apollo{{ graphQlConnectionFragment.fragment.api.name }}.{{ graphQlConnectionFragment.fragment.name|upperCamelized }}?, Error>) -> Void
extension Apollo{{ graphQlConnectionFragment.fragment.api.name|upperCamelized }}.{{ graphQlConnectionFragment.fragment.name|upperCamelized }} {
typealias Completion = (Result<Apollo{{ graphQlConnectionFragment.fragment.api.name|upperCamelized }}.{{ graphQlConnectionFragment.fragment.name|upperCamelized }}?, Error>) -> Void
typealias Loader = (String, Int?, @escaping Completion) -> Void

private var response: Paging<Apollo{{ graphQlConnectionFragment.fragment.api.name }}.{{ graphQlConnectionFragment.nodeFragment.name|upperCamelized }}>.Response {
private var response: Paging<Apollo{{ graphQlConnectionFragment.fragment.api.name|upperCamelized }}.{{ graphQlConnectionFragment.nodeFragment.name|upperCamelized }}>.Response {
return Paging.Response(values: edges{% if graphQlConnectionFragment.isEdgesArrayNullable %}?{% endif %}.compactMap { $0{% if graphQlConnectionFragment.areEdgesNullable %}?{% endif %}.node{% if graphQlConnectionFragment.areNodesNullable %}?{% endif %}.fragments.{{ graphQlConnectionFragment.nodeFragment.name|camelized }} }{% if graphQlConnectionFragment.isEdgesArrayNullable %} ?? []{% endif %},
cursor: pageInfo.endCursor,
hasMore: pageInfo.hasNextPage)
}

fileprivate func paging(loader: @escaping Loader) -> Paging<Apollo{{ graphQlConnectionFragment.fragment.api.name }}.{{ graphQlConnectionFragment.nodeFragment.name|upperCamelized }}> {
fileprivate func paging(loader: @escaping Loader) -> Paging<Apollo{{ graphQlConnectionFragment.fragment.api.name|upperCamelized }}.{{ graphQlConnectionFragment.nodeFragment.name|upperCamelized }}> {
return Paging(response) { cursor, pageSize, completion in
loader(cursor, pageSize) { result in
completion(result.map { $0?.response ?? .empty })
Expand Down
2 changes: 1 addition & 1 deletion templates/swift/GraphQLType.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{% if shouldBeTypealias %}
typealias {{ graphQlType.name|upperCamelized }} = Apollo{{ api.name }}.{{ graphQlType.name }}
typealias {{ graphQlType.name|upperCamelized }} = Apollo{{ api.name|upperCamelized }}.{{ graphQlType.name }}
{% else %}
{% if graphQlType.inputFields %}struct{% else %}enum{% endif %} {{ graphQlType.name|upperCamelized }}: {%if hasEnumValues %}String, {% endif %}Target{% if connectionNodeType %}, Connection{% endif %} {

Expand Down
2 changes: 1 addition & 1 deletion templates/swift/MissingFragmentsStruct.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
extension Apollo{{ missingFragmentsStruct.api.name }}.{{ missingFragmentsStruct.path|join:"." }} {
extension Apollo{{ missingFragmentsStruct.api.name|upperCamelized }}.{{ missingFragmentsStruct.path|join:"." }} {
public struct Fragments {
public private(set) var resultMap: ResultMap

Expand Down
6 changes: 3 additions & 3 deletions templates/swift/MissingReferencedFragment.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
extension Apollo{{ missingReferencedFragment.api.name }}.{{ missingReferencedFragment.path|join:"." }}.Fragments {
extension Apollo{{ missingReferencedFragment.api.name|upperCamelized }}.{{ missingReferencedFragment.path|join:"." }}.Fragments {

public var {{ missingReferencedFragment.fragmentName|camelized }}: Apollo{{ missingReferencedFragment.api.name }}.{{ missingReferencedFragment.fragmentName }} {
public var {{ missingReferencedFragment.fragmentName|camelized }}: Apollo{{ missingReferencedFragment.api.name|upperCamelized }}.{{ missingReferencedFragment.fragmentName }} {
get {
return Apollo{{ missingReferencedFragment.api.name }}.{{ missingReferencedFragment.fragmentName }}(unsafeResultMap: resultMap)
return Apollo{{ missingReferencedFragment.api.name|upperCamelized }}.{{ missingReferencedFragment.fragmentName }}(unsafeResultMap: resultMap)
}
set {
resultMap += newValue.resultMap
Expand Down
6 changes: 3 additions & 3 deletions templates/swift/MutationStruct.swift.stencil
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ extension {{ structPrepared.name }} {

@Published private var mutationCounter = 0

private let api: {{ mutationStruct.mutation.api.name }}
private let api: {{ mutationStruct.mutation.api.name|upperCamelized }}

var isLoading: Bool {
return mutationCounter > 0
}

init(api: {{ mutationStruct.mutation.api.name }}) {
init(api: {{ mutationStruct.mutation.api.name|upperCamelized }}) {
self.api = api
}
}
Expand All @@ -30,7 +30,7 @@ extension {{ structPrepared.name }}.{{ mutationStruct.mutation.name }} {
@discardableResult
func commit({{ queryRendererArguments|codeArray|join:", " }}, completion: ((Result<Value, Error>) -> Void)? = nil) -> Self {
mutationCounter += 1
api.client.perform(mutation: Apollo{{ mutationStruct.mutation.api.name }}.{{ mutationStruct.mutation.parentName }}{{ mutationStruct.mutation.name }}Mutation({{ queryArgumentAssignments|codeArray|join:", " }})) { result in
api.client.perform(mutation: Apollo{{ mutationStruct.mutation.api.name|upperCamelized }}.{{ mutationStruct.mutation.parentName }}{{ mutationStruct.mutation.name }}Mutation({{ queryArgumentAssignments|codeArray|join:", " }})) { result in
self.mutationCounter -= 1
switch result {
case let .success(response):
Expand Down
2 changes: 1 addition & 1 deletion templates/swift/PagingFromFragment.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{{ pathExpression }}.paging { _cursor, _pageSize, _completion in
self.client.fetch(query: Apollo{{ pagingFromFragment.query.query.api.name }}.{{ pagingFromFragment.query.query.name|upperCamelized }}Query({{ queryArgumentAssignments|codeArray|join:", " }})) { result in
self.client.fetch(query: Apollo{{ pagingFromFragment.query.query.api.name|upperCamelized }}.{{ pagingFromFragment.query.query.name|upperCamelized }}Query({{ queryArgumentAssignments|codeArray|join:", " }})) { result in
_completion(result.map { $0.{{ optionalPathExpression }} })
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Apollo{{ placeholderPagingFromFragment.query.api.name }}.{{ placeholderPagingFromFragment.query.name|upperCamelized }}Query.Data.{{ pathExpression }}.paging { _, _, _ in
Apollo{{ placeholderPagingFromFragment.query.api.name|upperCamelized }}.{{ placeholderPagingFromFragment.query.name|upperCamelized }}Query.Data.{{ pathExpression }}.paging { _, _, _ in
// no-op
}
6 changes: 3 additions & 3 deletions templates/swift/QueryDataPlaceholder.swift.stencil
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
extension Apollo{{ queryDataPlaceholder.api.name }}.{{ queryDataPlaceholder.queryName }}Query.Data {
extension Apollo{{ queryDataPlaceholder.api.name|upperCamelized }}.{{ queryDataPlaceholder.queryName }}Query.Data {
private static let placeholderMap: ResultMap = {{ placeholderCode }}

static let placeholder = Apollo{{ queryDataPlaceholder.api.name }}.{{ queryDataPlaceholder.queryName }}Query.Data(
unsafeResultMap: Apollo{{ queryDataPlaceholder.api.name }}.{{ queryDataPlaceholder.queryName }}Query.Data.placeholderMap
static let placeholder = Apollo{{ queryDataPlaceholder.api.name|upperCamelized }}.{{ queryDataPlaceholder.queryName }}Query.Data(
unsafeResultMap: Apollo{{ queryDataPlaceholder.api.name|upperCamelized }}.{{ queryDataPlaceholder.queryName }}Query.Data.placeholderMap
)
}
Loading

0 comments on commit 8134d59

Please sign in to comment.