generate static method
Implementation
static Future<void> generate(
Map<String, dynamic> template, Map<String, String> vars) async {
final folders = template['folders'] ?? [];
final files = template['files'] ?? [];
// 1️⃣ Create folders with spinner
await _withSpinner('🔹 Creating folders', () async {
for (final folder in folders) {
final path = VariableResolver.resolve(folder, vars);
Directory("lib/src/$path").createSync(recursive: true);
await Future.delayed(Duration(milliseconds: 50)); // smooth effect
}
});
// 2️⃣ Create files with spinner
await _withSpinner('🔹 Creating files', () async {
for (final file in files) {
final path = VariableResolver.resolve(file['path'], vars);
final content = VariableResolver.resolve(file['content'], vars);
final fullPath = "lib/src/$path";
File(fullPath).createSync(recursive: true);
File(fullPath).writeAsStringSync(content);
await Future.delayed(Duration(milliseconds: 30)); // smooth effect
}
});
// 3️⃣ Final success message
stdout.writeln('🎉 All files generated successfully!');
}