summaryrefslogtreecommitdiff
path: root/js/permissions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'js/permissions.ts')
-rw-r--r--js/permissions.ts60
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];
-}