message: Conditionally import PossibleTypeExtensions validation rule
  As described in
  older versions of `graphql` do not have this type.
diff: @@ -27,11 +27,9 @@ import { GraphQLSchemaValidationError } from "./GraphQLSchemaValidationError";
  import { specifiedSDLRules } from "graphql/validation/specifiedRules";
  import {
  KnownTypeNamesRule,
  - UniqueDirectivesPerLocationRule
  + UniqueDirectivesPerLocationRule,
  + ValidationRule
  } from "graphql/validation";
  -// Currently, this PossibleTypeExtensions rule is experimental and thus not
  -// exposed directly from the rules module above. This may change in the future!
  -import { PossibleTypeExtensions } from "graphql/validation/rules/PossibleTypeExtensions";
  import { mapValues, isNotNullOrUndefined } from "apollo-env";
  export interface GraphQLSchemaModule {
  @@ -39,12 +37,26 @@ export interface GraphQLSchemaModule {
  resolvers?: GraphQLResolverMap<any>;
  }
  -const skippedSDLRules = [
  - PossibleTypeExtensions,
  +const skippedSDLRules: ValidationRule[] = [
  KnownTypeNamesRule,
  UniqueDirectivesPerLocationRule
  ];
  +// BREAKING VERSION: Remove this when graphql-js 15 is minimum version.
  +// Currently, this PossibleTypeExtensions rule is experimental and thus not
  +// exposed directly from the rules module above. This may change in the future!
  +// Additionally, it does not exist in prior graphql versions. Thus this try/catch.
  +try {
  + const PossibleTypeExtensions: typeof import("graphql/validation/rules/PossibleTypeExtensions").PossibleTypeExtensions = require("graphql/validation/rules/PossibleTypeExtensions")
  + .PossibleTypeExtensions;
  + if (PossibleTypeExtensions) {
  + skippedSDLRules.push(PossibleTypeExtensions);
  + }
  +} catch (e) {
  + // No need to fail in this case. Instead, if this validation rule is missing, we will assume its not used
  + // by the version of `graphql` that is available to us.
  +}
  +
  const sdlRules = specifiedSDLRules.filter(
  rule => !skippedSDLRules.includes(rule)
  );
  