process method

  1. @override
void process(
  1. String? path
)
override

Implementation

@override
void process(String? path) {
  log('Embed: ${config.dir} ');
  final outFileName = config.outputFile ?? 'index.dart';
  var filesPaths = listFiles(config.dir!, config.recursive!, true);

  var relativePaths =
      filesPaths.map((i) => p.relative(i!, from: config.dir)).toList();
  relativePaths.remove(outFileName);
  if (relativePaths.isEmpty) return null;

  final outFilePath = p.join(config.dir!, outFileName);

  try {
    var output = formatCode(
        filesPaths.map((i) {
          final relFilePath = p.relative(i!, from: config.dir);
          if (relFilePath == outFileName) return '';

          final fileName = p.basename(relFilePath);
          final slug = slugify(fileName, delimiter: '');
          return 'final $slug = \'' +
              Strings.toEscaped(File(i).readAsStringSync(
                  encoding: Utf8Codec(allowMalformed: true))) +
              '\';\n';
        }).join(''),
        formatterVersion);

    if (fileWriteString(outFilePath, output)) {
      logDone();
    } else {
      logNoChange();
    }
  } catch (e) {
    print(e);
    return;
  }

  _lastGenerated = outFilePath;
}