mirror of
https://github.com/denoland/deno.git
synced 2024-11-24 15:19:26 -05:00
fix(ext/node): use primordials in ext/node/polyfills/https.ts
(#26323)
Towards https://github.com/denoland/deno/issues/24236
This commit is contained in:
parent
473e3069de
commit
afb33b3c25
1 changed files with 19 additions and 12 deletions
|
@ -1,9 +1,6 @@
|
||||||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||||
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
// Copyright Joyent and Node contributors. All rights reserved. MIT license.
|
||||||
|
|
||||||
// TODO(petamoriken): enable prefer-primordials for node polyfills
|
|
||||||
// deno-lint-ignore-file prefer-primordials
|
|
||||||
|
|
||||||
import { notImplemented } from "ext:deno_node/_utils.ts";
|
import { notImplemented } from "ext:deno_node/_utils.ts";
|
||||||
import { urlToHttpOptions } from "ext:deno_node/internal/url.ts";
|
import { urlToHttpOptions } from "ext:deno_node/internal/url.ts";
|
||||||
import {
|
import {
|
||||||
|
@ -17,6 +14,14 @@ import { type ServerHandler, ServerImpl as HttpServer } from "node:http";
|
||||||
import { validateObject } from "ext:deno_node/internal/validators.mjs";
|
import { validateObject } from "ext:deno_node/internal/validators.mjs";
|
||||||
import { kEmptyObject } from "ext:deno_node/internal/util.mjs";
|
import { kEmptyObject } from "ext:deno_node/internal/util.mjs";
|
||||||
import { Buffer } from "node:buffer";
|
import { Buffer } from "node:buffer";
|
||||||
|
import { primordials } from "ext:core/mod.js";
|
||||||
|
const {
|
||||||
|
ArrayPrototypeShift,
|
||||||
|
ArrayPrototypeUnshift,
|
||||||
|
ArrayIsArray,
|
||||||
|
ObjectPrototypeIsPrototypeOf,
|
||||||
|
ObjectAssign,
|
||||||
|
} = primordials;
|
||||||
|
|
||||||
export class Server extends HttpServer {
|
export class Server extends HttpServer {
|
||||||
constructor(opts, requestListener?: ServerHandler) {
|
constructor(opts, requestListener?: ServerHandler) {
|
||||||
|
@ -29,11 +34,11 @@ export class Server extends HttpServer {
|
||||||
validateObject(opts, "options");
|
validateObject(opts, "options");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts.cert && Array.isArray(opts.cert)) {
|
if (opts.cert && ArrayIsArray(opts.cert)) {
|
||||||
notImplemented("https.Server.opts.cert array type");
|
notImplemented("https.Server.opts.cert array type");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (opts.key && Array.isArray(opts.key)) {
|
if (opts.key && ArrayIsArray(opts.key)) {
|
||||||
notImplemented("https.Server.opts.key array type");
|
notImplemented("https.Server.opts.key array type");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,10 +47,12 @@ export class Server extends HttpServer {
|
||||||
|
|
||||||
_additionalServeOptions() {
|
_additionalServeOptions() {
|
||||||
return {
|
return {
|
||||||
cert: this._opts.cert instanceof Buffer
|
cert: ObjectPrototypeIsPrototypeOf(Buffer, this._opts.cert)
|
||||||
|
// deno-lint-ignore prefer-primordials
|
||||||
? this._opts.cert.toString()
|
? this._opts.cert.toString()
|
||||||
: this._opts.cert,
|
: this._opts.cert,
|
||||||
key: this._opts.key instanceof Buffer
|
key: ObjectPrototypeIsPrototypeOf(Buffer, this._opts.key)
|
||||||
|
// deno-lint-ignore prefer-primordials
|
||||||
? this._opts.key.toString()
|
? this._opts.key.toString()
|
||||||
: this._opts.key,
|
: this._opts.key,
|
||||||
};
|
};
|
||||||
|
@ -159,18 +166,18 @@ export function request(...args: any[]) {
|
||||||
let options = {};
|
let options = {};
|
||||||
|
|
||||||
if (typeof args[0] === "string") {
|
if (typeof args[0] === "string") {
|
||||||
const urlStr = args.shift();
|
const urlStr = ArrayPrototypeShift(args);
|
||||||
options = urlToHttpOptions(new URL(urlStr));
|
options = urlToHttpOptions(new URL(urlStr));
|
||||||
} else if (args[0] instanceof URL) {
|
} else if (ObjectPrototypeIsPrototypeOf(URL, args[0])) {
|
||||||
options = urlToHttpOptions(args.shift());
|
options = urlToHttpOptions(ArrayPrototypeShift(args));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (args[0] && typeof args[0] !== "function") {
|
if (args[0] && typeof args[0] !== "function") {
|
||||||
Object.assign(options, args.shift());
|
ObjectAssign(options, ArrayPrototypeShift(args));
|
||||||
}
|
}
|
||||||
|
|
||||||
options._defaultAgent = globalAgent;
|
options._defaultAgent = globalAgent;
|
||||||
args.unshift(options);
|
ArrayPrototypeUnshift(args, options);
|
||||||
|
|
||||||
return new HttpsClientRequest(args[0], args[1]);
|
return new HttpsClientRequest(args[0], args[1]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue