add method
Implementation
bool add(String path, Function make, {List? middlewares}) {
if (path.endsWith('/')) {
path = path.substring(0, path.length - 1);
}
if (!path.startsWith('/')) {
path = '/' + path;
}
if (this.group.using!) {
path = this.group.pre! + path;
if (this.group.middlewares!.length > 0) {
middlewares =
((middlewares ?? []) + this.group.middlewares!).toSet().toList();
}
}
middlewares = middlewares ?? [];
RegExp reg = new RegExp('\/((:)*[a-zA-Z_][a-zA-Z_0-9]*)*');
Iterable<Match> matches = reg.allMatches(path);
if (matches.isEmpty) {
print('maxilozoz box err: route add path is invaild.');
return false;
}
this.routes.add(MinRouteItem(
path: path.replaceAll(new RegExp(':[^/]+'), '([a-zA-Z0-9_]+)'),
handler: make,
matches: matches,
hasParam: (new RegExp('/:')).hasMatch(path),
middlewares: middlewares));
return true;
}