'use strict'; 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;