Помоги сделать GitVerse лучше — пройди опрос
/
vscode-dts-cancellation.ts 
39 строк · 1.2 Кб
1
/*---------------------------------------------------------------------------------------------
2
 *  Copyright (c) Microsoft Corporation. All rights reserved.
3
 *  Licensed under the MIT License. See License.txt in the project root for license information.
4
 *--------------------------------------------------------------------------------------------*/
5

6
import * as eslint from 'eslint';
7
import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/utils';
8

9
export = new class ApiProviderNaming implements eslint.Rule.RuleModule {
10

11
	readonly meta: eslint.Rule.RuleMetaData = {
12
		messages: {
13
			noToken: 'Function lacks a cancellation token, preferable as last argument',
14
		},
15
		schema: false,
16
	};
17

18
	create(context: eslint.Rule.RuleContext): eslint.Rule.RuleListener {
19

20
		return {
21
			['TSInterfaceDeclaration[id.name=/.+Provider/] TSMethodSignature[key.name=/^(provide|resolve).+/]']: (node: any) => {
22

23
				let found = false;
24
				for (const param of (<TSESTree.TSMethodSignature>node).params) {
25
					if (param.type === AST_NODE_TYPES.Identifier) {
26
						found = found || param.name === 'token';
27
					}
28
				}
29

30
				if (!found) {
31
					context.report({
32
						node,
33
						messageId: 'noToken'
34
					});
35
				}
36
			}
37
		};
38
	}
39
};
40

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.