eslint-plugin-mgw-eslint-rules 2.2.40 → 2.2.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export declare const rules: {
|
|
2
|
-
'
|
|
2
|
+
'case-first-declarations': import("@typescript-eslint/utils/ts-eslint").RuleModule<"serviceSuffix", [import("./rules/service-class-suffix").ServiceClassSuffixOptions], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
3
3
|
};
|
package/dist/index.js
CHANGED
|
@@ -4,8 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.rules = void 0;
|
|
7
|
-
const
|
|
8
|
-
exports.rules = { '
|
|
7
|
+
const service_class_suffix_1 = __importDefault(require("./rules/service-class-suffix"));
|
|
8
|
+
exports.rules = { 'case-first-declarations': service_class_suffix_1.default };
|
|
9
9
|
// export = {
|
|
10
10
|
// rules: {
|
|
11
11
|
// 'no-inline-styles': noInlineStyles
|
|
@@ -1,12 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
{
|
|
5
|
-
preferredCase?: 'lower' | 'upper';
|
|
6
|
-
}
|
|
7
|
-
];
|
|
8
|
-
export interface MyPluginDocs {
|
|
9
|
-
recommended: boolean;
|
|
10
|
-
}
|
|
11
|
-
export declare const RULE_NAME = "case-first-declarations";
|
|
12
|
-
export declare const rule: ESLintUtils.RuleModule<MessageIds, Options, MyPluginDocs, ESLintUtils.RuleListener>;
|
|
1
|
+
import { Rule } from 'eslint';
|
|
2
|
+
declare const caseFirstDeclarations: Rule.RuleModule;
|
|
3
|
+
export default caseFirstDeclarations;
|
|
@@ -1,42 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
// rules/case-first-declarations.ts
|
|
5
|
-
const utils_1 = require("@typescript-eslint/utils");
|
|
6
|
-
exports.RULE_NAME = 'case-first-declarations';
|
|
7
|
-
const createRule = utils_1.ESLintUtils.RuleCreator((name) => `https://github.com/developpement-megao/mgw-eslint-rules/docs/rule/${name}.md`);
|
|
8
|
-
// Type: RuleModule<MessageIds, ...>
|
|
9
|
-
exports.rule = createRule({
|
|
10
|
-
create(context, options) {
|
|
11
|
-
const preferredCase = options[0].preferredCase;
|
|
12
|
-
// On va tester si on a un lower caractère en premier si option upper
|
|
13
|
-
const testRegexp = preferredCase === 'upper' ? /^[a-z]/ : /^[A-Z]/;
|
|
14
|
-
return {
|
|
15
|
-
FunctionDeclaration(node) {
|
|
16
|
-
if (node.id != null) {
|
|
17
|
-
// On teste si le premier caractère est en lower (pour rule option upper)
|
|
18
|
-
if (testRegexp.test(node.id.name)) {
|
|
19
|
-
// Premier caractère lower (pour rule option upper) donc on renvoit le message d'erreur upper
|
|
20
|
-
context.report({
|
|
21
|
-
messageId: preferredCase === 'upper' ? 'uppercase' : 'lowercase',
|
|
22
|
-
node: node.id
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
},
|
|
29
|
-
name: exports.RULE_NAME,
|
|
3
|
+
const caseFirstDeclarations = {
|
|
30
4
|
meta: {
|
|
5
|
+
type: 'suggestion',
|
|
31
6
|
docs: {
|
|
32
|
-
description: 'Function declaration names should start with an upper-case letter.',
|
|
7
|
+
description: 'Function declaration names should start with an upper-case or lower-case letter.',
|
|
8
|
+
category: 'Best Practices',
|
|
33
9
|
recommended: true
|
|
34
10
|
},
|
|
35
|
-
messages: {
|
|
36
|
-
lowercase: 'Start this name with an lower-case letter.',
|
|
37
|
-
uppercase: 'Start this name with an upper-case letter.'
|
|
38
|
-
},
|
|
39
|
-
type: 'suggestion',
|
|
40
11
|
schema: [
|
|
41
12
|
{
|
|
42
13
|
type: 'object',
|
|
@@ -48,11 +19,31 @@ exports.rule = createRule({
|
|
|
48
19
|
},
|
|
49
20
|
additionalProperties: false
|
|
50
21
|
}
|
|
51
|
-
]
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
preferredCase: 'lower'
|
|
22
|
+
],
|
|
23
|
+
messages: {
|
|
24
|
+
lowercase: 'Start this name with an lower-case letter.',
|
|
25
|
+
uppercase: 'Start this name with an upper-case letter.'
|
|
56
26
|
}
|
|
57
|
-
|
|
58
|
-
|
|
27
|
+
},
|
|
28
|
+
create(context) {
|
|
29
|
+
return {
|
|
30
|
+
FunctionDeclaration(node) {
|
|
31
|
+
if (node.id != null) {
|
|
32
|
+
const options = context.options[0] || {};
|
|
33
|
+
const preferredCase = options.preferredCase;
|
|
34
|
+
// On va tester si on a un lower caractère en premier si option upper
|
|
35
|
+
const testRegexp = preferredCase === 'upper' ? /^[a-z]/ : /^[A-Z]/;
|
|
36
|
+
// On teste si le premier caractère est en lower (pour rule option upper)
|
|
37
|
+
if (testRegexp.test(node.id.name)) {
|
|
38
|
+
// Premier caractère lower (pour rule option upper) donc on renvoit le message d'erreur upper
|
|
39
|
+
context.report({
|
|
40
|
+
messageId: preferredCase === 'upper' ? 'uppercase' : 'lowercase',
|
|
41
|
+
node: node.id
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
exports.default = caseFirstDeclarations;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
export type MessageIds = 'serviceSuffix';
|
|
8
|
-
export declare const RULE_NAME = "service-class-suffix";
|
|
9
|
-
export declare const serviceClassSuffix: ESLintUtils.RuleModule<"serviceSuffix", [{
|
|
10
|
-
suffixes: string[];
|
|
11
|
-
}], unknown, ESLintUtils.RuleListener>;
|
|
2
|
+
export interface ServiceClassSuffixOptions {
|
|
3
|
+
suffixes?: string[];
|
|
4
|
+
}
|
|
5
|
+
declare const serviceClassSuffix: ESLintUtils.RuleModule<"serviceSuffix", [ServiceClassSuffixOptions], unknown, ESLintUtils.RuleListener>;
|
|
6
|
+
export default serviceClassSuffix;
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.serviceClassSuffix = exports.RULE_NAME = void 0;
|
|
4
3
|
// rules/service-class-suffix.ts
|
|
5
4
|
// ASTUtils: Angular-specific AST manipulation utilities
|
|
6
5
|
//import { ASTUtils, Selectors } from '@angular-eslint/utils';
|
|
7
6
|
const utils_1 = require("@angular-eslint/utils");
|
|
8
7
|
const utils_2 = require("@typescript-eslint/utils");
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
name: exports.RULE_NAME,
|
|
8
|
+
const defaultOptions = {
|
|
9
|
+
suffixes: ['Service']
|
|
10
|
+
};
|
|
11
|
+
const serviceClassSuffix = utils_2.ESLintUtils.RuleCreator.withoutDocs({
|
|
14
12
|
meta: {
|
|
15
13
|
type: 'suggestion',
|
|
16
14
|
docs: {
|
|
17
15
|
description: 'Enforce that service classes end with "Service"'
|
|
18
|
-
//
|
|
16
|
+
//category: 'Best Practices',
|
|
17
|
+
//recommended: true
|
|
19
18
|
},
|
|
20
19
|
schema: [
|
|
21
20
|
{
|
|
@@ -32,24 +31,19 @@ exports.serviceClassSuffix = createRule({
|
|
|
32
31
|
}
|
|
33
32
|
],
|
|
34
33
|
messages: {
|
|
35
|
-
serviceSuffix: 'Service class should end with one of these suffixes: {{suffixes}}'
|
|
34
|
+
serviceSuffix: 'Service class should end with one of these suffixes: {{ suffixes }}'
|
|
36
35
|
}
|
|
37
36
|
},
|
|
38
|
-
defaultOptions: [
|
|
39
|
-
|
|
40
|
-
suffixes: ['Service']
|
|
41
|
-
}
|
|
42
|
-
],
|
|
43
|
-
create(context, [{ suffixes }]) {
|
|
37
|
+
defaultOptions: [defaultOptions],
|
|
38
|
+
create(context) {
|
|
44
39
|
return {
|
|
45
40
|
[utils_1.Selectors.INJECTABLE_CLASS_DECORATOR](node) {
|
|
46
|
-
if (!suffixes) {
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
41
|
const classDeclaration = node.parent;
|
|
50
42
|
if (!classDeclaration.id) {
|
|
51
43
|
return;
|
|
52
44
|
}
|
|
45
|
+
const options = context.options[0] || {};
|
|
46
|
+
const suffixes = options.suffixes || defaultOptions.suffixes;
|
|
53
47
|
const className = classDeclaration.id.name;
|
|
54
48
|
const hasValidSuffix = suffixes.some((suffix) => className.endsWith(suffix));
|
|
55
49
|
if (!hasValidSuffix) {
|
|
@@ -65,3 +59,4 @@ exports.serviceClassSuffix = createRule({
|
|
|
65
59
|
};
|
|
66
60
|
}
|
|
67
61
|
});
|
|
62
|
+
exports.default = serviceClassSuffix;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-mgw-eslint-rules",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.42",
|
|
4
4
|
"description": "Custom eslint rules of MegaO",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -48,7 +48,6 @@
|
|
|
48
48
|
"@angular/cli": "^19.2.19",
|
|
49
49
|
"@angular/compiler": "^19.2.18",
|
|
50
50
|
"@types/eslint": "^9.6.1",
|
|
51
|
-
"@types/estree-jsx": "^1.0.5",
|
|
52
51
|
"@types/jest": "^30.0.0",
|
|
53
52
|
"@types/node": "^25.2.2",
|
|
54
53
|
"@typescript-eslint/eslint-plugin": "^8.46.4",
|