/** * 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. * * * @format */ "use strict"; const meta = require("../../shared/output/meta"); const _require = require("./util"), getModuleCodeAndMap = _require.getModuleCodeAndMap, concat = _require.concat; const _require2 = require("metro-source-map"), createIndexMap = _require2.createIndexMap; function asPlainBundle(_ref) { let filename = _ref.filename, idsForPath = _ref.idsForPath, modules = _ref.modules, requireCalls = _ref.requireCalls, sourceMapPath = _ref.sourceMapPath, enableIDInlining = _ref.enableIDInlining; let code = ""; let line = 0; const sections = []; const modIdForPath = x => idsForPath(x).moduleId; for (const module of concat(modules, requireCalls)) { const _getModuleCodeAndMap = getModuleCodeAndMap(module, modIdForPath, { enableIDInlining }), moduleCode = _getModuleCodeAndMap.moduleCode, moduleMap = _getModuleCodeAndMap.moduleMap; code += moduleCode + "\n"; if (moduleMap) { sections.push({ map: moduleMap, offset: { column: 0, line } }); } line += countLines(moduleCode); } if (sourceMapPath) { code += `//# sourceMappingURL=${sourceMapPath}`; } return { code, extraFiles: [[`${filename}.meta`, meta(code)]], map: createIndexMap(filename, sections) }; } module.exports = asPlainBundle; const reLine = /^/gm; function countLines(string) { //$FlowFixMe This regular expression always matches return string.match(reLine).length; }