aboutsummaryrefslogtreecommitdiff
path: root/packages/bun-debug-adapter-protocol/debugger/preview.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/bun-debug-adapter-protocol/debugger/preview.ts')
-rw-r--r--packages/bun-debug-adapter-protocol/debugger/preview.ts110
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";
-}