UNPKG

631 BJavaScriptView Raw
1'use strict'
2
3const isInsidePromise = require('./is-inside-promise')
4
5function isInsideCallback(node) {
6 const isCallExpression =
7 node.type === 'FunctionExpression' ||
8 node.type === 'ArrowFunctionExpression' ||
9 node.type === 'FunctionDeclaration' // this may be controversial
10
11 // it's totally fine to use promises inside promises
12 if (isInsidePromise(node)) return
13
14 const name = node.params && node.params[0] && node.params[0].name
15 const firstArgIsError = name === 'err' || name === 'error'
16 const isInACallback = isCallExpression && firstArgIsError
17 return isInACallback
18}
19
20module.exports = isInsideCallback