import Apollo {{#each models}} {{#if isObject}} public struct {{ name }}: GraphQLMapConvertible { public var graphQLMap: GraphQLMap public init({{#each fields }}{{ name }}: {{#if isArray}}[{{/if}}{{ type }}{{#if isArray}}]{{/if}}{{#unless isRequired}}? = nil{{/unless}}{{#unless @last}}, {{/unless}}{{/each }}) { graphQLMap = [{{#each fields }}"{{ name }}": {{ name }}{{#unless @last}}, {{/unless}}{{/each }}] } } {{/if ~}} {{#if isEnum}} public enum {{ name }}: String { {{#each enumValues }} case {{name}} = "{{ value }}" /// {{ description }} {{/each ~}} } extension {{ name }}: JSONDecodable, JSONEncodable {} {{/if ~}} {{/each}} {{#each documents}} {{#if isFragment }} {{> inner-type innerTypes=rootType}} {{else}} public final class {{ name }}: {{#if isMutation }}GraphQLMutation{{/if}}{{#if isQuery }}GraphQLQuery{{/if}}{{#if isSubscription }}GraphQLSubscription{{/if}}{{#if isFragment }}GraphQLNamedFragment{{/if}} { public static let operationDefinition = {{#multiline-string document }}{{/multiline-string}} {{#if isFragment}}public static let possibleTypes = [{{#each possibleFragmentTypes}}"{{this}}"{{#unless @last}}, {{/unless}}{{/each}}]{{/if}} {{#if hasVariables}} {{#each variables}} public let {{ name }}: {{#if isArray}}[{{/if}}{{ type }}{{#if isArray}}]{{/if}}{{#unless isRequired}}?{{/unless}} {{/each}} public var variables: GraphQLMap? { return [{{#each variables}}"{{name}}": {{name}}{{#unless @last}}, {{/unless}}{{/each}}] } {{/if}} public init({{#each variables}}{{ name }}: {{#if isArray}}[{{/if}}{{ type }}{{#if isArray}}]{{/if}}{{#unless isRequired}}?{{/unless}}{{#unless @last}}, {{/unless}}{{/each}}) { {{#each variables}} self.{{ name }} = {{ name }} {{/each}} } {{> inner-type innerTypes=innerTypes}} } {{/if}} {{/each}}