eslint-plugin-vue
Advanced tools
Comparing version 9.10.0 to 9.11.0
@@ -58,2 +58,5 @@ /** | ||
const UNREFERENCED_UNKNOWN_MEMBER = 'unknownMemberAsUnreferenced' | ||
const UNREFERENCED_RETURN = 'returnAsUnreferenced' | ||
const PROPERTY_LABEL = { | ||
@@ -210,3 +213,11 @@ props: 'property', | ||
deepData: { type: 'boolean' }, | ||
ignorePublicMembers: { type: 'boolean' } | ||
ignorePublicMembers: { type: 'boolean' }, | ||
unreferencedOptions: { | ||
type: 'array', | ||
items: { | ||
enum: [UNREFERENCED_UNKNOWN_MEMBER, UNREFERENCED_RETURN] | ||
}, | ||
additionalItems: false, | ||
uniqueItems: true | ||
} | ||
}, | ||
@@ -226,4 +237,13 @@ additionalProperties: false | ||
const ignorePublicMembers = Boolean(options.ignorePublicMembers) | ||
const unreferencedOptions = new Set(options.unreferencedOptions || []) | ||
const propertyReferenceExtractor = definePropertyReferenceExtractor(context) | ||
const propertyReferenceExtractor = definePropertyReferenceExtractor( | ||
context, | ||
{ | ||
unknownMemberAsUnreferenced: unreferencedOptions.has( | ||
UNREFERENCED_UNKNOWN_MEMBER | ||
), | ||
returnAsUnreferenced: unreferencedOptions.has(UNREFERENCED_RETURN) | ||
} | ||
) | ||
@@ -230,0 +250,0 @@ /** @type {TemplatePropertiesContainer} */ |
@@ -95,3 +95,6 @@ /** | ||
*/ | ||
function definePropertyReferenceExtractor(context) { | ||
function definePropertyReferenceExtractor( | ||
context, | ||
{ unknownMemberAsUnreferenced = false, returnAsUnreferenced = false } = {} | ||
) { | ||
/** @type {Map<Expression, IPropertyReferences>} */ | ||
@@ -318,5 +321,11 @@ const cacheForExpression = new Map() | ||
const name = utils.getStaticPropertyName(parent) | ||
return name | ||
? new PropertyReferencesForMember(parent, name, withInTemplate) | ||
: ANY | ||
if (name) { | ||
return new PropertyReferencesForMember( | ||
parent, | ||
name, | ||
withInTemplate | ||
) | ||
} else { | ||
return unknownMemberAsUnreferenced ? NEVER : ANY | ||
} | ||
} | ||
@@ -336,3 +345,2 @@ return NEVER | ||
case 'ArrowFunctionExpression': | ||
case 'ReturnStatement': | ||
case 'VExpressionContainer': | ||
@@ -343,2 +351,9 @@ case 'Property': | ||
} | ||
case 'ReturnStatement': { | ||
if (returnAsUnreferenced) { | ||
return NEVER | ||
} else { | ||
return maybeExternalUsed(parent) ? ANY : NEVER | ||
} | ||
} | ||
} | ||
@@ -345,0 +360,0 @@ return NEVER |
{ | ||
"name": "eslint-plugin-vue", | ||
"version": "9.10.0", | ||
"version": "9.11.0", | ||
"description": "Official ESLint plugin for Vue.js", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1173250
37908