validatePath static method

List<String> validatePath(
  1. String path
)

Validate route path format

Implementation

static List<String> validatePath(String path) {
  final errors = <String>[];

  if (path.isEmpty) {
    errors.add('Path cannot be empty');
  }

  if (!path.startsWith('/')) {
    errors.add('Path must start with /');
  }

  final invalidParams = RegExp(r':([^a-zA-Z_]|\d)');
  if (invalidParams.hasMatch(path)) {
    errors.add('Parameter names must start with letter or underscore');
  }

  final params = extractParametersFromPath(path);
  final allParams = [...params.required, ...params.optional];
  final uniqueParams = allParams.toSet();

  if (allParams.length != uniqueParams.length) {
    errors.add('Duplicate parameters found in path');
  }

  return errors;
}