UNPKG

@graphql-mesh/utils

Version:
47 lines (46 loc) 1.62 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isDisposable = isDisposable; exports.dispose = dispose; exports.createDisposable = createDisposable; exports.createAsyncDisposable = createAsyncDisposable; exports.makeDisposable = makeDisposable; exports.makeAsyncDisposable = makeAsyncDisposable; const disposablestack_1 = require("@whatwg-node/disposablestack"); function isDisposable(obj) { return obj?.[disposablestack_1.DisposableSymbols.dispose] || obj?.[disposablestack_1.DisposableSymbols.asyncDispose]; } function dispose(disposable) { if (disposablestack_1.DisposableSymbols.dispose in disposable) { return disposable[disposablestack_1.DisposableSymbols.dispose](); } if (disposablestack_1.DisposableSymbols.asyncDispose in disposable) { return disposable[disposablestack_1.DisposableSymbols.asyncDispose](); } } function createDisposable(disposeFn) { return { [disposablestack_1.DisposableSymbols.dispose]: disposeFn, }; } function createAsyncDisposable(disposeFn) { return { [disposablestack_1.DisposableSymbols.asyncDispose]: disposeFn, }; } function makeDisposable(obj, disposeFn) { Object.defineProperty(obj, disposablestack_1.DisposableSymbols.dispose, { value: disposeFn, configurable: true, writable: true, }); return obj; } function makeAsyncDisposable(obj, disposeFn) { Object.defineProperty(obj, disposablestack_1.DisposableSymbols.asyncDispose, { value: disposeFn, configurable: true, writable: true, }); return obj; }