From 9d00239e4fa26545b2282a7add4e3fb8f181b2fb Mon Sep 17 00:00:00 2001 From: r17x Date: Fri, 3 Oct 2025 15:00:46 +0700 Subject: [PATCH] feat(react): add Profiler module --- src/React.re | 26 ++++++++++++++++++++++++++ src/React.rei | 26 ++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/src/React.re b/src/React.re index b0fe5d81b..9ba803cc3 100644 --- a/src/React.re +++ b/src/React.re @@ -440,6 +440,32 @@ module StrictMode = { external make: component({. "children": element}) = "StrictMode"; }; +module Profiler = { + type phase = + | [@mel.as "mount"] Mount + | [@mel.as "update"] Update + | [@mel.as "nested-update"] NestedUpdate; + type onRender = (string, phase, float, float, float, float) => unit; + [@mel.obj] + external makeProps: + (~children: element=?, ~id: string, ~onRender: onRender, unit) => + { + . + "children": option(element), + "id": string, + "onRender": onRender, + }; + [@mel.module "react"] + external make: + component({ + . + "children": option(element), + "id": string, + "onRender": onRender, + }) = + "Profiler"; +}; + module Suspense = { [@mel.obj] external makeProps: diff --git a/src/React.rei b/src/React.rei index dee162e1a..281fb8b35 100644 --- a/src/React.rei +++ b/src/React.rei @@ -138,6 +138,32 @@ module StrictMode: { external make: component({. "children": element}) = "StrictMode"; }; +module Profiler: { + type phase = + | [@mel.as "mount"] Mount + | [@mel.as "update"] Update + | [@mel.as "nested-update"] NestedUpdate; + type onRender = (string, phase, float, float, float, float) => unit; + [@mel.obj] + external makeProps: + (~children: element=?, ~id: string, ~onRender: onRender, unit) => + { + . + "children": option(element), + "id": string, + "onRender": onRender, + }; + [@mel.module "react"] + external make: + component({ + . + "children": option(element), + "id": string, + "onRender": onRender, + }) = + "Profiler"; +}; + module Suspense: { [@mel.obj] external makeProps: