UNPKG

606 BJavaScriptView Raw
1/**
2 * Rule: no-nesting
3 * Avoid nesting your promises.
4 */
5
6'use strict'
7
8const getDocsUrl = require('./lib/get-docs-url')
9const hasPromiseCallback = require('./lib/has-promise-callback')
10const isInsidePromise = require('./lib/is-inside-promise')
11
12module.exports = {
13 meta: {
14 docs: {
15 url: getDocsUrl('no-nesting')
16 }
17 },
18 create(context) {
19 return {
20 CallExpression(node) {
21 if (!hasPromiseCallback(node)) return
22 if (context.getAncestors().some(isInsidePromise)) {
23 context.report({ node, message: 'Avoid nesting promises.' })
24 }
25 }
26 }
27 }
28}