summaryrefslogtreecommitdiff
path: root/std/node
diff options
context:
space:
mode:
authorLiam Murphy <43807659+Liamolucko@users.noreply.github.com>2020-12-06 02:16:07 +1100
committerGitHub <noreply@github.com>2020-12-05 16:16:07 +0100
commit362be01abe572d68b34e31b361addb860841115b (patch)
treed60ba3cfac9bfd05a912c4934de84d065ac48a77 /std/node
parentd72310f139661263fdb4d77c3e311130ac23d971 (diff)
feat(std/node): Add "setImmediate" and "clearImmediate" to global scope (#8566)
Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'std/node')
-rw-r--r--std/node/global.d.ts5
-rw-r--r--std/node/global.ts15
-rw-r--r--std/node/global_test.ts19
3 files changed, 39 insertions, 0 deletions
diff --git a/std/node/global.d.ts b/std/node/global.d.ts
index b02a682c6..6e0378b9e 100644
--- a/std/node/global.d.ts
+++ b/std/node/global.d.ts
@@ -1,6 +1,7 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
import { process as processModule } from "./process.ts";
import { Buffer as bufferModule } from "./buffer.ts";
+import timers from "./timers.ts";
// d.ts files allow us to declare Buffer as a value and as a type
// type something = Buffer | something_else; is quite common
@@ -8,6 +9,8 @@ import { Buffer as bufferModule } from "./buffer.ts";
type GlobalType = {
process: typeof processModule;
Buffer: typeof bufferModule;
+ setImmediate: typeof timers.setImmediate;
+ clearImmediate: typeof timers.clearImmediate;
};
declare global {
@@ -23,6 +26,8 @@ declare global {
var process: typeof processModule;
var Buffer: typeof bufferModule;
type Buffer = bufferModule;
+ var setImmediate: typeof timers.setImmediate;
+ var clearImmediate: typeof timers.clearImmediate;
}
export {};
diff --git a/std/node/global.ts b/std/node/global.ts
index d72760089..585ba1490 100644
--- a/std/node/global.ts
+++ b/std/node/global.ts
@@ -2,6 +2,7 @@
/// <reference path="./global.d.ts" />
import { process as processModule } from "./process.ts";
import { Buffer as bufferModule } from "./buffer.ts";
+import timers from "./timers.ts";
Object.defineProperty(globalThis, "global", {
value: globalThis,
@@ -24,4 +25,18 @@ Object.defineProperty(globalThis, "Buffer", {
configurable: true,
});
+Object.defineProperty(globalThis, "setImmediate", {
+ value: timers.setImmediate,
+ enumerable: true,
+ writable: true,
+ configurable: true,
+});
+
+Object.defineProperty(globalThis, "clearImmediate", {
+ value: timers.clearImmediate,
+ enumerable: true,
+ writable: true,
+ configurable: true,
+});
+
export {};
diff --git a/std/node/global_test.ts b/std/node/global_test.ts
index 9ce0b2132..60c997daf 100644
--- a/std/node/global_test.ts
+++ b/std/node/global_test.ts
@@ -2,6 +2,7 @@ import "./global.ts";
import { assert, assertStrictEquals } from "../testing/asserts.ts";
import { Buffer as BufferModule } from "./buffer.ts";
import processModule from "./process.ts";
+import timers from "./timers.ts";
// Definitions for this are quite delicate
// This ensures modifications to the global namespace don't break on TypeScript
@@ -50,3 +51,21 @@ Deno.test("process is correctly defined", () => {
assertStrictEquals(window.process, processModule);
assert(window.process.arch);
});
+
+Deno.test("setImmediate is correctly defined", () => {
+ // deno-lint-ignore no-undef
+ assertStrictEquals(setImmediate, timers.setImmediate);
+ // deno-lint-ignore no-undef
+ assertStrictEquals(global.setImmediate, timers.setImmediate);
+ assertStrictEquals(globalThis.setImmediate, timers.setImmediate);
+ assertStrictEquals(window.setImmediate, timers.setImmediate);
+});
+
+Deno.test("clearImmediate is correctly defined", () => {
+ // deno-lint-ignore no-undef
+ assertStrictEquals(clearImmediate, timers.clearImmediate);
+ // deno-lint-ignore no-undef
+ assertStrictEquals(global.clearImmediate, timers.clearImmediate);
+ assertStrictEquals(globalThis.clearImmediate, timers.clearImmediate);
+ assertStrictEquals(window.clearImmediate, timers.clearImmediate);
+});