UNPKG

ts-raii-scope

Version:
27 lines (26 loc) 868 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function isPromise(obj) { return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; } exports.isPromise = isPromise; function isDisposable(resource) { return resource && typeof resource.dispose === 'function'; } exports.isDisposable = isDisposable; function safeDisposeResource(resource) { try { const result = resource.dispose(); if (isPromise(result)) { return result.catch(error => { console.warn(`Resource's dispose() promise rejected. Reason:`); console.info(error); }); } } catch (error) { console.warn(`Resource's dispose() throws error`); console.info(error); } } exports.safeDisposeResource = safeDisposeResource;