Skip to main content
interface Deno.PermissionOptionsObject

A set of options which can define the permissions within a test or worker context at a highly specific level.

Properties

optional
env: "inherit" | boolean | string[]

Specifies if the env permission should be requested or revoked. If set to "inherit", the current env permission will be inherited. If set to true, the global env permission will be requested. If set to false, the global env permission will be revoked.

Defaults to false.

optional
sys: "inherit" | boolean | string[]

Specifies if the sys permission should be requested or revoked. If set to "inherit", the current sys permission will be inherited. If set to true, the global sys permission will be requested. If set to false, the global sys permission will be revoked.

Defaults to false.

optional
hrtime: "inherit" | boolean

Specifies if the hrtime permission should be requested or revoked. If set to "inherit", the current hrtime permission will be inherited. If set to true, the global hrtime permission will be requested. If set to false, the global hrtime permission will be revoked.

Defaults to false.

optional
net: "inherit" | boolean | string[]

Specifies if the net permission should be requested or revoked. if set to "inherit", the current net permission will be inherited. if set to true, the global net permission will be requested. if set to false, the global net permission will be revoked. if set to string[], the net permission will be requested with the specified host strings with the format "<host>[:<port>].

Defaults to false.

Examples:

import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

Deno.test({
  name: "inherit",
  permissions: {
    net: "inherit",
  },
  async fn() {
    const status = await Deno.permissions.query({ name: "net" })
    assertEquals(status.state, "granted");
  },
});
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

Deno.test({
  name: "true",
  permissions: {
    net: true,
  },
  async fn() {
    const status = await Deno.permissions.query({ name: "net" });
    assertEquals(status.state, "granted");
  },
});
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

Deno.test({
  name: "false",
  permissions: {
    net: false,
  },
  async fn() {
    const status = await Deno.permissions.query({ name: "net" });
    assertEquals(status.state, "denied");
  },
});
import { assertEquals } from "https://deno.land/std/testing/asserts.ts";

Deno.test({
  name: "localhost:8080",
  permissions: {
    net: ["localhost:8080"],
  },
  async fn() {
    const status = await Deno.permissions.query({ name: "net", host: "localhost:8080" });
    assertEquals(status.state, "granted");
  },
});
optional
ffi: "inherit" | boolean | Array<string | URL>

Specifies if the ffi permission should be requested or revoked. If set to "inherit", the current ffi permission will be inherited. If set to true, the global ffi permission will be requested. If set to false, the global ffi permission will be revoked.

Defaults to false.

optional
read: "inherit" | boolean | Array<string | URL>

Specifies if the read permission should be requested or revoked. If set to "inherit", the current read permission will be inherited. If set to true, the global read permission will be requested. If set to false, the global read permission will be revoked. If set to Array<string | URL>, the read permission will be requested with the specified file paths.

Defaults to false.

optional
run: "inherit" | boolean | Array<string | URL>

Specifies if the run permission should be requested or revoked. If set to "inherit", the current run permission will be inherited. If set to true, the global run permission will be requested. If set to false, the global run permission will be revoked.

Defaults to false.

optional
write: "inherit" | boolean | Array<string | URL>

Specifies if the write permission should be requested or revoked. If set to "inherit", the current write permission will be inherited. If set to true, the global write permission will be requested. If set to false, the global write permission will be revoked. If set to Array<string | URL>, the write permission will be requested with the specified file paths.

Defaults to false.