@salve-software/mako-react-native 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NitroMako.podspec +31 -0
- package/README.md +90 -0
- package/android/CMakeLists.txt +32 -0
- package/android/build.gradle +148 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +9 -0
- package/android/src/main/java/com/margelo/nitro/mako/HybridMako.kt +235 -0
- package/android/src/main/java/com/margelo/nitro/mako/MakoPackage.kt +18 -0
- package/android/src/main/java/com/margelo/nitro/mako/PerformanceMonitor.kt +260 -0
- package/ios/Bridge.h +8 -0
- package/ios/HybridMako.swift +245 -0
- package/ios/PerformanceMonitor.swift +223 -0
- package/lib/commonjs/index.js +17 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/library/client/constants.js +34 -0
- package/lib/commonjs/library/client/constants.js.map +1 -0
- package/lib/commonjs/library/client/index.js +28 -0
- package/lib/commonjs/library/client/index.js.map +1 -0
- package/lib/commonjs/library/client/mako-client.js +419 -0
- package/lib/commonjs/library/client/mako-client.js.map +1 -0
- package/lib/commonjs/library/component-handler/component-handler.js +158 -0
- package/lib/commonjs/library/component-handler/component-handler.js.map +1 -0
- package/lib/commonjs/library/component-handler/index.js +39 -0
- package/lib/commonjs/library/component-handler/index.js.map +1 -0
- package/lib/commonjs/library/component-handler/types.js +6 -0
- package/lib/commonjs/library/component-handler/types.js.map +1 -0
- package/lib/commonjs/library/component-handler/utils/index.js +26 -0
- package/lib/commonjs/library/component-handler/utils/index.js.map +1 -0
- package/lib/commonjs/library/device/device-handler.js +80 -0
- package/lib/commonjs/library/device/device-handler.js.map +1 -0
- package/lib/commonjs/library/device/index.js +9 -0
- package/lib/commonjs/library/device/index.js.map +1 -0
- package/lib/commonjs/library/device/types.js +2 -0
- package/lib/commonjs/library/device/types.js.map +1 -0
- package/lib/commonjs/library/device/utils/generate-uuid.js +14 -0
- package/lib/commonjs/library/device/utils/generate-uuid.js.map +1 -0
- package/lib/commonjs/library/index.js +156 -0
- package/lib/commonjs/library/index.js.map +1 -0
- package/lib/commonjs/library/interceptors/index.js +13 -0
- package/lib/commonjs/library/interceptors/index.js.map +1 -0
- package/lib/commonjs/library/interceptors/js-console.js +88 -0
- package/lib/commonjs/library/interceptors/js-console.js.map +1 -0
- package/lib/commonjs/library/interceptors/react-devtools.js +219 -0
- package/lib/commonjs/library/interceptors/react-devtools.js.map +1 -0
- package/lib/commonjs/library/interceptors/xhr.js +74 -0
- package/lib/commonjs/library/interceptors/xhr.js.map +1 -0
- package/lib/commonjs/library/network-handler/index.js +17 -0
- package/lib/commonjs/library/network-handler/index.js.map +1 -0
- package/lib/commonjs/library/network-handler/network-handler.js +103 -0
- package/lib/commonjs/library/network-handler/network-handler.js.map +1 -0
- package/lib/commonjs/library/network-handler/types.js +6 -0
- package/lib/commonjs/library/network-handler/types.js.map +1 -0
- package/lib/commonjs/library/network-handler/utils/generate-request-id.js +13 -0
- package/lib/commonjs/library/network-handler/utils/generate-request-id.js.map +1 -0
- package/lib/commonjs/library/network-handler/utils/index.js +41 -0
- package/lib/commonjs/library/network-handler/utils/index.js.map +1 -0
- package/lib/commonjs/library/network-handler/utils/parse-response-headers.js +26 -0
- package/lib/commonjs/library/network-handler/utils/parse-response-headers.js.map +1 -0
- package/lib/commonjs/library/network-handler/utils/read-blob-as-text.js +18 -0
- package/lib/commonjs/library/network-handler/utils/read-blob-as-text.js.map +1 -0
- package/lib/commonjs/library/network-handler/utils/response-to-string.js +35 -0
- package/lib/commonjs/library/network-handler/utils/response-to-string.js.map +1 -0
- package/lib/commonjs/library/network-handler/utils/should-ignore-url.js +13 -0
- package/lib/commonjs/library/network-handler/utils/should-ignore-url.js.map +1 -0
- package/lib/commonjs/library/performance-handler/index.js +13 -0
- package/lib/commonjs/library/performance-handler/index.js.map +1 -0
- package/lib/commonjs/library/performance-handler/performance-handler.js +94 -0
- package/lib/commonjs/library/performance-handler/performance-handler.js.map +1 -0
- package/lib/commonjs/library/performance-handler/types.js +6 -0
- package/lib/commonjs/library/performance-handler/types.js.map +1 -0
- package/lib/commonjs/library/project/index.js +15 -0
- package/lib/commonjs/library/project/index.js.map +1 -0
- package/lib/commonjs/library/project/project-handler.js +31 -0
- package/lib/commonjs/library/project/project-handler.js.map +1 -0
- package/lib/commonjs/library/types.js +2 -0
- package/lib/commonjs/library/types.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/specs/mako.nitro.js +6 -0
- package/lib/commonjs/specs/mako.nitro.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/library/client/constants.js +30 -0
- package/lib/module/library/client/constants.js.map +1 -0
- package/lib/module/library/client/index.js +6 -0
- package/lib/module/library/client/index.js.map +1 -0
- package/lib/module/library/client/mako-client.js +415 -0
- package/lib/module/library/client/mako-client.js.map +1 -0
- package/lib/module/library/component-handler/component-handler.js +153 -0
- package/lib/module/library/component-handler/component-handler.js.map +1 -0
- package/lib/module/library/component-handler/index.js +6 -0
- package/lib/module/library/component-handler/index.js.map +1 -0
- package/lib/module/library/component-handler/types.js +4 -0
- package/lib/module/library/component-handler/types.js.map +1 -0
- package/lib/module/library/component-handler/utils/index.js +21 -0
- package/lib/module/library/component-handler/utils/index.js.map +1 -0
- package/lib/module/library/device/device-handler.js +75 -0
- package/lib/module/library/device/device-handler.js.map +1 -0
- package/lib/module/library/device/index.js +5 -0
- package/lib/module/library/device/index.js.map +1 -0
- package/lib/module/library/device/types.js +2 -0
- package/lib/module/library/device/types.js.map +1 -0
- package/lib/module/library/device/utils/generate-uuid.js +10 -0
- package/lib/module/library/device/utils/generate-uuid.js.map +1 -0
- package/lib/module/library/index.js +155 -0
- package/lib/module/library/index.js.map +1 -0
- package/lib/module/library/interceptors/index.js +9 -0
- package/lib/module/library/interceptors/index.js.map +1 -0
- package/lib/module/library/interceptors/js-console.js +83 -0
- package/lib/module/library/interceptors/js-console.js.map +1 -0
- package/lib/module/library/interceptors/react-devtools.js +214 -0
- package/lib/module/library/interceptors/react-devtools.js.map +1 -0
- package/lib/module/library/interceptors/xhr.js +69 -0
- package/lib/module/library/interceptors/xhr.js.map +1 -0
- package/lib/module/library/network-handler/index.js +4 -0
- package/lib/module/library/network-handler/index.js.map +1 -0
- package/lib/module/library/network-handler/network-handler.js +98 -0
- package/lib/module/library/network-handler/network-handler.js.map +1 -0
- package/lib/module/library/network-handler/types.js +4 -0
- package/lib/module/library/network-handler/types.js.map +1 -0
- package/lib/module/library/network-handler/utils/generate-request-id.js +9 -0
- package/lib/module/library/network-handler/utils/generate-request-id.js.map +1 -0
- package/lib/module/library/network-handler/utils/index.js +8 -0
- package/lib/module/library/network-handler/utils/index.js.map +1 -0
- package/lib/module/library/network-handler/utils/parse-response-headers.js +22 -0
- package/lib/module/library/network-handler/utils/parse-response-headers.js.map +1 -0
- package/lib/module/library/network-handler/utils/read-blob-as-text.js +14 -0
- package/lib/module/library/network-handler/utils/read-blob-as-text.js.map +1 -0
- package/lib/module/library/network-handler/utils/response-to-string.js +31 -0
- package/lib/module/library/network-handler/utils/response-to-string.js.map +1 -0
- package/lib/module/library/network-handler/utils/should-ignore-url.js +9 -0
- package/lib/module/library/network-handler/utils/should-ignore-url.js.map +1 -0
- package/lib/module/library/performance-handler/index.js +4 -0
- package/lib/module/library/performance-handler/index.js.map +1 -0
- package/lib/module/library/performance-handler/performance-handler.js +89 -0
- package/lib/module/library/performance-handler/performance-handler.js.map +1 -0
- package/lib/module/library/performance-handler/types.js +4 -0
- package/lib/module/library/performance-handler/types.js.map +1 -0
- package/lib/module/library/project/index.js +6 -0
- package/lib/module/library/project/index.js.map +1 -0
- package/lib/module/library/project/project-handler.js +26 -0
- package/lib/module/library/project/project-handler.js.map +1 -0
- package/lib/module/library/types.js +2 -0
- package/lib/module/library/types.js.map +1 -0
- package/lib/module/specs/mako.nitro.js +4 -0
- package/lib/module/specs/mako.nitro.js.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/library/client/constants.d.ts +24 -0
- package/lib/typescript/src/library/client/constants.d.ts.map +1 -0
- package/lib/typescript/src/library/client/index.d.ts +4 -0
- package/lib/typescript/src/library/client/index.d.ts.map +1 -0
- package/lib/typescript/src/library/client/mako-client.d.ts +87 -0
- package/lib/typescript/src/library/client/mako-client.d.ts.map +1 -0
- package/lib/typescript/src/library/component-handler/component-handler.d.ts +21 -0
- package/lib/typescript/src/library/component-handler/component-handler.d.ts.map +1 -0
- package/lib/typescript/src/library/component-handler/index.d.ts +4 -0
- package/lib/typescript/src/library/component-handler/index.d.ts.map +1 -0
- package/lib/typescript/src/library/component-handler/types.d.ts +22 -0
- package/lib/typescript/src/library/component-handler/types.d.ts.map +1 -0
- package/lib/typescript/src/library/component-handler/utils/index.d.ts +13 -0
- package/lib/typescript/src/library/component-handler/utils/index.d.ts.map +1 -0
- package/lib/typescript/src/library/device/__tests__/device-handler.test.d.ts +2 -0
- package/lib/typescript/src/library/device/__tests__/device-handler.test.d.ts.map +1 -0
- package/lib/typescript/src/library/device/device-handler.d.ts +11 -0
- package/lib/typescript/src/library/device/device-handler.d.ts.map +1 -0
- package/lib/typescript/src/library/device/index.d.ts +3 -0
- package/lib/typescript/src/library/device/index.d.ts.map +1 -0
- package/lib/typescript/src/library/device/types.d.ts +8 -0
- package/lib/typescript/src/library/device/types.d.ts.map +1 -0
- package/lib/typescript/src/library/device/utils/generate-uuid.d.ts +2 -0
- package/lib/typescript/src/library/device/utils/generate-uuid.d.ts.map +1 -0
- package/lib/typescript/src/library/index.d.ts +120 -0
- package/lib/typescript/src/library/index.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/__tests__/js-console.test.d.ts +2 -0
- package/lib/typescript/src/library/interceptors/__tests__/js-console.test.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/__tests__/react-devtools.test.d.ts +2 -0
- package/lib/typescript/src/library/interceptors/__tests__/react-devtools.test.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/__tests__/xhr.test.d.ts +2 -0
- package/lib/typescript/src/library/interceptors/__tests__/xhr.test.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/index.d.ts +7 -0
- package/lib/typescript/src/library/interceptors/index.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/js-console.d.ts +17 -0
- package/lib/typescript/src/library/interceptors/js-console.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/react-devtools.d.ts +54 -0
- package/lib/typescript/src/library/interceptors/react-devtools.d.ts.map +1 -0
- package/lib/typescript/src/library/interceptors/xhr.d.ts +14 -0
- package/lib/typescript/src/library/interceptors/xhr.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/__tests__/network-handler.test.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/__tests__/network-handler.test.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/index.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/index.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/network-handler.d.ts +19 -0
- package/lib/typescript/src/library/network-handler/network-handler.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/types.d.ts +6 -0
- package/lib/typescript/src/library/network-handler/types.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/generate-request-id.test.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/generate-request-id.test.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/parse-response-headers.test.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/parse-response-headers.test.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/read-blob-as-text.test.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/read-blob-as-text.test.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/response-to-string.test.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/response-to-string.test.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/should-ignore-url.test.d.ts +2 -0
- package/lib/typescript/src/library/network-handler/utils/__tests__/should-ignore-url.test.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/generate-request-id.d.ts +5 -0
- package/lib/typescript/src/library/network-handler/utils/generate-request-id.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/index.d.ts +6 -0
- package/lib/typescript/src/library/network-handler/utils/index.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/parse-response-headers.d.ts +5 -0
- package/lib/typescript/src/library/network-handler/utils/parse-response-headers.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/read-blob-as-text.d.ts +5 -0
- package/lib/typescript/src/library/network-handler/utils/read-blob-as-text.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/response-to-string.d.ts +5 -0
- package/lib/typescript/src/library/network-handler/utils/response-to-string.d.ts.map +1 -0
- package/lib/typescript/src/library/network-handler/utils/should-ignore-url.d.ts +5 -0
- package/lib/typescript/src/library/network-handler/utils/should-ignore-url.d.ts.map +1 -0
- package/lib/typescript/src/library/performance-handler/index.d.ts +3 -0
- package/lib/typescript/src/library/performance-handler/index.d.ts.map +1 -0
- package/lib/typescript/src/library/performance-handler/performance-handler.d.ts +27 -0
- package/lib/typescript/src/library/performance-handler/performance-handler.d.ts.map +1 -0
- package/lib/typescript/src/library/performance-handler/types.d.ts +20 -0
- package/lib/typescript/src/library/performance-handler/types.d.ts.map +1 -0
- package/lib/typescript/src/library/project/index.d.ts +4 -0
- package/lib/typescript/src/library/project/index.d.ts.map +1 -0
- package/lib/typescript/src/library/project/project-handler.d.ts +7 -0
- package/lib/typescript/src/library/project/project-handler.d.ts.map +1 -0
- package/lib/typescript/src/library/types.d.ts +41 -0
- package/lib/typescript/src/library/types.d.ts.map +1 -0
- package/lib/typescript/src/specs/mako.nitro.d.ts +100 -0
- package/lib/typescript/src/specs/mako.nitro.d.ts.map +1 -0
- package/nitro.json +24 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroMako+autolinking.cmake +81 -0
- package/nitrogen/generated/android/NitroMako+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroMakoOnLoad.cpp +58 -0
- package/nitrogen/generated/android/NitroMakoOnLoad.hpp +34 -0
- package/nitrogen/generated/android/c++/JDeviceInfoResult.hpp +69 -0
- package/nitrogen/generated/android/c++/JFunc_void_NativeLogEntry.hpp +80 -0
- package/nitrogen/generated/android/c++/JFunc_void_PerformanceMetrics.hpp +77 -0
- package/nitrogen/generated/android/c++/JHybridNitroMakoSpec.cpp +124 -0
- package/nitrogen/generated/android/c++/JHybridNitroMakoSpec.hpp +74 -0
- package/nitrogen/generated/android/c++/JNativeLogEntry.hpp +71 -0
- package/nitrogen/generated/android/c++/JNativeLogLevel.hpp +64 -0
- package/nitrogen/generated/android/c++/JPerformanceMetrics.hpp +69 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/DeviceInfoResult.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/Func_void_NativeLogEntry.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/Func_void_PerformanceMetrics.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/HybridNitroMakoSpec.kt +108 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/NativeLogEntry.kt +47 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/NativeLogLevel.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/NitroMakoOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/mako/PerformanceMetrics.kt +47 -0
- package/nitrogen/generated/ios/NitroMako+autolinking.rb +62 -0
- package/nitrogen/generated/ios/NitroMako-Swift-Cxx-Bridge.cpp +49 -0
- package/nitrogen/generated/ios/NitroMako-Swift-Cxx-Bridge.hpp +185 -0
- package/nitrogen/generated/ios/NitroMako-Swift-Cxx-Umbrella.hpp +58 -0
- package/nitrogen/generated/ios/NitroMakoAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroMakoAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridNitroMakoSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroMakoSpecSwift.hpp +175 -0
- package/nitrogen/generated/ios/swift/DeviceInfoResult.swift +44 -0
- package/nitrogen/generated/ios/swift/Func_void_NativeLogEntry.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_PerformanceMetrics.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridNitroMakoSpec.swift +66 -0
- package/nitrogen/generated/ios/swift/HybridNitroMakoSpec_cxx.swift +289 -0
- package/nitrogen/generated/ios/swift/NativeLogEntry.swift +44 -0
- package/nitrogen/generated/ios/swift/NativeLogLevel.swift +48 -0
- package/nitrogen/generated/ios/swift/PerformanceMetrics.swift +44 -0
- package/nitrogen/generated/shared/c++/DeviceInfoResult.hpp +95 -0
- package/nitrogen/generated/shared/c++/HybridNitroMakoSpec.cpp +32 -0
- package/nitrogen/generated/shared/c++/HybridNitroMakoSpec.hpp +83 -0
- package/nitrogen/generated/shared/c++/NativeLogEntry.hpp +97 -0
- package/nitrogen/generated/shared/c++/NativeLogLevel.hpp +84 -0
- package/nitrogen/generated/shared/c++/PerformanceMetrics.hpp +95 -0
- package/package.json +128 -0
- package/react-native.config.js +16 -0
- package/src/index.ts +7 -0
- package/src/library/client/constants.ts +36 -0
- package/src/library/client/index.ts +9 -0
- package/src/library/client/mako-client.ts +494 -0
- package/src/library/component-handler/component-handler.ts +162 -0
- package/src/library/component-handler/index.ts +3 -0
- package/src/library/component-handler/types.ts +24 -0
- package/src/library/component-handler/utils/index.ts +23 -0
- package/src/library/device/__tests__/device-handler.test.ts +86 -0
- package/src/library/device/device-handler.ts +85 -0
- package/src/library/device/index.ts +3 -0
- package/src/library/device/types.ts +7 -0
- package/src/library/device/utils/generate-uuid.ts +7 -0
- package/src/library/index.ts +183 -0
- package/src/library/interceptors/__tests__/js-console.test.ts +186 -0
- package/src/library/interceptors/__tests__/react-devtools.test.ts +848 -0
- package/src/library/interceptors/__tests__/xhr.test.ts +313 -0
- package/src/library/interceptors/index.ts +7 -0
- package/src/library/interceptors/js-console.ts +93 -0
- package/src/library/interceptors/react-devtools.ts +268 -0
- package/src/library/interceptors/xhr.ts +123 -0
- package/src/library/network-handler/__tests__/network-handler.test.ts +265 -0
- package/src/library/network-handler/index.ts +1 -0
- package/src/library/network-handler/network-handler.ts +141 -0
- package/src/library/network-handler/types.ts +6 -0
- package/src/library/network-handler/utils/__tests__/generate-request-id.test.ts +22 -0
- package/src/library/network-handler/utils/__tests__/parse-response-headers.test.ts +71 -0
- package/src/library/network-handler/utils/__tests__/read-blob-as-text.test.ts +79 -0
- package/src/library/network-handler/utils/__tests__/response-to-string.test.ts +85 -0
- package/src/library/network-handler/utils/__tests__/should-ignore-url.test.ts +45 -0
- package/src/library/network-handler/utils/generate-request-id.ts +6 -0
- package/src/library/network-handler/utils/index.ts +5 -0
- package/src/library/network-handler/utils/parse-response-headers.ts +20 -0
- package/src/library/network-handler/utils/read-blob-as-text.ts +11 -0
- package/src/library/network-handler/utils/response-to-string.ts +32 -0
- package/src/library/network-handler/utils/should-ignore-url.ts +6 -0
- package/src/library/performance-handler/index.ts +2 -0
- package/src/library/performance-handler/performance-handler.ts +104 -0
- package/src/library/performance-handler/types.ts +22 -0
- package/src/library/project/index.ts +4 -0
- package/src/library/project/project-handler.ts +28 -0
- package/src/library/types.ts +82 -0
- package/src/specs/mako.nitro.ts +114 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Handler
|
|
3
|
+
* Manages component render tracking and event creation
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { ComponentRenderEvent, ComponentTreeEvent, ComponentTreeNode, MemoType } from '@salve-software/mako-types';
|
|
7
|
+
import type { ComponentHandlerConfig, ComponentRegistryEntry } from './types';
|
|
8
|
+
import type { ComponentRenderInfo, ComponentRenderCallbacks } from '../interceptors/react-devtools';
|
|
9
|
+
import { projectHandler } from '../project';
|
|
10
|
+
import { deviceHandler } from '../device';
|
|
11
|
+
|
|
12
|
+
export class ComponentHandler {
|
|
13
|
+
private registry = new Map<string, ComponentRegistryEntry>();
|
|
14
|
+
private config: ComponentHandlerConfig;
|
|
15
|
+
private treeSnapshotInterval: ReturnType<typeof setInterval> | null = null;
|
|
16
|
+
|
|
17
|
+
constructor(config: ComponentHandlerConfig) {
|
|
18
|
+
this.config = config;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
getCallbacks(): ComponentRenderCallbacks {
|
|
22
|
+
return {
|
|
23
|
+
onComponentRender: this.handleComponentRender.bind(this),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
private handleComponentRender(info: ComponentRenderInfo): void {
|
|
28
|
+
const { componentId, componentName, renderDuration, parentId, propsChanged, stateChanged, contextChanged, isMemoized, memoType } = info;
|
|
29
|
+
|
|
30
|
+
// Get or create registry entry
|
|
31
|
+
let entry = this.registry.get(componentId);
|
|
32
|
+
if (!entry) {
|
|
33
|
+
entry = {
|
|
34
|
+
id: componentId,
|
|
35
|
+
name: componentName,
|
|
36
|
+
renderCount: 0,
|
|
37
|
+
lastRenderTime: 0,
|
|
38
|
+
lastRenderTimestamp: 0,
|
|
39
|
+
totalRenderTime: 0,
|
|
40
|
+
parentId,
|
|
41
|
+
propsChangeCount: 0,
|
|
42
|
+
stateChangeCount: 0,
|
|
43
|
+
contextChangeCount: 0,
|
|
44
|
+
isMemoized,
|
|
45
|
+
memoType,
|
|
46
|
+
};
|
|
47
|
+
this.registry.set(componentId, entry);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Update metrics
|
|
51
|
+
entry.renderCount++;
|
|
52
|
+
entry.lastRenderTime = renderDuration;
|
|
53
|
+
entry.lastRenderTimestamp = Date.now();
|
|
54
|
+
entry.totalRenderTime += renderDuration;
|
|
55
|
+
|
|
56
|
+
if (propsChanged) entry.propsChangeCount++;
|
|
57
|
+
if (stateChanged) entry.stateChangeCount++;
|
|
58
|
+
if (contextChanged) entry.contextChangeCount++;
|
|
59
|
+
|
|
60
|
+
// Send render event
|
|
61
|
+
const event: ComponentRenderEvent = {
|
|
62
|
+
type: 'component_render',
|
|
63
|
+
componentId,
|
|
64
|
+
componentName,
|
|
65
|
+
renderCount: entry.renderCount,
|
|
66
|
+
renderDuration,
|
|
67
|
+
timestamp: entry.lastRenderTimestamp,
|
|
68
|
+
parentId,
|
|
69
|
+
propsChanged,
|
|
70
|
+
stateChanged,
|
|
71
|
+
contextChanged,
|
|
72
|
+
isMemoized,
|
|
73
|
+
memoType: memoType as MemoType,
|
|
74
|
+
deviceId: deviceHandler.getDeviceInfo().deviceId,
|
|
75
|
+
projectId: projectHandler.getProjectId(),
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
this.config.onEvent(event);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
startTreeSnapshots(intervalMs: number = 5000): void {
|
|
82
|
+
if (this.treeSnapshotInterval) {
|
|
83
|
+
console.warn('[Mako] Component tree snapshots already running');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
this.treeSnapshotInterval = setInterval(() => {
|
|
88
|
+
this.sendTreeSnapshot();
|
|
89
|
+
}, intervalMs);
|
|
90
|
+
|
|
91
|
+
// Send initial snapshot
|
|
92
|
+
this.sendTreeSnapshot();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
stopTreeSnapshots(): void {
|
|
96
|
+
if (this.treeSnapshotInterval) {
|
|
97
|
+
clearInterval(this.treeSnapshotInterval);
|
|
98
|
+
this.treeSnapshotInterval = null;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
private sendTreeSnapshot(): void {
|
|
103
|
+
const tree: ComponentTreeNode[] = [];
|
|
104
|
+
const depthMap = new Map<string, number>();
|
|
105
|
+
|
|
106
|
+
// Calculate depth for each component
|
|
107
|
+
for (const entry of this.registry.values()) {
|
|
108
|
+
const depth = this.calculateDepth(entry.id, depthMap);
|
|
109
|
+
depthMap.set(entry.id, depth);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Build tree nodes
|
|
113
|
+
for (const entry of this.registry.values()) {
|
|
114
|
+
const children = this.getChildrenIds(entry.id);
|
|
115
|
+
const depth = depthMap.get(entry.id) ?? 0;
|
|
116
|
+
|
|
117
|
+
tree.push({
|
|
118
|
+
id: entry.id,
|
|
119
|
+
name: entry.name,
|
|
120
|
+
parentId: entry.parentId,
|
|
121
|
+
children,
|
|
122
|
+
depth,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
const event: ComponentTreeEvent = {
|
|
127
|
+
type: 'component_tree',
|
|
128
|
+
tree,
|
|
129
|
+
timestamp: Date.now(),
|
|
130
|
+
deviceId: deviceHandler.getDeviceInfo().deviceId,
|
|
131
|
+
projectId: projectHandler.getProjectId(),
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
this.config.onEvent(event);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
private calculateDepth(componentId: string, depthMap: Map<string, number>): number {
|
|
138
|
+
const cached = depthMap.get(componentId);
|
|
139
|
+
if (cached !== undefined) return cached;
|
|
140
|
+
|
|
141
|
+
const entry = this.registry.get(componentId);
|
|
142
|
+
if (!entry || !entry.parentId) return 0;
|
|
143
|
+
|
|
144
|
+
const parentDepth = this.calculateDepth(entry.parentId, depthMap);
|
|
145
|
+
return parentDepth + 1;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
private getChildrenIds(parentId: string): string[] {
|
|
149
|
+
const children: string[] = [];
|
|
150
|
+
for (const entry of this.registry.values()) {
|
|
151
|
+
if (entry.parentId === parentId) {
|
|
152
|
+
children.push(entry.id);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return children;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
clear(): void {
|
|
159
|
+
this.registry.clear();
|
|
160
|
+
this.stopTreeSnapshots();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Handler Types
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { ComponentRenderEvent, ComponentTreeEvent } from '@salve-software/mako-types';
|
|
6
|
+
|
|
7
|
+
export interface ComponentHandlerConfig {
|
|
8
|
+
onEvent: (event: ComponentRenderEvent | ComponentTreeEvent) => void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface ComponentRegistryEntry {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
renderCount: number;
|
|
15
|
+
lastRenderTime: number;
|
|
16
|
+
lastRenderTimestamp: number;
|
|
17
|
+
totalRenderTime: number;
|
|
18
|
+
parentId: string | null;
|
|
19
|
+
propsChangeCount: number;
|
|
20
|
+
stateChangeCount: number;
|
|
21
|
+
contextChangeCount: number;
|
|
22
|
+
isMemoized: boolean;
|
|
23
|
+
memoType: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Component Handler Utilities
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import type { MemoType } from '@salve-software/mako-types';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Generate a unique component instance ID
|
|
9
|
+
*/
|
|
10
|
+
export function generateComponentId(): string {
|
|
11
|
+
return `comp_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Detect memoization type from component info
|
|
16
|
+
*/
|
|
17
|
+
export function detectMemoType(
|
|
18
|
+
isMemoized: boolean,
|
|
19
|
+
memoType: MemoType
|
|
20
|
+
): MemoType {
|
|
21
|
+
if (!isMemoized) return 'none';
|
|
22
|
+
return memoType;
|
|
23
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
jest.mock('react-native', () => ({
|
|
2
|
+
Platform: {
|
|
3
|
+
OS: 'ios',
|
|
4
|
+
},
|
|
5
|
+
}));
|
|
6
|
+
|
|
7
|
+
import { Platform } from 'react-native';
|
|
8
|
+
|
|
9
|
+
import { DeviceHandler } from '../device-handler';
|
|
10
|
+
|
|
11
|
+
import { NitroMako } from '../../../index';
|
|
12
|
+
|
|
13
|
+
import { generateUUID } from '../utils/generate-uuid';
|
|
14
|
+
|
|
15
|
+
jest.mock('../../../index', () => ({
|
|
16
|
+
NitroMako: {
|
|
17
|
+
getDeviceInfo: jest.fn(),
|
|
18
|
+
getStoredDeviceId: jest.fn(),
|
|
19
|
+
storeDeviceId: jest.fn(),
|
|
20
|
+
},
|
|
21
|
+
}));
|
|
22
|
+
|
|
23
|
+
jest.mock('../utils/generate-uuid', () => ({
|
|
24
|
+
generateUUID: jest.fn(),
|
|
25
|
+
}));
|
|
26
|
+
|
|
27
|
+
describe('DeviceHandler', () => {
|
|
28
|
+
beforeEach(() => {
|
|
29
|
+
jest.clearAllMocks();
|
|
30
|
+
|
|
31
|
+
(
|
|
32
|
+
generateUUID as jest.Mock
|
|
33
|
+
).mockReturnValue('generated-uuid');
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('should fallback to iOS device name', () => {
|
|
37
|
+
Platform.OS = 'ios';
|
|
38
|
+
|
|
39
|
+
(
|
|
40
|
+
NitroMako.getDeviceInfo as jest.Mock
|
|
41
|
+
).mockReturnValue({});
|
|
42
|
+
|
|
43
|
+
const handler = new DeviceHandler();
|
|
44
|
+
|
|
45
|
+
expect(
|
|
46
|
+
handler.getDeviceName(),
|
|
47
|
+
).toBe('iOS Device');
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('should fallback to Android device name', () => {
|
|
51
|
+
Platform.OS = 'android';
|
|
52
|
+
|
|
53
|
+
(
|
|
54
|
+
NitroMako.getDeviceInfo as jest.Mock
|
|
55
|
+
).mockReturnValue({});
|
|
56
|
+
|
|
57
|
+
const handler = new DeviceHandler();
|
|
58
|
+
|
|
59
|
+
expect(
|
|
60
|
+
handler.getDeviceName(),
|
|
61
|
+
).toBe('Android Device');
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('should return platform in device info', () => {
|
|
65
|
+
Platform.OS = 'android';
|
|
66
|
+
|
|
67
|
+
(
|
|
68
|
+
NitroMako.getDeviceInfo as jest.Mock
|
|
69
|
+
).mockReturnValue({
|
|
70
|
+
deviceId: 'id',
|
|
71
|
+
deviceName: 'Pixel',
|
|
72
|
+
appName: 'App',
|
|
73
|
+
bundleId: 'com.test',
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const handler = new DeviceHandler();
|
|
77
|
+
|
|
78
|
+
expect(handler.getDeviceInfo()).toEqual({
|
|
79
|
+
deviceId: 'id',
|
|
80
|
+
deviceName: 'Pixel',
|
|
81
|
+
platform: 'android',
|
|
82
|
+
appName: 'App',
|
|
83
|
+
bundleId: 'com.test',
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
});
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Platform } from 'react-native'
|
|
2
|
+
import { NitroMako } from '../../index'
|
|
3
|
+
import { generateUUID } from './utils/generate-uuid'
|
|
4
|
+
import type { DeviceInfoData } from './types'
|
|
5
|
+
|
|
6
|
+
export class DeviceHandler {
|
|
7
|
+
private cachedDeviceId: string | null = null
|
|
8
|
+
private cachedDeviceName: string | null = null
|
|
9
|
+
|
|
10
|
+
private getOrCreateDeviceId(): string {
|
|
11
|
+
if (this.cachedDeviceId) {
|
|
12
|
+
return this.cachedDeviceId
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
const nativeInfo = NitroMako.getDeviceInfo()
|
|
17
|
+
if (nativeInfo.deviceId) {
|
|
18
|
+
this.cachedDeviceId = nativeInfo.deviceId
|
|
19
|
+
return nativeInfo.deviceId
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const storedId = NitroMako.getStoredDeviceId()
|
|
23
|
+
if (storedId) {
|
|
24
|
+
this.cachedDeviceId = storedId
|
|
25
|
+
return storedId
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const newId = generateUUID()
|
|
29
|
+
NitroMako.storeDeviceId(newId)
|
|
30
|
+
this.cachedDeviceId = newId
|
|
31
|
+
return newId
|
|
32
|
+
} catch (err) {
|
|
33
|
+
this.cachedDeviceId = generateUUID()
|
|
34
|
+
return this.cachedDeviceId
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
getDeviceName(): string {
|
|
39
|
+
if (this.cachedDeviceName) {
|
|
40
|
+
return this.cachedDeviceName
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const nativeInfo = NitroMako.getDeviceInfo()
|
|
44
|
+
if (nativeInfo.deviceName) {
|
|
45
|
+
this.cachedDeviceName = nativeInfo.deviceName
|
|
46
|
+
return nativeInfo.deviceName
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
const model = Platform.OS === 'ios' ? 'iOS Device' : 'Android Device'
|
|
50
|
+
this.cachedDeviceName = model
|
|
51
|
+
return model
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
getAppName(): string {
|
|
55
|
+
try {
|
|
56
|
+
const nativeInfo = NitroMako.getDeviceInfo()
|
|
57
|
+
return nativeInfo.appName || 'React Native App'
|
|
58
|
+
} catch {
|
|
59
|
+
return 'React Native App'
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
getBundleId(): string {
|
|
64
|
+
try {
|
|
65
|
+
const nativeInfo = NitroMako.getDeviceInfo()
|
|
66
|
+
return nativeInfo.bundleId || ''
|
|
67
|
+
} catch {
|
|
68
|
+
return ''
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
getDeviceInfo(): DeviceInfoData {
|
|
73
|
+
const deviceId = this.getOrCreateDeviceId()
|
|
74
|
+
const deviceName = this.getDeviceName()
|
|
75
|
+
const appName = this.getAppName()
|
|
76
|
+
|
|
77
|
+
return {
|
|
78
|
+
deviceId,
|
|
79
|
+
deviceName,
|
|
80
|
+
platform: Platform.OS as 'ios' | 'android',
|
|
81
|
+
appName,
|
|
82
|
+
bundleId: this.getBundleId(),
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mako SDK for React Native
|
|
3
|
+
*
|
|
4
|
+
* Captures network requests and sends them to the Mako macOS app
|
|
5
|
+
* for debugging and inspection.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { Mako } from 'mako-react-native';
|
|
10
|
+
*
|
|
11
|
+
* if (__DEV__) {
|
|
12
|
+
* Mako.connect({
|
|
13
|
+
* host: 'localhost',
|
|
14
|
+
* port: 8765,
|
|
15
|
+
* });
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { client } from './client'
|
|
21
|
+
import type { MakoConfig } from './types'
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Mako SDK main interface
|
|
25
|
+
*/
|
|
26
|
+
export default {
|
|
27
|
+
/**
|
|
28
|
+
* Connect to Mako macOS app
|
|
29
|
+
*
|
|
30
|
+
* @param config - Configuration options
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* Mako.connect({
|
|
34
|
+
* host: '192.168.1.100', // Mac IP address
|
|
35
|
+
* port: 8765,
|
|
36
|
+
* enableNetworkCapture: true,
|
|
37
|
+
* ignoredUrls: [/my-internal-api/],
|
|
38
|
+
* onConnect: () => console.log('Connected to Mako'),
|
|
39
|
+
* onDisconnect: () => console.log('Disconnected from Mako'),
|
|
40
|
+
* });
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
connect(config?: MakoConfig): void {
|
|
44
|
+
client.connect(config)
|
|
45
|
+
},
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Disconnect from Mako macOS app
|
|
49
|
+
*/
|
|
50
|
+
disconnect(): void {
|
|
51
|
+
client.disconnect()
|
|
52
|
+
},
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Check if currently connected to Mako
|
|
56
|
+
*/
|
|
57
|
+
isConnected(): boolean {
|
|
58
|
+
return client.isConnected()
|
|
59
|
+
},
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Send a log message (info level)
|
|
63
|
+
* @param message - The log message
|
|
64
|
+
* @param metadata - Optional metadata object
|
|
65
|
+
*/
|
|
66
|
+
log(message: string, metadata?: Record<string, unknown>): void {
|
|
67
|
+
client.sendLog('info', message, metadata)
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Send a debug log message
|
|
72
|
+
* @param message - The log message
|
|
73
|
+
* @param metadata - Optional metadata object
|
|
74
|
+
*/
|
|
75
|
+
debug(message: string, metadata?: Record<string, unknown>): void {
|
|
76
|
+
client.sendLog('debug', message, metadata)
|
|
77
|
+
},
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Send an info log message
|
|
81
|
+
* @param message - The log message
|
|
82
|
+
* @param metadata - Optional metadata object
|
|
83
|
+
*/
|
|
84
|
+
info(message: string, metadata?: Record<string, unknown>): void {
|
|
85
|
+
client.sendLog('info', message, metadata)
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Send a warning log message
|
|
90
|
+
* @param message - The log message
|
|
91
|
+
* @param metadata - Optional metadata object
|
|
92
|
+
*/
|
|
93
|
+
warn(message: string, metadata?: Record<string, unknown>): void {
|
|
94
|
+
client.sendLog('warn', message, metadata)
|
|
95
|
+
},
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Send an error log message
|
|
99
|
+
* @param message - The log message
|
|
100
|
+
* @param metadata - Optional metadata object
|
|
101
|
+
*/
|
|
102
|
+
error(message: string, metadata?: Record<string, unknown>): void {
|
|
103
|
+
client.sendLog('error', message, metadata)
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Stop capturing native platform logs (NSLog/print on iOS, Logcat on Android)
|
|
108
|
+
* Native log capture starts automatically on connect()
|
|
109
|
+
*/
|
|
110
|
+
stopNativeLogCapture(): void {
|
|
111
|
+
client.stopNativeLogCapture()
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Check if native log capture is currently active
|
|
116
|
+
* @returns true if native log capture is enabled
|
|
117
|
+
*/
|
|
118
|
+
isNativeLogCaptureEnabled(): boolean {
|
|
119
|
+
return client.isNativeLogCaptureEnabled()
|
|
120
|
+
},
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Start component inspector to track React component renders
|
|
124
|
+
* @returns true if successfully enabled
|
|
125
|
+
*/
|
|
126
|
+
startComponentInspector(): boolean {
|
|
127
|
+
return client.startComponentInspector()
|
|
128
|
+
},
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Stop component inspector
|
|
132
|
+
*/
|
|
133
|
+
stopComponentInspector(): void {
|
|
134
|
+
client.stopComponentInspector()
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Check if component inspector is currently active
|
|
139
|
+
* @returns true if component inspector is enabled
|
|
140
|
+
*/
|
|
141
|
+
isComponentInspectorEnabled(): boolean {
|
|
142
|
+
return client.isComponentInspectorEnabled()
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Start performance monitoring to track FPS, memory, and CPU
|
|
147
|
+
* @returns true if successfully enabled
|
|
148
|
+
*/
|
|
149
|
+
startPerformanceMonitoring(): boolean {
|
|
150
|
+
return client.startPerformanceMonitoring()
|
|
151
|
+
},
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Stop performance monitoring
|
|
155
|
+
*/
|
|
156
|
+
stopPerformanceMonitoring(): void {
|
|
157
|
+
client.stopPerformanceMonitoring()
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Check if performance monitoring is currently active
|
|
162
|
+
* @returns true if performance monitoring is enabled
|
|
163
|
+
*/
|
|
164
|
+
isPerformanceMonitoringEnabled(): boolean {
|
|
165
|
+
return client.isPerformanceMonitoringEnabled()
|
|
166
|
+
},
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
// Export types for consumers
|
|
170
|
+
export type {
|
|
171
|
+
MakoConfig,
|
|
172
|
+
NetworkRequestEvent,
|
|
173
|
+
NetworkResponseEvent,
|
|
174
|
+
NetworkEvent,
|
|
175
|
+
LogEvent,
|
|
176
|
+
NativeLogEvent,
|
|
177
|
+
LogLevel,
|
|
178
|
+
LogSource,
|
|
179
|
+
NativeLogSource,
|
|
180
|
+
ComponentRenderEvent,
|
|
181
|
+
ComponentTreeEvent,
|
|
182
|
+
PerformanceMetricsEvent,
|
|
183
|
+
} from './types'
|