Duffer Derek
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict-local
* @format
* @oncall react_native
*/
'use strict';
import type {
Bundle,
BundleMetadata,
} from 'metro-runtime/src/modules/types.flow';
/**
* Serializes a bundle into a plain JS bundle.
*/
function bundleToString(bundle: Bundle): {
+code: string,
+metadata: BundleMetadata,
} {
let code = bundle.pre.length > 0 ? bundle.pre + '\n' : '';
const modules = [];
const sortedModules = bundle.modules
.slice()
// The order of the modules needs to be deterministic in order for source
// maps to work properly.
.sort((a: [number, string], b: [number, string]) => a[0] - b[0]);
for (const [id, moduleCode] of sortedModules) {
if (moduleCode.length > 0) {
code += moduleCode + '\n';
}
modules.push([id, moduleCode.length]);
}
if (bundle.post.length > 0) {
code += bundle.post;
} else {
code = code.slice(0, -1);
}
return {
code,
metadata: {pre: bundle.pre.length, post: bundle.post.length, modules},
};
}
module.exports = bundleToString;
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists