Unverified Commit a0a19612 authored by Hong Minhee's avatar Hong Minhee
Browse files

Remove dependency on @david/which-runtime

parent c6932dbf
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@
  },
  "imports": {
    "@cfworker/json-schema": "npm:@cfworker/json-schema@^2.0.1",
    "@david/which-runtime": "jsr:@david/which-runtime@^0.2.1",
    "@deno/dnt": "jsr:@deno/dnt@0.41.3",
    "@es-toolkit/es-toolkit": "jsr:@es-toolkit/es-toolkit@^1.38.0",
    "@hugoalh/http-header-link": "jsr:@hugoalh/http-header-link@^1.0.2",
+8 −7
Original line number Diff line number Diff line
import { isDeno } from "@david/which-runtime";
import { assertEquals, assertRejects, assertThrows } from "@std/assert";
import * as mf from "mock_fetch";
import process from "node:process";
@@ -595,7 +594,8 @@ test("kvCache()", async (t) => {
});

test("getUserAgent()", () => {
  if (isDeno) {
  // dnt-shim-ignore
  if ("Deno" in globalThis) {
    assertEquals(
      getUserAgent(),
      `Fedify/${metadata.version} (Deno/${Deno.version.deno})`,
@@ -615,7 +615,8 @@ test("getUserAgent()", () => {
      }),
      `MyApp/1.0.0 (Fedify/${metadata.version}; Deno/${Deno.version.deno}; +https://example.com/)`,
    );
  } else if ("Bun" in globalThis) {
  } // dnt-shim-ignore
  else if ("Bun" in globalThis) {
    assertEquals(
      getUserAgent(),
      // @ts-ignore: `Bun` is a global variable in Bun
@@ -642,22 +643,22 @@ test("getUserAgent()", () => {
  } else {
    assertEquals(
      getUserAgent(),
      `Fedify/${metadata.version} (Node.js/${process.version})`,
      `Fedify/${metadata.version} (Node.js/${process.versions.node})`,
    );
    assertEquals(
      getUserAgent({ software: "MyApp/1.0.0" }),
      `MyApp/1.0.0 (Fedify/${metadata.version}; Node.js/${process.version})`,
      `MyApp/1.0.0 (Fedify/${metadata.version}; Node.js/${process.versions.node})`,
    );
    assertEquals(
      getUserAgent({ url: "https://example.com/" }),
      `Fedify/${metadata.version} (Node.js/${process.version}; +https://example.com/)`,
      `Fedify/${metadata.version} (Node.js/${process.versions.node}; +https://example.com/)`,
    );
    assertEquals(
      getUserAgent({
        software: "MyApp/1.0.0",
        url: new URL("https://example.com/"),
      }),
      `MyApp/1.0.0 (Fedify/${metadata.version}; Node.js/${process.version}; +https://example.com/)`,
      `MyApp/1.0.0 (Fedify/${metadata.version}; Node.js/${process.versions.node}; +https://example.com/)`,
    );
  }
});
+13 −7
Original line number Diff line number Diff line
import { isDeno, isNode } from "@david/which-runtime";
import { HTTPHeaderLink } from "@hugoalh/http-header-link";
import { getLogger } from "@logtape/logtape";
import type { TracerProvider } from "@opentelemetry/api";
@@ -558,11 +557,18 @@ export function getUserAgent(
  { software, url }: GetUserAgentOptions = {},
): string {
  const fedify = `Fedify/${metadata.version}`;
  const runtime = isDeno ? `Deno/${Deno.version.deno}` : "Bun" in globalThis
    // @ts-ignore: `Bun` is a global variable in Bun
    ? `Bun/${Bun.version}`
    : isNode
    ? `Node.js/${process.version}`
  const runtime = // dnt-shim-ignore
    // deno-lint-ignore no-explicit-any
    (globalThis as any).Deno?.version?.deno != null
      ? `Deno/${Deno.version.deno}`
      // dnt-shim-ignore
      // deno-lint-ignore no-explicit-any
      : (globalThis as any).process?.versions?.bun != null
      ? `Bun/${process.versions.bun}`
      // dnt-shim-ignore
      // deno-lint-ignore no-explicit-any
      : (globalThis as any).process?.versions?.node != null
      ? `Node.js/${process.versions.node}`
      : null;
  const userAgent = software == null ? [fedify] : [software, fedify];
  if (runtime != null) userAgent.push(runtime);
+4 −3
Original line number Diff line number Diff line
import { isDeno } from "@david/which-runtime";
import { pascalCase } from "@es-toolkit/es-toolkit";
import { parseLanguageTag } from "@phensley/language-tag";
import {
@@ -517,7 +516,8 @@ test("Deno.inspect(Object)", () => {
  });
  assertEquals(
    Deno.inspect(obj, { colors: false, sorted: true, compact: false }),
    isDeno
    // dnt-shim-ignore
    "Deno" in globalThis
      ? "Object {\n" +
        '  attribution: URL "https://example.com/foo",\n' +
        "  contents: [\n" +
@@ -1249,7 +1249,8 @@ for (const typeUri in types) {
    );
  });

  if (isDeno) {
  // dnt-shim-ignore
  if ("Deno" in globalThis) {
    test(`Deno.inspect(${type.name}) [auto]`, async (t) => {
      const empty = new cls({});
      assertEquals(Deno.inspect(empty), `${type.name} {}`);