summaryrefslogtreecommitdiff
path: root/node_modules/blake3-wasm/dist/base/disposable.js
diff options
context:
space:
mode:
authorakiyamn2023-09-24 23:22:21 +1000
committerakiyamn2023-09-24 23:22:21 +1000
commit4e87195739f2a5d9a05451b48773c8afdc680765 (patch)
tree9cba501844a4a11dcbdffc4050ed8189561c55ed /node_modules/blake3-wasm/dist/base/disposable.js
downloadprice-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.tar.gz
price-tracker-worker-4e87195739f2a5d9a05451b48773c8afdc680765.zip
Initial commit (by create-cloudflare CLI)
Diffstat (limited to 'node_modules/blake3-wasm/dist/base/disposable.js')
-rw-r--r--node_modules/blake3-wasm/dist/base/disposable.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/node_modules/blake3-wasm/dist/base/disposable.js b/node_modules/blake3-wasm/dist/base/disposable.js
new file mode 100644
index 0000000..4b295c1
--- /dev/null
+++ b/node_modules/blake3-wasm/dist/base/disposable.js
@@ -0,0 +1,29 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const isPromiseLike = (value) => typeof value === 'object' && !!value && 'then' in value;
+/**
+ * A helper function that calls `.dispose()` on the {@link IDisposable} when
+ * the given function (or promise returned by the function) returns.
+ */
+exports.using = (disposable, fn) => {
+ let ret;
+ try {
+ ret = fn(disposable);
+ }
+ catch (e) {
+ disposable.dispose();
+ throw e;
+ }
+ if (!isPromiseLike(ret)) {
+ disposable.dispose();
+ return ret;
+ }
+ return ret.then(value => {
+ disposable.dispose();
+ return value;
+ }, err => {
+ disposable.dispose();
+ throw err;
+ });
+};
+//# sourceMappingURL=disposable.js.map \ No newline at end of file