1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-28 16:20:57 -05:00

Revert "refactor: remove Deno[Deno.internal].nodeUnstable namespace (… (#18458)

…#18449)"

This reverts commit d1a9c4cd7c.

Appears this made CI very flaky on macOS, but I can't repeat it locally
yet
This commit is contained in:
Bartek Iwańczuk 2023-03-27 16:25:17 +02:00 committed by GitHub
parent 2b389ecf62
commit 357bcfcf79
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 80 additions and 19 deletions

View file

@ -1,7 +1,5 @@
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. // Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
const core = globalThis.Deno.core;
const ops = core.ops;
import { TextEncoder } from "ext:deno_web/08_text_encoding.js"; import { TextEncoder } from "ext:deno_web/08_text_encoding.js";
import { type Deferred, deferred } from "ext:deno_node/_util/async.ts"; import { type Deferred, deferred } from "ext:deno_node/_util/async.ts";
import { _normalizeArgs, ListenOptions, Socket } from "ext:deno_node/net.ts"; import { _normalizeArgs, ListenOptions, Socket } from "ext:deno_node/net.ts";
@ -19,7 +17,6 @@ import { Agent } from "ext:deno_node/_http_agent.mjs";
import { chunkExpression as RE_TE_CHUNKED } from "ext:deno_node/_http_common.ts"; import { chunkExpression as RE_TE_CHUNKED } from "ext:deno_node/_http_common.ts";
import { urlToHttpOptions } from "ext:deno_node/internal/url.ts"; import { urlToHttpOptions } from "ext:deno_node/internal/url.ts";
import { constants, TCP } from "ext:deno_node/internal_binding/tcp_wrap.ts"; import { constants, TCP } from "ext:deno_node/internal_binding/tcp_wrap.ts";
import * as flash from "ext:deno_flash/01_http.js";
enum STATUS_CODES { enum STATUS_CODES {
/** RFC 7231, 6.2.1 */ /** RFC 7231, 6.2.1 */
@ -191,8 +188,11 @@ const METHODS = [
type Chunk = string | Buffer | Uint8Array; type Chunk = string | Buffer | Uint8Array;
const DenoServe = flash.createServe(ops.op_node_unstable_flash_serve); // @ts-ignore Deno[Deno.internal] is used on purpose here
const DenoUpgradeHttpRaw = flash.upgradeHttpRaw; const DenoServe = Deno[Deno.internal]?.nodeUnstable?.serve || Deno.serve;
// @ts-ignore Deno[Deno.internal] is used on purpose here
const DenoUpgradeHttpRaw = Deno[Deno.internal]?.nodeUnstable?.upgradeHttpRaw ||
Deno.upgradeHttpRaw;
const ENCODER = new TextEncoder(); const ENCODER = new TextEncoder();

View file

@ -20,8 +20,6 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE. // USE OR OTHER DEALINGS IN THE SOFTWARE.
const core = globalThis.Deno.core;
const ops = core.ops;
import { import {
AsyncWrap, AsyncWrap,
providerType, providerType,
@ -34,13 +32,12 @@ import { notImplemented } from "ext:deno_node/_utils.ts";
import { Buffer } from "ext:deno_node/buffer.ts"; import { Buffer } from "ext:deno_node/buffer.ts";
import type { ErrnoException } from "ext:deno_node/internal/errors.ts"; import type { ErrnoException } from "ext:deno_node/internal/errors.ts";
import { isIP } from "ext:deno_node/internal/net.ts"; import { isIP } from "ext:deno_node/internal/net.ts";
import * as net from "ext:deno_net/01_net.js";
import { isLinux, isWindows } from "ext:deno_node/_util/os.ts"; import { isLinux, isWindows } from "ext:deno_node/_util/os.ts";
const DenoListenDatagram = net.createListenDatagram( // @ts-ignore Deno[Deno.internal] is used on purpose here
ops.op_node_unstable_net_listen_udp, const DenoListenDatagram = Deno[Deno.internal]?.nodeUnstable?.listenDatagram ||
ops.op_node_unstable_net_listen_unixpacket, Deno.listenDatagram;
);
type MessageType = string | Uint8Array | Buffer | DataView; type MessageType = string | Uint8Array | Buffer | DataView;

View file

@ -25,11 +25,15 @@ import { validateIntegerRange } from "ext:deno_node/_utils.ts";
import process from "ext:deno_node/process.ts"; import process from "ext:deno_node/process.ts";
import { isWindows, osType } from "ext:deno_node/_util/os.ts"; import { isWindows, osType } from "ext:deno_node/_util/os.ts";
import { os } from "ext:deno_node/internal_binding/constants.ts"; import { os } from "ext:deno_node/internal_binding/constants.ts";
import { osUptime } from "ext:runtime/30_os.js";
export const constants = os; export const constants = os;
const SEE_GITHUB_ISSUE = "See https://github.com/denoland/deno_std/issues/1436"; const SEE_GITHUB_ISSUE = "See https://github.com/denoland/deno_std/issues/1436";
// @ts-ignore Deno[Deno.internal] is used on purpose here
const DenoOsUptime = Deno[Deno.internal]?.nodeUnstable?.osUptime ||
Deno.osUptime;
interface CPUTimes { interface CPUTimes {
/** The number of milliseconds the CPU has spent in user mode */ /** The number of milliseconds the CPU has spent in user mode */
user: number; user: number;
@ -306,7 +310,7 @@ export function type(): string {
/** Returns the Operating System uptime in number of seconds. */ /** Returns the Operating System uptime in number of seconds. */
export function uptime(): number { export function uptime(): number {
return osUptime(); return DenoOsUptime();
} }
/** Not yet implemented */ /** Not yet implemented */

View file

@ -153,10 +153,7 @@ const denoNs = {
}; };
const denoNsUnstable = { const denoNsUnstable = {
listenDatagram: net.createListenDatagram( listenDatagram: net.listenDatagram,
ops.op_net_listen_udp,
ops.op_net_listen_unixpacket,
),
umask: fs.umask, umask: fs.umask,
HttpClient: httpClient.HttpClient, HttpClient: httpClient.HttpClient,
createHttpClient: httpClient.createHttpClient, createHttpClient: httpClient.createHttpClient,
@ -173,7 +170,6 @@ const denoNsUnstable = {
funlockSync: fs.funlockSync, funlockSync: fs.funlockSync,
upgradeHttp: http.upgradeHttp, upgradeHttp: http.upgradeHttp,
upgradeHttpRaw: flash.upgradeHttpRaw, upgradeHttpRaw: flash.upgradeHttpRaw,
serve: flash.createServe(ops.op_flash_serve),
openKv: kv.openKv, openKv: kv.openKv,
Kv: kv.Kv, Kv: kv.Kv,
KvU64: kv.KvU64, KvU64: kv.KvU64,

View file

@ -45,6 +45,7 @@ import * as version from "ext:runtime/01_version.ts";
import * as os from "ext:runtime/30_os.js"; import * as os from "ext:runtime/30_os.js";
import * as timers from "ext:deno_web/02_timers.js"; import * as timers from "ext:deno_web/02_timers.js";
import * as colors from "ext:deno_console/01_colors.js"; import * as colors from "ext:deno_console/01_colors.js";
import * as net from "ext:deno_net/01_net.js";
import { import {
inspectArgs, inspectArgs,
quoteString, quoteString,
@ -58,6 +59,7 @@ import { denoNs, denoNsUnstable } from "ext:runtime/90_deno_ns.js";
import { errors } from "ext:runtime/01_errors.js"; import { errors } from "ext:runtime/01_errors.js";
import * as webidl from "ext:deno_webidl/00_webidl.js"; import * as webidl from "ext:deno_webidl/00_webidl.js";
import DOMException from "ext:deno_web/01_dom_exception.js"; import DOMException from "ext:deno_web/01_dom_exception.js";
import * as flash from "ext:deno_flash/01_http.js";
import { import {
mainRuntimeGlobalProperties, mainRuntimeGlobalProperties,
setLanguage, setLanguage,
@ -453,6 +455,27 @@ function bootstrapMainRuntime(runtimeOptions) {
setUserAgent(runtimeOptions.userAgent); setUserAgent(runtimeOptions.userAgent);
setLanguage(runtimeOptions.locale); setLanguage(runtimeOptions.locale);
// These have to initialized here and not in `90_deno_ns.js` because
// the op function that needs to be passed will be invalidated by creating
// a snapshot
ObjectAssign(internals, {
nodeUnstable: {
serve: flash.createServe(ops.op_node_unstable_flash_serve),
upgradeHttpRaw: flash.upgradeHttpRaw,
listenDatagram: net.createListenDatagram(
ops.op_node_unstable_net_listen_udp,
ops.op_node_unstable_net_listen_unixpacket,
),
},
});
// FIXME(bartlomieju): temporarily add whole `Deno.core` to
// `Deno[Deno.internal]` namespace. It should be removed and only necessary
// methods should be left there.
ObjectAssign(internals, {
core,
});
ObjectDefineProperties(finalDenoNs, { ObjectDefineProperties(finalDenoNs, {
pid: util.readOnly(runtimeOptions.pid), pid: util.readOnly(runtimeOptions.pid),
ppid: util.readOnly(runtimeOptions.ppid), ppid: util.readOnly(runtimeOptions.ppid),
@ -463,6 +486,16 @@ function bootstrapMainRuntime(runtimeOptions) {
if (runtimeOptions.unstableFlag) { if (runtimeOptions.unstableFlag) {
ObjectAssign(finalDenoNs, denoNsUnstable); ObjectAssign(finalDenoNs, denoNsUnstable);
// These have to initialized here and not in `90_deno_ns.js` because
// the op function that needs to be passed will be invalidated by creating
// a snapshot
ObjectAssign(finalDenoNs, {
serve: flash.createServe(ops.op_flash_serve),
listenDatagram: net.createListenDatagram(
ops.op_net_listen_udp,
ops.op_net_listen_unixpacket,
),
});
} }
// Setup `Deno` global - we're actually overriding already existing global // Setup `Deno` global - we're actually overriding already existing global
@ -540,8 +573,39 @@ function bootstrapWorkerRuntime(
globalThis.pollForMessages = pollForMessages; globalThis.pollForMessages = pollForMessages;
// These have to initialized here and not in `90_deno_ns.js` because
// the op function that needs to be passed will be invalidated by creating
// a snapshot
ObjectAssign(internals, {
nodeUnstable: {
serve: flash.createServe(ops.op_node_unstable_flash_serve),
upgradeHttpRaw: flash.upgradeHttpRaw,
listenDatagram: net.createListenDatagram(
ops.op_node_unstable_net_listen_udp,
ops.op_node_unstable_net_listen_unixpacket,
),
},
});
// FIXME(bartlomieju): temporarily add whole `Deno.core` to
// `Deno[Deno.internal]` namespace. It should be removed and only necessary
// methods should be left there.
ObjectAssign(internals, {
core,
});
if (runtimeOptions.unstableFlag) { if (runtimeOptions.unstableFlag) {
ObjectAssign(finalDenoNs, denoNsUnstable); ObjectAssign(finalDenoNs, denoNsUnstable);
// These have to initialized here and not in `90_deno_ns.js` because
// the op function that needs to be passed will be invalidated by creating
// a snapshot
ObjectAssign(finalDenoNs, {
serve: flash.createServe(ops.op_flash_serve),
listenDatagram: net.createListenDatagram(
ops.op_net_listen_udp,
ops.op_net_listen_unixpacket,
),
});
} }
ObjectDefineProperties(finalDenoNs, { ObjectDefineProperties(finalDenoNs, {
pid: util.readOnly(runtimeOptions.pid), pid: util.readOnly(runtimeOptions.pid),