emitStThemeDart function

String emitStThemeDart(
  1. STDesignIr ir, {
  2. String? variableName,
  3. String? extensionName,
  4. String? partOf,
})

Implementation

String emitStThemeDart(
  STDesignIr ir, {
  String? variableName,
  String? extensionName,
  String? partOf,
}) {
  final name = variableName ?? ir.variableName;
  final extName = extensionName ?? ir.extensionName;
  final part = partOf ?? ir.partOf;
  final buf = StringBuffer();
  buf.writeln('// GENERATED CODE - do not modify by hand.');
  buf.writeln('// dart run flutter_scale_theme_kit:generate');
  buf.writeln();
  if (part != null) {
    buf.writeln("part of '$part';");
    buf.writeln();
  } else {
    buf.writeln("import 'package:flutter/material.dart';");
    buf.writeln(
      "import 'package:flutter_scale_theme_kit/flutter_scale_theme_kit.dart';",
    );
    buf.writeln();
  }

  buf.writeln('final $name = STTheme(');
  _emitColors(buf, ir.colors);
  _emitRadius(buf, ir.radius);
  _emitTypography(buf, ir.typography);
  _emitComponents(buf, ir.components);
  _emitExtras(buf, ir.extras);
  buf.writeln(');');
  buf.writeln();
  emitStResolvedExtension(
    buf,
    extras: ir.extras,
    extraColors: ir.colors.extra.keys.toList(),
    extraComponents: ir.components?.extra.keys.toList() ?? const [],
    extensionName: extName,
  );
  return buf.toString();
}