Skip to content

Commit fe922f0

Browse files
marco-ippolitorichardlau
authored andcommitted
timers: export timers.promises
PR-URL: #51246 Fixes: #51237 Reviewed-By: Raz Luvaton <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Anatoli Papirovski <[email protected]> Reviewed-By: Chemi Atlow <[email protected]>
1 parent 2270285 commit fe922f0

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

lib/timers.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
const {
2525
MathTrunc,
2626
ObjectDefineProperty,
27+
ObjectDefineProperties,
2728
SymbolDispose,
2829
SymbolToPrimitive,
2930
} = primordials;
@@ -62,6 +63,7 @@ let debug = require('internal/util/debuglog').debuglog('timer', (fn) => {
6263
const { validateFunction } = require('internal/validators');
6364

6465
let timersPromises;
66+
let timers;
6567

6668
const {
6769
destroyHooksExist,
@@ -347,7 +349,7 @@ Immediate.prototype[SymbolDispose] = function() {
347349
clearImmediate(this);
348350
};
349351

350-
module.exports = {
352+
module.exports = timers = {
351353
setTimeout,
352354
clearTimeout,
353355
setImmediate,
@@ -372,3 +374,15 @@ module.exports = {
372374
'timers.enroll() is deprecated. Please use setTimeout instead.',
373375
'DEP0095'),
374376
};
377+
378+
ObjectDefineProperties(timers, {
379+
promises: {
380+
__proto__: null,
381+
configurable: true,
382+
enumerable: true,
383+
get() {
384+
timersPromises ??= require('timers/promises');
385+
return timersPromises;
386+
},
387+
},
388+
});

test/parallel/test-timers-promises.js

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
5+
const timer = require('node:timers');
6+
const timerPromises = require('node:timers/promises');
7+
const assert = require('assert');
8+
const { test } = require('node:test');
9+
10+
test('(node:timers/promises) is equal to (node:timers).promises', common.mustCall(() => {
11+
assert.deepStrictEqual(timerPromises, timer.promises);
12+
}));

0 commit comments

Comments
 (0)