From 94029eee546cc8f95cedbb1dd4be73a6a62e53a9 Mon Sep 17 00:00:00 2001 From: Wojteg1337 Date: Wed, 22 May 2019 13:04:35 -0700 Subject: [PATCH] Add spec for HeapCapture (#24899) Summary: Part of #24875, adds a spec for HeapCapture ## Changelog [General] [Added] - TM Spec for HeapCapture Pull Request resolved: https://github.com/facebook/react-native/pull/24899 Reviewed By: fkgozali Differential Revision: D15393464 Pulled By: RSNara fbshipit-source-id: d8778285753ce8dbc87204ecfbddfa7339acd264 --- Libraries/Core/setUpBatchedBridge.js | 2 +- .../{Utilities => HeapCapture}/HeapCapture.js | 9 +++---- Libraries/HeapCapture/NativeHeapCapture.js | 24 +++++++++++++++++++ 3 files changed, 30 insertions(+), 5 deletions(-) rename Libraries/{Utilities => HeapCapture}/HeapCapture.js (80%) create mode 100644 Libraries/HeapCapture/NativeHeapCapture.js diff --git a/Libraries/Core/setUpBatchedBridge.js b/Libraries/Core/setUpBatchedBridge.js index 680c1398e4..e9d33fe6ae 100644 --- a/Libraries/Core/setUpBatchedBridge.js +++ b/Libraries/Core/setUpBatchedBridge.js @@ -22,7 +22,7 @@ BatchedBridge.registerLazyCallableModule('JSTimers', () => require('./Timers/JSTimers'), ); BatchedBridge.registerLazyCallableModule('HeapCapture', () => - require('../Utilities/HeapCapture'), + require('../HeapCapture/HeapCapture'), ); BatchedBridge.registerLazyCallableModule('SamplingProfiler', () => require('../Performance/SamplingProfiler'), diff --git a/Libraries/Utilities/HeapCapture.js b/Libraries/HeapCapture/HeapCapture.js similarity index 80% rename from Libraries/Utilities/HeapCapture.js rename to Libraries/HeapCapture/HeapCapture.js index 94ae18f115..9cbabc6041 100644 --- a/Libraries/Utilities/HeapCapture.js +++ b/Libraries/HeapCapture/HeapCapture.js @@ -10,6 +10,8 @@ 'use strict'; +import NativeHeapCapture from './NativeHeapCapture'; + const HeapCapture = { captureHeap: function(path: string) { let error = null; @@ -20,10 +22,9 @@ const HeapCapture = { console.log('HeapCapture.captureHeap error: ' + e.toString()); error = e.toString(); } - require('../BatchedBridge/NativeModules').JSCHeapCapture.captureComplete( - path, - error, - ); + if (NativeHeapCapture) { + NativeHeapCapture.captureComplete(path, error); + } }, }; diff --git a/Libraries/HeapCapture/NativeHeapCapture.js b/Libraries/HeapCapture/NativeHeapCapture.js new file mode 100644 index 0000000000..a68a967d4a --- /dev/null +++ b/Libraries/HeapCapture/NativeHeapCapture.js @@ -0,0 +1,24 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow + * @format + */ + +'use strict'; + +import type {TurboModule} from 'RCTExport'; +import * as TurboModuleRegistry from 'TurboModuleRegistry'; + +export interface Spec extends TurboModule { + // Common interface + +captureHeap: (path: string) => void; + + // Android only + +captureComplete: (path: string, error: ?string) => void; +} + +export default TurboModuleRegistry.get('HeapCapture');