@typescript-eslint/utils 8.50.2-alpha.4 → 8.50.2-alpha.6

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.
@@ -9,18 +9,22 @@ export interface RuleCreateAndOptions<Options extends readonly unknown[], Messag
9
9
  }
10
10
  export interface RuleWithMeta<Options extends readonly unknown[], MessageIds extends string, Docs = unknown> extends RuleCreateAndOptions<Options, MessageIds> {
11
11
  meta: RuleMetaData<MessageIds, Docs, Options>;
12
+ name?: string;
12
13
  }
13
14
  export interface RuleWithMetaAndName<Options extends readonly unknown[], MessageIds extends string, Docs = unknown> extends RuleCreateAndOptions<Options, MessageIds> {
14
15
  meta: NamedCreateRuleMeta<MessageIds, Docs, Options>;
15
16
  name: string;
16
17
  }
18
+ type RuleModuleWithName<MessageIds extends string, Options extends readonly unknown[] = [], Docs = unknown, ExtendedRuleListener extends RuleListener = RuleListener> = RuleModule<MessageIds, Options, Docs, ExtendedRuleListener> & {
19
+ name: string;
20
+ };
17
21
  /**
18
22
  * Creates reusable function to create rules with default options and docs URLs.
19
23
  *
20
24
  * @param urlCreator Creates a documentation URL for a given rule name.
21
25
  * @returns Function to create a rule with the docs URL format.
22
26
  */
23
- export declare function RuleCreator<PluginDocs = unknown>(urlCreator: (ruleName: string) => string): <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<RuleWithMetaAndName<Options, MessageIds, PluginDocs>>) => RuleModule<MessageIds, Options, PluginDocs>;
27
+ export declare function RuleCreator<PluginDocs = unknown>(urlCreator: (ruleName: string) => string): <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<RuleWithMetaAndName<Options, MessageIds, PluginDocs>>) => RuleModuleWithName<MessageIds, Options, PluginDocs>;
24
28
  export declare namespace RuleCreator {
25
29
  var withoutDocs: <Options extends readonly unknown[], MessageIds extends string>(args: Readonly<RuleWithMeta<Options, MessageIds>>) => RuleModule<MessageIds, Options>;
26
30
  }
@@ -12,7 +12,7 @@ function RuleCreator(urlCreator) {
12
12
  // This function will get much easier to call when this is merged https://github.com/Microsoft/TypeScript/pull/26349
13
13
  // TODO - when the above PR lands; add type checking for the context.report `data` property
14
14
  return function createNamedRule({ meta, name, ...rule }) {
15
- return createRule({
15
+ const ruleWithDocs = createRule({
16
16
  meta: {
17
17
  ...meta,
18
18
  docs: {
@@ -20,11 +20,13 @@ function RuleCreator(urlCreator) {
20
20
  url: urlCreator(name),
21
21
  },
22
22
  },
23
+ name,
23
24
  ...rule,
24
25
  });
26
+ return ruleWithDocs;
25
27
  };
26
28
  }
27
- function createRule({ create, defaultOptions, meta, }) {
29
+ function createRule({ create, defaultOptions, meta, name, }) {
28
30
  return {
29
31
  create(context) {
30
32
  const optionsWithDefault = (0, applyDefault_1.applyDefault)(defaultOptions, context.options);
@@ -32,6 +34,7 @@ function createRule({ create, defaultOptions, meta, }) {
32
34
  },
33
35
  defaultOptions,
34
36
  meta,
37
+ name,
35
38
  };
36
39
  }
37
40
  /**
@@ -574,6 +574,10 @@ export interface RuleModule<MessageIds extends string, Options extends readonly
574
574
  * Metadata about the rule
575
575
  */
576
576
  meta: RuleMetaData<MessageIds, Docs, Options>;
577
+ /**
578
+ * Rule name
579
+ */
580
+ name?: string;
577
581
  }
578
582
  export type AnyRuleModule = RuleModule<string, readonly unknown[]>;
579
583
  export interface RuleModuleWithMetaDocs<MessageIds extends string, Options extends readonly unknown[] = [], Docs = unknown, ExtendedRuleListener extends RuleListener = RuleListener> extends RuleModule<MessageIds, Options, Docs, ExtendedRuleListener> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/utils",
3
- "version": "8.50.2-alpha.4",
3
+ "version": "8.50.2-alpha.6",
4
4
  "description": "Utilities for working with TypeScript + ESLint together",
5
5
  "files": [
6
6
  "dist",
@@ -62,9 +62,9 @@
62
62
  },
63
63
  "dependencies": {
64
64
  "@eslint-community/eslint-utils": "^4.7.0",
65
- "@typescript-eslint/scope-manager": "8.50.2-alpha.4",
66
- "@typescript-eslint/types": "8.50.2-alpha.4",
67
- "@typescript-eslint/typescript-estree": "8.50.2-alpha.4"
65
+ "@typescript-eslint/scope-manager": "8.50.2-alpha.6",
66
+ "@typescript-eslint/types": "8.50.2-alpha.6",
67
+ "@typescript-eslint/typescript-estree": "8.50.2-alpha.6"
68
68
  },
69
69
  "peerDependencies": {
70
70
  "eslint": "^8.57.0 || ^9.0.0",