Files
NapCatQQ/.pnpm-store/v3/files/68/a85d93039ca0d25ab6605fa9ed6ea7f0bec42a607caf1c4df5e914641a4624d6196ae5769bc44d7a59a95a33e8f7d26558a931b3f1072f52e933a3287331b1
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

75 lines
2.0 KiB
Plaintext

'use strict'
const getDocsUrl = require('./lib/get-docs-url')
const {
isPromiseConstructorWithInlineExecutor,
} = require('./lib/is-promise-constructor')
module.exports = {
meta: {
type: 'suggestion',
docs: {
description:
'Enforce consistent param names and ordering when creating new promises.',
url: getDocsUrl('param-names'),
},
schema: [
{
type: 'object',
properties: {
resolvePattern: { type: 'string' },
rejectPattern: { type: 'string' },
},
additionalProperties: false,
},
],
messages: {
resolveParamNames:
'Promise constructor parameters must be named to match "{{ resolvePattern }}"',
rejectParamNames:
'Promise constructor parameters must be named to match "{{ rejectPattern }}"',
},
},
create(context) {
const options = context.options[0] || {}
const resolvePattern = new RegExp(
options.resolvePattern || '^_?resolve$',
'u',
)
const rejectPattern = new RegExp(options.rejectPattern || '^_?reject$', 'u')
return {
NewExpression(node) {
if (isPromiseConstructorWithInlineExecutor(node)) {
const params = node.arguments[0].params
if (!params || !params.length) {
return
}
const resolveParamName = params[0] && params[0].name
if (resolveParamName && !resolvePattern.test(resolveParamName)) {
context.report({
node: params[0],
messageId: 'resolveParamNames',
data: {
resolvePattern: resolvePattern.source,
},
})
}
const rejectParamName = params[1] && params[1].name
if (rejectParamName && !rejectPattern.test(rejectParamName)) {
context.report({
node: params[1],
messageId: 'rejectParamNames',
data: {
rejectPattern: rejectPattern.source,
},
})
}
}
},
}
},
}