2025-09-05 14:59:21 +08:00

109 lines
2.8 KiB
JavaScript

import noop from "../mock/noop.mjs";
import { Readable } from "node:stream";
import { Deserializer, DefaultDeserializer } from "./internal/v8/deserializer.mjs";
import { Serializer, DefaultSerializer } from "./internal/v8/serializer.mjs";
import { GCProfiler } from "./internal/v8/profiler.mjs";
export { Deserializer, DefaultDeserializer } from "./internal/v8/deserializer.mjs";
export { Serializer, DefaultSerializer } from "./internal/v8/serializer.mjs";
export { GCProfiler } from "./internal/v8/profiler.mjs";
const getMockHeapSpaceStats = (name) => ({
space_name: name,
space_size: 0,
space_used_size: 0,
space_available_size: 0,
physical_space_size: 0
});
export const cachedDataVersionTag = () => 0;
export const deserialize = noop;
export const getHeapCodeStatistics = () => ({
code_and_metadata_size: 0,
bytecode_and_metadata_size: 0,
external_script_source_size: 0,
cpu_profiler_metadata_size: 0
});
export const getHeapSpaceStatistics = () => [
"read_only_space",
"new_space",
"old_space",
"code_space",
"map_space",
"large_object_space",
"code_large_object_space",
"new_large_object_space"
].map((space) => getMockHeapSpaceStats(space));
export const getHeapStatistics = () => ({
total_heap_size: 0,
total_heap_size_executable: 0,
total_physical_size: 0,
total_available_size: 0,
used_heap_size: 0,
heap_size_limit: 0,
malloced_memory: 0,
peak_malloced_memory: 0,
does_zap_garbage: 0,
number_of_native_contexts: 0,
number_of_detached_contexts: 0,
total_global_handles_size: 0,
used_global_handles_size: 0,
external_memory: 0
});
export const getHeapSnapshot = () => {
return Readable.from(`{
snapshot: {},
nodes: [],
edges: [],
trace_function_infos: [],
trace_tree: [],
samples: [],
locations: [],
strings: [],
}`);
};
export const promiseHooks = {
onInit: () => noop,
onSettled: () => noop,
onBefore: () => noop,
onAfter: () => noop,
createHook: () => noop
};
export const serialize = (value) => Buffer.from(value);
export const setFlagsFromString = noop;
export const setHeapSnapshotNearHeapLimit = noop;
export const startupSnapshot = {
addDeserializeCallback: noop,
addSerializeCallback: noop,
setDeserializeMainFunction: noop,
isBuildingSnapshot: () => false
};
export const stopCoverage = noop;
export const takeCoverage = noop;
export const writeHeapSnapshot = () => "";
export function queryObjects(_ctor, options) {
if (options?.format === "count") {
return 0;
}
return [];
}
export default {
DefaultDeserializer,
Deserializer,
GCProfiler,
DefaultSerializer,
Serializer,
cachedDataVersionTag,
deserialize,
getHeapCodeStatistics,
getHeapSnapshot,
getHeapSpaceStatistics,
getHeapStatistics,
promiseHooks,
serialize,
setFlagsFromString,
setHeapSnapshotNearHeapLimit,
startupSnapshot,
stopCoverage,
takeCoverage,
writeHeapSnapshot,
queryObjects
};