MkGraphQLBuilder constructor

MkGraphQLBuilder([
  1. BuilderOptions? options
])

Implementation

factory MkGraphQLBuilder([BuilderOptions? options]) {
  final config = MkGraphQLConfig.fromOptions(options ?? BuilderOptions.empty);
  final extensions = <String, List<String>>{};
  final schemaPath = config.schemaPath;
  final sharedDir = config.sharedDir;
  final libDir = Directory('lib');
  if (libDir.existsSync()) {
    final gqlFiles = libDir
        .listSync(recursive: true)
        .whereType<File>()
        .where((f) => f.path.endsWith('.graphql') || f.path.endsWith('.gql'));
    for (final file in gqlFiles) {
      try {
        final content = file.readAsStringSync();
        final outputRels = GeneratorOrchestrator.computeOutputPaths(
          content: content,
          inputPath: file.path,
          schemaPath: schemaPath,
          sharedDir: sharedDir,
        );
        final outputs = outputRels
            .map((k) => p.normalize(p.join(p.dirname(file.path), k)))
            .toList();
        extensions[file.path] = outputs;
      } catch (_) {}
    }
  }

  if (extensions.isEmpty) {
    extensions['.graphql'] = ['.gql.dart'];
    extensions['.gql'] = ['.gql.dart'];
  }

  return MkGraphQLBuilder._(config, extensions);
}