pack function

Future<void> pack(
  1. PackOptions options
)

Pack all SVG files into a single asset and its associated Dart code.

Implementation

Future<void> pack(PackOptions options) async {
  final packer = SvgPacker();
  final pack = await packer.pack(options.inputFiles);

  // Asset
  final assetFile = File(options.assetOutputPath);
  final assetDir = Directory(path.dirname(assetFile.path));
  if (!assetDir.existsSync()) {
    await assetDir.create(recursive: true);
  }
  await assetFile.writeAsBytes(pack.data);

  // Dart
  final dartOutput = generateDart(pack, options);
  final dartFile = File(options.dartOutputPath);
  final dartDir = Directory(path.dirname(dartFile.path));
  if (!dartDir.existsSync()) {
    await dartDir.create(recursive: true);
  }

  await dartFile.writeAsString(dartOutput);
}