Skip to content

Commit c732429

Browse files
Dmitry Zakharovfacebook-github-bot
authored andcommitted
Make access to SourceCode Native Extension lazy
Reviewed By: fromcelticpark Differential Revision: D6987478 fbshipit-source-id: 6d600131239be34480bd1c5a0ca84b4fab360386
1 parent def789c commit c732429

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

Libraries/Image/resolveAssetSource.js

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,26 @@ const AssetSourceResolver = require('AssetSourceResolver');
1717
import type { ResolvedAssetSource } from 'AssetSourceResolver';
1818

1919
let _customSourceTransformer, _serverURL, _scriptURL;
20+
2021
let _sourceCodeScriptURL: ?string;
22+
function getSourceCodeScriptURL(): ?string {
23+
if (_sourceCodeScriptURL) {
24+
return _sourceCodeScriptURL;
25+
}
26+
27+
let sourceCode = global.nativeExtensions && global.nativeExtensions.SourceCode;
28+
if (!sourceCode) {
29+
const NativeModules = require('NativeModules');
30+
sourceCode = NativeModules && NativeModules.SourceCode;
31+
}
32+
_sourceCodeScriptURL = sourceCode.scriptURL;
33+
return _sourceCodeScriptURL;
34+
}
2135

2236
function getDevServerURL(): ?string {
2337
if (_serverURL === undefined) {
24-
const match = _sourceCodeScriptURL && _sourceCodeScriptURL.match(/^https?:\/\/.*?\//);
38+
const sourceCodeScriptURL = getSourceCodeScriptURL();
39+
const match = sourceCodeScriptURL && sourceCodeScriptURL.match(/^https?:\/\/.*?\//);
2540
if (match) {
2641
// jsBundle was loaded from network
2742
_serverURL = match[0];
@@ -51,7 +66,7 @@ function _coerceLocalScriptURL(scriptURL: ?string): ?string {
5166

5267
function getScriptURL(): ?string {
5368
if (_scriptURL === undefined) {
54-
_scriptURL = _coerceLocalScriptURL(_sourceCodeScriptURL);
69+
_scriptURL = _coerceLocalScriptURL(getSourceCodeScriptURL());
5570
}
5671
return _scriptURL;
5772
}
@@ -87,13 +102,6 @@ function resolveAssetSource(source: any): ?ResolvedAssetSource {
87102
return resolver.defaultAsset();
88103
}
89104

90-
let sourceCode = global.nativeExtensions && global.nativeExtensions.SourceCode;
91-
if (!sourceCode) {
92-
const NativeModules = require('NativeModules');
93-
sourceCode = NativeModules && NativeModules.SourceCode;
94-
}
95-
_sourceCodeScriptURL = sourceCode && sourceCode.scriptURL;
96-
97105
module.exports = resolveAssetSource;
98106
module.exports.pickScale = AssetSourceResolver.pickScale;
99107
module.exports.setCustomSourceTransformer = setCustomSourceTransformer;

0 commit comments

Comments
 (0)