1/** 2 * @fileoverview disallow using an async function as a Promise executor 3 * @author Teddy Katz 4 */ 5"use strict"; 6 7//------------------------------------------------------------------------------ 8// Rule Definition 9//------------------------------------------------------------------------------ 10 11module.exports = { 12 meta: { 13 type: "problem", 14 15 docs: { 16 description: "disallow using an async function as a Promise executor", 17 category: "Possible Errors", 18 recommended: true, 19 url: "https://eslint.org/docs/rules/no-async-promise-executor" 20 }, 21 22 fixable: null, 23 schema: [], 24 messages: { 25 async: "Promise executor functions should not be async." 26 } 27 }, 28 29 create(context) { 30 return { 31 "NewExpression[callee.name='Promise'][arguments.0.async=true]"(node) { 32 context.report({ 33 node: context.getSourceCode().getFirstToken(node.arguments[0], token => token.value === "async"), 34 messageId: "async" 35 }); 36 } 37 }; 38 } 39}; 40