fix(ext/node): use primordials in ext/node/polyfills/internal/url.ts (#29146)
Some checks are pending
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / build wasm32 (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions

Towards #24236.
This commit is contained in:
James Bronder 2025-05-13 16:30:44 -07:00 committed by GitHub
parent 6395255311
commit df7ddfc7df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,17 +1,23 @@
// Copyright 2018-2025 the Deno authors. MIT license. // Copyright 2018-2025 the Deno authors. MIT license.
// TODO(petamoriken): enable prefer-primordials for node polyfills
// deno-lint-ignore-file prefer-primordials
import { fileURLToPath } from "node:url"; import { fileURLToPath } from "node:url";
import { Buffer } from "node:buffer"; import { Buffer } from "node:buffer";
import { primordials } from "ext:core/mod.js";
const {
Number,
ObjectPrototypeIsPrototypeOf,
StringPrototypeSlice,
StringPrototypeStartsWith,
Symbol,
decodeURIComponent,
} = primordials;
const searchParams = Symbol("query"); const searchParams = Symbol("query");
export function toPathIfFileURL( export function toPathIfFileURL(
fileURLOrPath: string | Buffer | URL, fileURLOrPath: string | Buffer | URL,
): string | Buffer { ): string | Buffer {
if (!(fileURLOrPath instanceof URL)) { if (!(ObjectPrototypeIsPrototypeOf(URL.prototype, fileURLOrPath))) {
return fileURLOrPath; return fileURLOrPath;
} }
return fileURLToPath(fileURLOrPath); return fileURLToPath(fileURLOrPath);
@ -26,8 +32,8 @@ export function urlToHttpOptions(url: any): any {
const options: any = { const options: any = {
protocol: url.protocol, protocol: url.protocol,
hostname: typeof url.hostname === "string" && hostname: typeof url.hostname === "string" &&
url.hostname.startsWith("[") StringPrototypeStartsWith(url.hostname, "[")
? url.hostname.slice(1, -1) ? StringPrototypeSlice(url.hostname, 1, -1)
: url.hostname, : url.hostname,
hash: url.hash, hash: url.hash,
search: url.search, search: url.search,