diff options
author | Asher Gomez <ashersaupingomez@gmail.com> | 2023-01-25 08:42:44 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-25 00:42:44 +0100 |
commit | 900929f65c94585de713cb8864aacb5fdc065759 (patch) | |
tree | adbfca78424c9cdb9f81d7a1d6913e58777afb62 /runtime/js/10_permissions.js | |
parent | f14ea3d4d43eb579674f508b6a534429cc9191d6 (diff) |
feat: Add sync APIs for "Deno.permissions" (#17019)
This commit adds sync versions of async APIs to "Deno.permissions"
namespace.
Following APIs were added:
- "Deno.permissions.querySync"
- "Deno.permissions.requestSync"
- "Deno.permissions.revokeSync"
Diffstat (limited to 'runtime/js/10_permissions.js')
-rw-r--r-- | runtime/js/10_permissions.js | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/runtime/js/10_permissions.js b/runtime/js/10_permissions.js index c2ce6cef0..7c4af8ed0 100644 --- a/runtime/js/10_permissions.js +++ b/runtime/js/10_permissions.js @@ -183,48 +183,66 @@ } query(desc) { + try { + return PromiseResolve(this.querySync(desc)); + } catch (error) { + return PromiseReject(error); + } + } + + querySync(desc) { if (!isValidDescriptor(desc)) { - return PromiseReject( - new TypeError( - `The provided value "${desc?.name}" is not a valid permission name.`, - ), + throw new TypeError( + `The provided value "${desc?.name}" is not a valid permission name.`, ); } formDescriptor(desc); const state = opQuery(desc); - return PromiseResolve(cache(desc, state)); + return cache(desc, state); } revoke(desc) { + try { + return PromiseResolve(this.revokeSync(desc)); + } catch (error) { + return PromiseReject(error); + } + } + + revokeSync(desc) { if (!isValidDescriptor(desc)) { - return PromiseReject( - new TypeError( - `The provided value "${desc?.name}" is not a valid permission name.`, - ), + throw new TypeError( + `The provided value "${desc?.name}" is not a valid permission name.`, ); } formDescriptor(desc); const state = opRevoke(desc); - return PromiseResolve(cache(desc, state)); + return cache(desc, state); } request(desc) { + try { + return PromiseResolve(this.requestSync(desc)); + } catch (error) { + return PromiseReject(error); + } + } + + requestSync(desc) { if (!isValidDescriptor(desc)) { - return PromiseReject( - new TypeError( - `The provided value "${desc?.name}" is not a valid permission name.`, - ), + throw new TypeError( + `The provided value "${desc?.name}" is not a valid permission name.`, ); } formDescriptor(desc); const state = opRequest(desc); - return PromiseResolve(cache(desc, state)); + return cache(desc, state); } } |