text: // Copyright (c) Microsoft Corporation. All rights reserved.
  // Licensed under the MIT License.
  
  // WARNING! Do not edit this file manually, your changes will be overwritten.
  
  #include "NodeObject.h"
  
  #include "graphqlservice/internal/Schema.h"
  
  #include "graphqlservice/introspection/IntrospectionSchema.h"
  
  using namespace std::literals;
  
  namespace graphql::validation {
  namespace object {
  
  Node::Node(std::unique_ptr<const Concept>&& pimpl) noexcept
  	: service::Object { pimpl->getTypeNames(), pimpl->getResolvers() }
  	, _pimpl { std::move(pimpl) }
  {
  }
  
  void Node::beginSelectionSet(const service::SelectionSetParams& params) const
  {
  	_pimpl->beginSelectionSet(params);
  }
  
  void Node::endSelectionSet(const service::SelectionSetParams& params) const
  {
  	_pimpl->endSelectionSet(params);
  }
  
  } // namespace object
  
  void AddNodeDetails(const std::shared_ptr<schema::InterfaceType>& typeNode, const std::shared_ptr<schema::Schema>& schema)
  {
  	typeNode->AddFields({
  		schema::Field::Make(R"gql(id)gql"sv, R"md()md"sv, std::nullopt, schema->WrapType(introspection::TypeKind::NON_NULL, schema->LookupType(R"gql(ID)gql"sv)))
  	});
  }
  
  } // namespace graphql::validation
  