1'use strict'; 2 3Object.defineProperty(exports, "__esModule", { 4 value: true 5}); 6exports.isAsyncIterable = exports.isAsyncGenerator = exports.isAsync = undefined; 7 8var _asyncify = require('../asyncify.js'); 9 10var _asyncify2 = _interopRequireDefault(_asyncify); 11 12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 13 14function isAsync(fn) { 15 return fn[Symbol.toStringTag] === 'AsyncFunction'; 16} 17 18function isAsyncGenerator(fn) { 19 return fn[Symbol.toStringTag] === 'AsyncGenerator'; 20} 21 22function isAsyncIterable(obj) { 23 return typeof obj[Symbol.asyncIterator] === 'function'; 24} 25 26function wrapAsync(asyncFn) { 27 if (typeof asyncFn !== 'function') throw new Error('expected a function'); 28 return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn; 29} 30 31exports.default = wrapAsync; 32exports.isAsync = isAsync; 33exports.isAsyncGenerator = isAsyncGenerator; 34exports.isAsyncIterable = isAsyncIterable;