Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ext/cron/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ deno_core::extension!(deno_cron,
op_cron_create<C>,
op_cron_next<C>,
],
esm = [ "01_cron.ts" ],
lazy_loaded_esm = [ "01_cron.ts" ],
options = {
cron_handler: C,
},
Expand Down
2 changes: 1 addition & 1 deletion ext/ffi/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ deno_core::extension!(deno_ffi,
op_ffi_unsafe_callback_ref,
op_ffi_get_turbocall_target,
],
esm = [ "00_ffi.js" ],
lazy_loaded_esm = [ "00_ffi.js" ],
options = {
deno_rt_native_addon_loader: Option<DenoRtNativeAddonLoaderRc>,
},
Expand Down
2 changes: 1 addition & 1 deletion ext/kv/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ deno_core::extension!(deno_kv,
op_kv_watch<DBH>,
op_kv_watch_next,
],
esm = [ "01_db.ts" ],
lazy_loaded_esm = [ "01_db.ts" ],
options = {
handler: DBH,
config: KvConfig,
Expand Down
3 changes: 2 additions & 1 deletion ext/os/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,8 @@ deno_core::extension!(
ops::signal::op_signal_unbind,
ops::signal::op_signal_poll,
],
esm = ["30_os.js", "40_signals.js"],
esm = ["30_os.js"],
lazy_loaded_esm = ["40_signals.js"],
options = {
exit_code: Option<ExitCode>,
},
Expand Down
82 changes: 59 additions & 23 deletions runtime/js/90_deno_ns.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import {
import * as timers from "ext:deno_web/02_timers.js";
import * as httpClient from "ext:deno_fetch/22_http_client.js";
import * as console from "ext:deno_web/01_console.js";
import * as ffi from "ext:deno_ffi/00_ffi.js";
import * as net from "ext:deno_net/01_net.js";
import * as tls from "ext:deno_net/02_tls.js";
import * as serve from "ext:deno_http/00_serve.ts";
Expand All @@ -23,12 +22,8 @@ import * as permissions from "ext:runtime/10_permissions.js";
import * as io from "ext:deno_io/12_io.js";
import * as fs from "ext:deno_fs/30_fs.js";
import * as os from "ext:deno_os/30_os.js";
import * as fsEvents from "ext:runtime/40_fs_events.js";
import * as process from "ext:deno_process/40_process.js";
import * as signals from "ext:deno_os/40_signals.js";
import * as tty from "ext:runtime/40_tty.js";
import * as kv from "ext:deno_kv/01_db.ts";
import * as cron from "ext:deno_cron/01_cron.ts";
import * as webgpuSurface from "ext:deno_webgpu/02_surface.js";
import * as telemetry from "ext:deno_telemetry/telemetry.ts";
import { unstableIds } from "ext:deno_features/flags.js";
Expand All @@ -37,6 +32,11 @@ import { bundle } from "ext:deno_bundle_runtime/bundle.ts";

const { ObjectDefineProperties, Float64Array } = primordials;

const loadFfi = core.createLazyLoader("ext:deno_ffi/00_ffi.js");
const loadFsEvents = core.createLazyLoader("ext:runtime/40_fs_events.js");
const loadSignals = core.createLazyLoader("ext:deno_os/40_signals.js");
const loadKv = core.createLazyLoader("ext:deno_kv/01_db.ts");
const loadCron = core.createLazyLoader("ext:deno_cron/01_cron.ts");
const loadQuic = core.createLazyLoader("ext:deno_net/03_quic.js");
const loadWebTransport = core.createLazyLoader("ext:deno_web/webtransport.js");

Expand All @@ -55,7 +55,7 @@ const denoNs = {
readTextFileSync: fs.readTextFileSync,
readFile: fs.readFile,
readFileSync: fs.readFileSync,
watchFs: fsEvents.watchFs,
// watchFs is lazy-loaded below via ObjectDefineProperties
chmodSync: fs.chmodSync,
chmod: fs.chmod,
chown: fs.chown,
Expand Down Expand Up @@ -145,8 +145,7 @@ const denoNs = {
utime: fs.utime,
utimeSync: fs.utimeSync,
kill: process.kill,
addSignalListener: signals.addSignalListener,
removeSignalListener: signals.removeSignalListener,
// signals are lazy-loaded below via ObjectDefineProperties
refTimer: timers.refTimer,
unrefTimer: timers.unrefTimer,
osRelease: os.osRelease,
Expand All @@ -162,17 +161,46 @@ const denoNs = {
spawn: process.spawn,
spawnAndWait: process.spawnAndWait,
spawnAndWaitSync: process.spawnAndWaitSync,
dlopen: ffi.dlopen,
UnsafeCallback: ffi.UnsafeCallback,
UnsafePointer: ffi.UnsafePointer,
UnsafePointerView: ffi.UnsafePointerView,
UnsafeFnPointer: ffi.UnsafeFnPointer,
// FFI is lazy-loaded below via ObjectDefineProperties
umask: fs.umask,
HttpClient: httpClient.HttpClient,
createHttpClient: httpClient.createHttpClient,
telemetry: telemetry.telemetry,
};

// Lazy-loaded properties on denoNs.
ObjectDefineProperties(denoNs, {
watchFs: core.propWritableLazyLoaded(
(fsEvents) => fsEvents.watchFs,
loadFsEvents,
),
dlopen: core.propWritableLazyLoaded((ffi) => ffi.dlopen, loadFfi),
UnsafeCallback: core.propWritableLazyLoaded(
(ffi) => ffi.UnsafeCallback,
loadFfi,
),
UnsafePointer: core.propWritableLazyLoaded(
(ffi) => ffi.UnsafePointer,
loadFfi,
),
UnsafePointerView: core.propWritableLazyLoaded(
(ffi) => ffi.UnsafePointerView,
loadFfi,
),
UnsafeFnPointer: core.propWritableLazyLoaded(
(ffi) => ffi.UnsafeFnPointer,
loadFfi,
),
addSignalListener: core.propWritableLazyLoaded(
(signals) => signals.addSignalListener,
loadSignals,
),
removeSignalListener: core.propWritableLazyLoaded(
(signals) => signals.removeSignalListener,
loadSignals,
),
});

const denoNsUnstableById = { __proto__: null };

denoNsUnstableById[unstableIds.bundle] = {
Expand All @@ -181,17 +209,25 @@ denoNsUnstableById[unstableIds.bundle] = {

// denoNsUnstableById[unstableIds.broadcastChannel] = { __proto__: null }

denoNsUnstableById[unstableIds.cron] = {
cron: cron.cron,
};
denoNsUnstableById[unstableIds.cron] = {};
ObjectDefineProperties(denoNsUnstableById[unstableIds.cron], {
cron: core.propWritableLazyLoaded((cron) => cron.cron, loadCron),
});

denoNsUnstableById[unstableIds.kv] = {
openKv: kv.openKv,
AtomicOperation: kv.AtomicOperation,
Kv: kv.Kv,
KvU64: kv.KvU64,
KvListIterator: kv.KvListIterator,
};
denoNsUnstableById[unstableIds.kv] = {};
ObjectDefineProperties(denoNsUnstableById[unstableIds.kv], {
openKv: core.propWritableLazyLoaded((kv) => kv.openKv, loadKv),
AtomicOperation: core.propWritableLazyLoaded(
(kv) => kv.AtomicOperation,
loadKv,
),
Kv: core.propWritableLazyLoaded((kv) => kv.Kv, loadKv),
KvU64: core.propWritableLazyLoaded((kv) => kv.KvU64, loadKv),
KvListIterator: core.propWritableLazyLoaded(
(kv) => kv.KvListIterator,
loadKv,
),
});

denoNsUnstableById[unstableIds.net] = {
listenDatagram: net.createListenDatagram(
Expand Down
5 changes: 4 additions & 1 deletion runtime/shared.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ extension!(runtime,
"06_util.js",
"10_permissions.js",
"11_workers.js",
"40_fs_events.js",
"40_tty.js",
"41_prompt.js",
"90_deno_ns.js",
"98_global_scope_shared.js",
"98_global_scope_window.js",
"98_global_scope_worker.js"
],
lazy_loaded_esm = [
dir "js",
"40_fs_events.js",
],
customizer = |ext: &mut Extension| {
#[cfg(not(feature = "exclude_runtime_main_js"))]
{
Expand Down
Loading