; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
exports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined; | |
var _asyncify = require('../asyncify.js'); | |
var _asyncify2 = _interopRequireDefault(_asyncify); | |
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | |
function isAsync(fn) { | |
return fn[Symbol.toStringTag] === 'AsyncFunction'; | |
} | |
function isAsyncGenerator(fn) { | |
return fn[Symbol.toStringTag] === 'AsyncGenerator'; | |
} | |
function isAsyncIterable(obj) { | |
return typeof obj[Symbol.asyncIterator] === 'function'; | |
} | |
function wrapAsync(asyncFn) { | |
if (typeof asyncFn !== 'function') throw new Error('expected a function'); | |
return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn; | |
} | |
exports.default = wrapAsync; | |
exports.isAsync = isAsync; | |
exports.isAsyncGenerator = isAsyncGenerator; | |
exports.isAsyncIterable = isAsyncIterable; |