diff options
author | Asher Gomez <ashersaupingomez@gmail.com> | 2023-01-04 07:50:14 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-03 21:50:14 +0100 |
commit | 1b001d1b180535ce247b5ebd9d38435384ddf787 (patch) | |
tree | 4b486dcccbfc8e28efbe772c5bbdba0d4341aac5 /runtime/js/10_permissions.js | |
parent | deed07e1d9f103d9829164f03436bd4852ee42e5 (diff) |
fix(permissions): process `URL` in `Deno.FfiPermissionDescriptor.path` for `revoke()` and `request()` (#17094)
Previously, `Deno.permissions.[revoke|request]()` wouldn't correctly
process the `path: URL` when `name` was `ffi`. This change fixes that
behaviour and adds a new function, `formDescriptor()`, to ensure `URL`
arguments are consistently handled across
`Deno.permissions.[query|revoke|request]()`.
Diffstat (limited to 'runtime/js/10_permissions.js')
-rw-r--r-- | runtime/js/10_permissions.js | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/runtime/js/10_permissions.js b/runtime/js/10_permissions.js index d6ab33dcf..c2ce6cef0 100644 --- a/runtime/js/10_permissions.js +++ b/runtime/js/10_permissions.js @@ -161,6 +161,20 @@ ArrayPrototypeIncludes(permissionNames, desc.name); } + /** + * @param {Deno.PermissionDescriptor} desc + * @returns {desc is Deno.PermissionDescriptor} + */ + function formDescriptor(desc) { + if ( + desc.name === "read" || desc.name === "write" || desc.name === "ffi" + ) { + desc.path = pathFromURL(desc.path); + } else if (desc.name === "run") { + desc.command = pathFromURL(desc.command); + } + } + class Permissions { constructor(key = null) { if (key != illegalConstructorKey) { @@ -177,13 +191,7 @@ ); } - if ( - desc.name === "read" || desc.name === "write" || desc.name === "ffi" - ) { - desc.path = pathFromURL(desc.path); - } else if (desc.name === "run") { - desc.command = pathFromURL(desc.command); - } + formDescriptor(desc); const state = opQuery(desc); return PromiseResolve(cache(desc, state)); @@ -198,11 +206,7 @@ ); } - if (desc.name === "read" || desc.name === "write") { - desc.path = pathFromURL(desc.path); - } else if (desc.name === "run") { - desc.command = pathFromURL(desc.command); - } + formDescriptor(desc); const state = opRevoke(desc); return PromiseResolve(cache(desc, state)); @@ -217,11 +221,7 @@ ); } - if (desc.name === "read" || desc.name === "write") { - desc.path = pathFromURL(desc.path); - } else if (desc.name === "run") { - desc.command = pathFromURL(desc.command); - } + formDescriptor(desc); const state = opRequest(desc); return PromiseResolve(cache(desc, state)); |