@@ -13,6 +13,7 @@ const utils = require('../utils')
1313/**
1414 * @typedef {import('../utils').ComponentPropertyData } ComponentPropertyData
1515 * @typedef {import('../utils').ComponentObjectPropertyData } ComponentObjectPropertyData
16+ * @typedef {import('../utils').GroupName } GroupName
1617 *
1718 * @typedef {{[key: string]: ComponentPropertyData & { valueType: { type: string | null } }} } PropertyMap
1819 */
@@ -167,7 +168,7 @@ const getValueType = ({ property, propertyMap }) => {
167168}
168169
169170/**
170- * @param {Set<string > } groups
171+ * @param {Set<GroupName > } groups
171172 * @param {ObjectExpression } vueNodeMap
172173 * @param {PropertyMap } propertyMap
173174 */
@@ -198,18 +199,15 @@ module.exports = {
198199 } ,
199200 /** @param {RuleContext } context */
200201 create ( context ) {
202+ /** @type {GroupName[] } */
201203 const GROUP_NAMES = [ 'data' , 'props' , 'computed' , 'methods' ]
202204 const groups = new Set ( GROUP_NAMES )
203205
204- /** @type PropertyMap */
205- const propertyMap = { }
206-
207- /**@type ObjectExpression */
208- let vueNodeMap = { }
206+ /** @type {PropertyMap } */
207+ const propertyMap = Object . create ( null )
209208
210209 return utils . defineVueVisitor ( context , {
211210 onVueObjectEnter ( node ) {
212- vueNodeMap = node
213211 const properties = utils . iterateProperties ( node , groups )
214212
215213 for ( const property of properties ) {
@@ -222,8 +220,11 @@ module.exports = {
222220 } ,
223221
224222 /** @param {ThisExpression } node */
225- 'CallExpression > MemberExpression > ThisExpression' ( node ) {
226- addPropertyMap ( groups , vueNodeMap , propertyMap )
223+ 'CallExpression > MemberExpression > ThisExpression' (
224+ node ,
225+ { node : vueNode }
226+ ) {
227+ addPropertyMap ( groups , vueNode , propertyMap )
227228
228229 if ( node . parent . type !== 'MemberExpression' ) return
229230 if ( node . parent . property . type !== 'Identifier' ) return
0 commit comments