fix(ext/node): add stub for AsyncResource#asyncId() (#23372)

Ref https://github.com/denoland/deno/issues/23263
This commit is contained in:
Divy Srivastava 2024-04-15 18:24:42 +05:30 committed by GitHub
parent 1835b4f061
commit f36a8951a4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 0 deletions

View File

@ -10,6 +10,7 @@
import { core } from "ext:core/mod.js";
import { op_node_is_promise_rejected } from "ext:core/ops";
import { validateFunction } from "ext:deno_node/internal/validators.mjs";
import { newAsyncId } from "ext:deno_node/internal/async_hooks.ts";
function assert(cond: boolean) {
if (!cond) throw new Error("Assertion failed");
@ -180,9 +181,16 @@ class AsyncContextFrame {
export class AsyncResource {
frame: AsyncContextFrame;
type: string;
#asyncId: number;
constructor(type: string) {
this.type = type;
this.frame = AsyncContextFrame.current();
this.#asyncId = newAsyncId();
}
asyncId() {
return this.#asyncId;
}
runInAsyncScope(

View File

@ -125,3 +125,8 @@ Deno.test(async function bind() {
assertEquals(await deferred.promise, null);
});
Deno.test(function asyncResourceStub() {
const resource = new AsyncResource("dbquery");
assert(typeof resource.asyncId() === "number");
});