directories static method

List<String> directories(
  1. String name, {
  2. Set<Feature> features = const {},
  3. bool full = false,
})

Returns the directory tree for a project named name.

Pass features to include feature-specific subdirectories. Pass full: true for the full kitchen-sink scaffold (implies all directories from all features).

Implementation

static List<String> directories(
  String name, {
  Set<Feature> features = const {},
  bool full = false,
}) {
  final effective = full ? kAllFeatures : features;

  final dirs = <String>[
    '$name/lib/src/controllers',
    '$name/lib/src/config',
    '$name/lib/src/core',
    '$name/bin',
    '$name/env',
    '$name/test',
  ];

  if (effective.contains(Feature.auth) || effective.contains(Feature.db)) {
    dirs.addAll([
      '$name/lib/src/services',
      '$name/lib/src/models',
      '$name/lib/src/dto',
      '$name/test/services',
    ]);
  }

  if (effective.contains(Feature.db)) {
    dirs.addAll([
      '$name/lib/src/repositories',
      '$name/migrations',
    ]);
  }

  return dirs;
}