diff options
Diffstat (limited to 'ext/node/polyfills')
-rw-r--r-- | ext/node/polyfills/internal/process/report.ts | 84 | ||||
-rw-r--r-- | ext/node/polyfills/process.ts | 5 |
2 files changed, 89 insertions, 0 deletions
diff --git a/ext/node/polyfills/internal/process/report.ts b/ext/node/polyfills/internal/process/report.ts new file mode 100644 index 000000000..7d178626c --- /dev/null +++ b/ext/node/polyfills/internal/process/report.ts @@ -0,0 +1,84 @@ +// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. + +import { arch, versions } from "ext:deno_node/_process/process.ts"; +import { cpus, hostname, networkInterfaces } from "node:os"; + +const primordials = globalThis.__bootstrap.primordials; +const { + Error, + StringPrototypeToUpperCase, + StringPrototypeCharAt, + StringPrototypeSlice, + Date, + DatePrototypeGetTime, +} = primordials; + +function writeReport(_filename: string, _err: typeof Error) { + return ""; +} + +const todoUndefined = undefined; + +function getReport(_err: typeof Error) { + const dumpEventTime = new Date(); + return { + header: { + reportVersion: 3, + event: "JavaScript API", + trigger: "GetReport", + filename: report.filename, // assumption! + dumpEventTime, + dumpEventTimeStamp: DatePrototypeGetTime(dumpEventTime), + processId: Deno.pid, // I am not sure if it should be Deno.pid or Deno.ppid + threadId: 0, + cwd: Deno.cwd(), + commandLine: ["node"], + nodejsVersion: `v${versions.node}`, + glibcVersionRuntime: "2.38", + glibcVersionCompiler: "2.38", + wordSize: 64, + arch: arch(), + platform: Deno.build.os, + componentVersions: versions, + release: { + name: "node", + headersUrl: + "https://nodejs.org/download/release/v21.2.0/node-v21.2.0-headers.tar.gz", + sourceUrl: + "https://nodejs.org/download/release/v21.2.0/node-v21.2.0.tar.gz", + }, + osName: + StringPrototypeToUpperCase(StringPrototypeCharAt(Deno.build.os, 0)) + + StringPrototypeSlice(Deno.build.os, 1), + osRelease: todoUndefined, + osVersion: todoUndefined, + osMachine: Deno.build.arch, + cpus: cpus(), + networkInterfaces: networkInterfaces(), + host: hostname(), + }, + javascriptStack: todoUndefined, + javascriptHeap: todoUndefined, + nativeStack: todoUndefined, + resourceUsage: todoUndefined, + uvthreadResourceUsage: todoUndefined, + libuv: todoUndefined, + workers: [], + environmentVariables: todoUndefined, + userLimits: todoUndefined, + sharedObjects: todoUndefined, + }; +} + +// https://nodejs.org/api/process.html#processreport +export const report = { + compact: false, + directory: "", + filename: "", + getReport, + reportOnFatalError: false, + reportOnSignal: false, + reportOnUncaughtException: false, + signal: "SIGUSR2", + writeReport, +}; diff --git a/ext/node/polyfills/process.ts b/ext/node/polyfills/process.ts index 860825b3e..c495a90bb 100644 --- a/ext/node/polyfills/process.ts +++ b/ext/node/polyfills/process.ts @@ -10,6 +10,7 @@ const { ops } = core; import { notImplemented, warnNotImplemented } from "ext:deno_node/_utils.ts"; import { EventEmitter } from "node:events"; import Module from "node:module"; +import { report } from "ext:deno_node/internal/process/report.ts"; import { validateString } from "ext:deno_node/internal/validators.mjs"; import { ERR_INVALID_ARG_TYPE, @@ -362,6 +363,10 @@ class Process extends EventEmitter { return arch; } + get report() { + return report; + } + get title() { return "deno"; } |