diff options
Diffstat (limited to 'js/permissions.ts')
-rw-r--r-- | js/permissions.ts | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/js/permissions.ts b/js/permissions.ts index 6acb80b1f..f4fe6826f 100644 --- a/js/permissions.ts +++ b/js/permissions.ts @@ -5,7 +5,7 @@ import * as dispatch from "./dispatch"; import { assert } from "./util"; /** Permissions as granted by the caller */ -export type Permissions = { +export interface Permissions { read: boolean; write: boolean; net: boolean; @@ -13,10 +13,27 @@ export type Permissions = { run: boolean; // NOTE: Keep in sync with src/permissions.rs -}; +} export type Permission = keyof Permissions; +function getReq(): [flatbuffers.Builder, msg.Any, flatbuffers.Offset] { + const builder = flatbuffers.createBuilder(); + msg.Permissions.startPermissions(builder); + const inner = msg.Permissions.endPermissions(builder); + return [builder, msg.Any.Permissions, inner]; +} + +function createPermissions(inner: msg.PermissionsRes): Permissions { + return { + read: inner.read(), + write: inner.write(), + net: inner.net(), + env: inner.env(), + run: inner.run() + }; +} + /** Inspect granted permissions for the current program. * * if (Deno.permissions().read) { @@ -33,6 +50,17 @@ export function permissions(): Permissions { return createPermissions(res); } +function revokeReq( + permission: string +): [flatbuffers.Builder, msg.Any, flatbuffers.Offset] { + const builder = flatbuffers.createBuilder(); + const permission_ = builder.createString(permission); + msg.PermissionRevoke.startPermissionRevoke(builder); + msg.PermissionRevoke.addPermission(builder, permission_); + const inner = msg.PermissionRevoke.endPermissionRevoke(builder); + return [builder, msg.Any.PermissionRevoke, inner]; +} + /** Revoke a permission. When the permission was already revoked nothing changes * * if (Deno.permissions().read) { @@ -44,31 +72,3 @@ export function permissions(): Permissions { export function revokePermission(permission: Permission): void { dispatch.sendSync(...revokeReq(permission)); } - -function createPermissions(inner: msg.PermissionsRes): Permissions { - return { - read: inner.read(), - write: inner.write(), - net: inner.net(), - env: inner.env(), - run: inner.run() - }; -} - -function getReq(): [flatbuffers.Builder, msg.Any, flatbuffers.Offset] { - const builder = flatbuffers.createBuilder(); - msg.Permissions.startPermissions(builder); - const inner = msg.Permissions.endPermissions(builder); - return [builder, msg.Any.Permissions, inner]; -} - -function revokeReq( - permission: string -): [flatbuffers.Builder, msg.Any, flatbuffers.Offset] { - const builder = flatbuffers.createBuilder(); - const permission_ = builder.createString(permission); - msg.PermissionRevoke.startPermissionRevoke(builder); - msg.PermissionRevoke.addPermission(builder, permission_); - const inner = msg.PermissionRevoke.endPermissionRevoke(builder); - return [builder, msg.Any.PermissionRevoke, inner]; -} |