45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
|
/**
|
||
|
* Copyright (c) 2015-present, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*
|
||
|
* @providesModule SourceMapsCache
|
||
|
*/
|
||
|
'use strict';
|
||
|
|
||
|
const getObjectValues = require('getObjectValues');
|
||
|
const SourceMapsUtils = require('SourceMapsUtils');
|
||
|
|
||
|
const sourceMapsCache = {};
|
||
|
|
||
|
const SourceMapsCache = {
|
||
|
mainSourceMapID: 'main',
|
||
|
|
||
|
fetch({text, url, fullSourceMappingURL}) {
|
||
|
const sourceMappingURL = fullSourceMappingURL
|
||
|
? fullSourceMappingURL
|
||
|
: SourceMapsUtils.extractSourceMapURL({text, url});
|
||
|
|
||
|
sourceMapsCache[sourceMappingURL] = SourceMapsUtils.fetchSourceMap(
|
||
|
sourceMappingURL
|
||
|
);
|
||
|
},
|
||
|
|
||
|
getSourceMaps() {
|
||
|
fetchMainSourceMap();
|
||
|
return Promise.all(getObjectValues(sourceMapsCache));
|
||
|
},
|
||
|
};
|
||
|
|
||
|
function fetchMainSourceMap() {
|
||
|
if (!sourceMapsCache[SourceMapsCache.mainSourceMapID]) {
|
||
|
sourceMapsCache[SourceMapsCache.mainSourceMapID] =
|
||
|
SourceMapsUtils.fetchMainSourceMap();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = SourceMapsCache;
|