FutureOr generate()

in dartfn/tool/builder/src/code_generator.dart [33:67]


  FutureOr<String?> generate(LibraryReader library, BuildStep buildStep) async {
    if (!p.isWithin('lib/src/generators', buildStep.inputId.path)) {
      return null;
    }

    final name =
        p.basenameWithoutExtension(buildStep.inputId.path).replaceAll('_', '-');

    final filteredAssets =
        await buildStep.findAssets(Glob('templates/$name/**')).where(
      (asset) {
        final rootSegment = asset.pathSegments[2];

        if (_excludedRootFiles.contains(rootSegment)) {
          return false;
        }

        if (_allowedDotFiles.contains(rootSegment)) {
          return true;
        }

        return !rootSegment.startsWith('.');
      },
    ).toList()
          ..sort();

    final items = await _getLines(filteredAssets, buildStep).map((item) {
      if (item.contains('\n')) {
        return "'''\n$item'''";
      }
      return "'$item'";
    }).join(',');

    return 'const _data = <String>[$items];';
  }