diff options
Diffstat (limited to 'node_modules/async/internal/wrapAsync.js')
-rw-r--r-- | node_modules/async/internal/wrapAsync.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/node_modules/async/internal/wrapAsync.js b/node_modules/async/internal/wrapAsync.js new file mode 100644 index 000000000..862dc90f2 --- /dev/null +++ b/node_modules/async/internal/wrapAsync.js @@ -0,0 +1,41 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isAsync = exports.supportsAsync = undefined; + +var _identity = require('lodash/identity'); + +var _identity2 = _interopRequireDefault(_identity); + +var _asyncify = require('../asyncify'); + +var _asyncify2 = _interopRequireDefault(_asyncify); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var supportsSymbol = typeof Symbol === 'function'; + +function supportsAsync() { + var supported; + try { + /* eslint no-eval: 0 */ + supported = isAsync(eval('(async function () {})')); + } catch (e) { + supported = false; + } + return supported; +} + +function isAsync(fn) { + return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction'; +} + +function wrapAsync(asyncFn) { + return isAsync(asyncFn) ? (0, _asyncify2.default)(asyncFn) : asyncFn; +} + +exports.default = supportsAsync() ? wrapAsync : _identity2.default; +exports.supportsAsync = supportsAsync; +exports.isAsync = isAsync;
\ No newline at end of file |