📄 prefer-enum-initializers¶
📊 Analysis Summary¶
| Metric | Count |
|---|---|
| 🔧 Functions | 5 |
| 📦 Imports | 3 |
| 📑 Type Aliases | 1 |
📚 Table of Contents¶
🛠️ File Location:¶
📂 packages/eslint-plugin/src/rules/prefer-enum-initializers.ts
📤 Default Export¶
| Property | Value |
|---|---|
name |
'prefer-enum-initializers' |
meta.type |
'suggestion' |
meta.docs.description |
'Require each enum member value to be explicitly initialized' |
meta.hasSuggestions |
true |
meta.messages.defineInitializer |
"The value of the member '{{ name }}' should be explicitly defined." |
meta.messages.defineInitializerSuggestion |
'Can be fixed to {{ name }} = {{ suggested }}' |
meta.schema |
[] |
defaultOptions |
[] |
Entry point: create — documented under Functions.
📦 Imports¶
| Name | Source |
|---|---|
TSESLint |
@typescript-eslint/utils |
TSESTree |
@typescript-eslint/utils |
createRule |
../util |
Functions¶
create(context: any): { TSEnumDeclaration: (node: TSESTree.TSEnumDeclaration) => …¶
Parameters:
contextany
Returns: { TSEnumDeclaration: (node: TSESTree.TSEnumDeclaration) => void; }
Calls:
members.forEachcontext.sourceCode.getTextcontext.reportfixer.replaceText
Code
create(context) {
function TSEnumDeclaration(node: TSESTree.TSEnumDeclaration): void {
const { members } = node.body;
members.forEach((member, index) => {
if (member.initializer == null) {
const name = context.sourceCode.getText(member);
context.report({
node: member,
messageId: 'defineInitializer',
data: {
name,
},
suggest: [
{
messageId: 'defineInitializerSuggestion',
data: { name, suggested: index },
fix: (fixer): TSESLint.RuleFix => {
return fixer.replaceText(member, `${name} = ${index}`);
},
},
{
messageId: 'defineInitializerSuggestion',
data: { name, suggested: index + 1 },
fix: (fixer): TSESLint.RuleFix => {
return fixer.replaceText(member, `${name} = ${index + 1}`);
},
},
{
messageId: 'defineInitializerSuggestion',
data: { name, suggested: `'${name}'` },
fix: (fixer): TSESLint.RuleFix => {
return fixer.replaceText(member, `${name} = '${name}'`);
},
},
],
});
}
});
}
return {
TSEnumDeclaration,
};
}
Internal helpers¶
Declared inside another function in this file.
TSEnumDeclaration(node: TSESTree.TSEnumDeclaration): void¶
Parameters:
nodeTSESTree.TSEnumDeclaration
Returns: void
Calls:
members.forEachcontext.sourceCode.getTextcontext.reportfixer.replaceText
Code
function TSEnumDeclaration(node: TSESTree.TSEnumDeclaration): void {
const { members } = node.body;
members.forEach((member, index) => {
if (member.initializer == null) {
const name = context.sourceCode.getText(member);
context.report({
node: member,
messageId: 'defineInitializer',
data: {
name,
},
suggest: [
{
messageId: 'defineInitializerSuggestion',
data: { name, suggested: index },
fix: (fixer): TSESLint.RuleFix => {
return fixer.replaceText(member, `${name} = ${index}`);
},
},
{
messageId: 'defineInitializerSuggestion',
data: { name, suggested: index + 1 },
fix: (fixer): TSESLint.RuleFix => {
return fixer.replaceText(member, `${name} = ${index + 1}`);
},
},
{
messageId: 'defineInitializerSuggestion',
data: { name, suggested: `'${name}'` },
fix: (fixer): TSESLint.RuleFix => {
return fixer.replaceText(member, `${name} = '${name}'`);
},
},
],
});
}
});
}
suggest.fix(fixer: any): TSESLint.RuleFix¶
Parameters:
fixerany
Returns: TSESLint.RuleFix
Calls:
fixer.replaceText
suggest.fix(fixer: any): TSESLint.RuleFix¶
Parameters:
fixerany
Returns: TSESLint.RuleFix
Calls:
fixer.replaceText
suggest.fix(fixer: any): TSESLint.RuleFix¶
Parameters:
fixerany
Returns: TSESLint.RuleFix
Calls:
fixer.replaceText
Type Aliases¶
MessageIds¶
Generated by Syntax Scribe