diff options
Diffstat (limited to 'packages/bun-debug-adapter-protocol/debugger/preview.ts')
-rw-r--r-- | packages/bun-debug-adapter-protocol/debugger/preview.ts | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/packages/bun-debug-adapter-protocol/debugger/preview.ts b/packages/bun-debug-adapter-protocol/debugger/preview.ts deleted file mode 100644 index 6012623d2..000000000 --- a/packages/bun-debug-adapter-protocol/debugger/preview.ts +++ /dev/null @@ -1,110 +0,0 @@ -import type { JSC } from "../../bun-inspector-protocol"; - -export function remoteObjectToString(remoteObject: JSC.Runtime.RemoteObject): string { - const { type, subtype, value, description, className, preview } = remoteObject; - switch (type) { - case "undefined": - return "undefined"; - case "boolean": - case "number": - return description ?? JSON.stringify(value); - case "string": - return JSON.stringify(value ?? description); - case "symbol": - case "bigint": - return description!; - case "function": - return description!.replace("function", "ƒ") || "ƒ"; - } - switch (subtype) { - case "null": - return "null"; - case "regexp": - case "date": - case "error": - return description!; - } - if (preview) { - return objectPreviewToString(preview); - } - if (className) { - return className; - } - return description || "Object"; -} - -export function objectPreviewToString(objectPreview: JSC.Runtime.ObjectPreview): string { - const { type, subtype, entries, properties, overflow, description, size } = objectPreview; - if (type !== "object") { - return remoteObjectToString(objectPreview); - } - let items: string[]; - if (entries) { - items = entries.map(entryPreviewToString).sort(); - } else if (properties) { - if (isIndexed(subtype)) { - items = properties.map(indexedPropertyPreviewToString).sort(); - } else { - items = properties.map(namedPropertyPreviewToString).sort(); - } - } else { - items = ["…"]; - } - if (overflow) { - items.push("…"); - } - let label: string; - if (description === "Object") { - label = ""; - } else if (size === undefined) { - label = description!; - } else { - label = `${description}(${size})`; - } - if (!items.length) { - return label || "{}"; - } - if (label) { - label += " "; - } - if (isIndexed(subtype)) { - return `${label}[${items.join(", ")}]`; - } - return `${label}{${items.join(", ")}}`; -} - -function propertyPreviewToString(propertyPreview: JSC.Runtime.PropertyPreview): string { - const { type, value, ...preview } = propertyPreview; - if (type === "accessor") { - return "ƒ"; - } - return remoteObjectToString({ ...preview, type, description: value }); -} - -function entryPreviewToString(entryPreview: JSC.Runtime.EntryPreview): string { - const { key, value } = entryPreview; - if (key) { - return `${objectPreviewToString(key)} => ${objectPreviewToString(value)}`; - } - return objectPreviewToString(value); -} - -function namedPropertyPreviewToString(propertyPreview: JSC.Runtime.PropertyPreview): string { - const { name, valuePreview } = propertyPreview; - if (valuePreview) { - return `${name}: ${objectPreviewToString(valuePreview)}`; - } - return `${name}: ${propertyPreviewToString(propertyPreview)}`; -} - -function indexedPropertyPreviewToString(propertyPreview: JSC.Runtime.PropertyPreview): string { - const { valuePreview } = propertyPreview; - if (valuePreview) { - return objectPreviewToString(valuePreview); - } - return propertyPreviewToString(propertyPreview); -} - -function isIndexed(type?: JSC.Runtime.RemoteObject["subtype"]): boolean { - return type === "array" || type === "set" || type === "weakset"; -} |