package polymarket
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
OCaml client library for the Polymarket prediction market API
Install
dune-project
Dependency
Authors
Maintainers
Sources
0.2.0.tar.gz
md5=4eb4c5d2f63ff081c9713d90be5a51b2
sha512=0e3de0c9b40683e09ab8f9f966a44784ef1b9b482c3eefef84104a7e8042c92f1d79893ee9588b24fa3d0decaed7f365509f4d1c23c66ce8328efb64e721f276
doc/src/polymarket.rate_limiter/matcher.ml.html
Source file matcher.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47(** Route matching for rate limiting. *) let path_matches_prefix ~path ~prefix = if String.length prefix = 0 || prefix = "/" then true else (* Normalize: remove trailing slash from prefix for comparison *) let normalized_prefix = if String.ends_with ~suffix:"/" prefix then String.sub prefix 0 (String.length prefix - 1) else prefix in let prefix_len = String.length normalized_prefix in let path_len = String.length path in if String.starts_with ~prefix:normalized_prefix path then (* Exact match or followed by '/' or end of path *) prefix_len = path_len || (prefix_len < path_len && path.[prefix_len] = '/') else false let matches_pattern ~method_ ~uri (pattern : Types.route_pattern) = let host_matches = match pattern.host with None -> true | Some h -> Uri.host uri = Some h in let method_matches = match pattern.method_ with | None -> true | Some m -> String.uppercase_ascii m = String.uppercase_ascii method_ in let path_matches = match pattern.path_prefix with | None -> true | Some prefix -> let path = Uri.path uri in path_matches_prefix ~path ~prefix in host_matches && method_matches && path_matches let find_matching_routes ~method_ ~uri routes = List.filter (fun (rc : Types.route_config) -> matches_pattern ~method_ ~uri rc.pattern) routes let make_route_key ~method_ ~uri (pattern : Types.route_pattern) = let host = Option.value ~default:"*" (Uri.host uri) in let path = Option.value ~default:"/" pattern.path_prefix in (* Use pattern.method_ if specified, otherwise use actual request method *) let method_str = Option.value ~default:method_ pattern.method_ in Printf.sprintf "%s:%s:%s" host method_str path
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>