fn basename(file_path: &str) -> &str {
file_path
.rsplit_once('/')
.map(|(_, name)| name)
.unwrap_or(file_path)
}
fn has_any_suffix(file_path: &str, suffixes: &[&str]) -> bool {
suffixes.iter().any(|suffix| file_path.ends_with(suffix))
}
pub fn is_generated_file(file_path: &str) -> bool {
let name = basename(file_path);
if has_any_suffix(
file_path,
&[
".pb.go",
".pulsar.go",
"_grpc.pb.go",
"_mock.go",
"_mocks.go",
".generated.ts",
".generated.tsx",
".generated.js",
".generated.jsx",
".gen.ts",
".gen.tsx",
".gen.js",
".gen.jsx",
".pb.ts",
".pb.js",
"_pb.ts",
"_pb.js",
"_grpc_pb.ts",
"_grpc_pb.js",
".min.js",
".min.mjs",
"_pb2.py",
"_pb2_grpc.py",
"_pb2.pyi",
".pb.cc",
".pb.h",
".g.cs",
"Grpc.cs",
"OuterClass.java",
"Grpc.java",
".pb.swift",
".g.dart",
".freezed.dart",
".pb.dart",
".pbgrpc.dart",
".chopper.dart",
".generated.rs",
],
) {
return true;
}
name.starts_with("mock_") && name.ends_with(".go")
}