@dynatrace/react-native-plugin
Version:
This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.
31 lines (30 loc) • 1.74 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.patchMetroSourceMap = exports.SOURCE_MAP_FILE = exports.SOURCE_MAP_BACKUP_FILE = void 0;
const path_1 = require("path");
const Logger_1 = require("../Logger");
const PathsConstants_1 = require("../PathsConstants");
const FileOperationHelper_1 = require("../FileOperationHelper");
exports.SOURCE_MAP_BACKUP_FILE = 'getSourceMapInfoOrig.js';
exports.SOURCE_MAP_FILE = 'getSourceMapInfo.js';
const patchMetroSourceMap = () => {
Logger_1.default.logMessageSync('Patching SourceMap generation of Metro .. ', Logger_1.default.INFO);
const origSourceMapPath = (0, path_1.join)(PathsConstants_1.default.getMetroSouceMapPath(), exports.SOURCE_MAP_BACKUP_FILE);
try {
FileOperationHelper_1.default.checkIfFileExistsSync(origSourceMapPath);
Logger_1.default.logMessageSync('Patching of SourceMap already happened!', Logger_1.default.INFO);
}
catch (e) {
try {
const currentSourceMapPath = (0, path_1.join)(PathsConstants_1.default.getMetroSouceMapPath(), exports.SOURCE_MAP_FILE);
FileOperationHelper_1.default.checkIfFileExistsSync(currentSourceMapPath);
FileOperationHelper_1.default.renameFileSync(currentSourceMapPath, origSourceMapPath);
FileOperationHelper_1.default.copyFileSync(PathsConstants_1.default.getOurSourceMapFile(), currentSourceMapPath);
Logger_1.default.logMessageSync('Patching of SourceMap successful!', Logger_1.default.INFO);
}
catch (e) {
Logger_1.default.logMessageSync('Patching of SourceMap generation failed!', Logger_1.default.ERROR);
}
}
};
exports.patchMetroSourceMap = patchMetroSourceMap;