UNPKG

chrome-devtools-frontend

Version:
34 lines (30 loc) 1.12 kB
// Copyright 2020 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. 'use strict'; module.exports = { meta: { type: 'problem', docs: { description: 'Checks wasShown() method definitions call super.wasShown();', category: 'Possible Errors', }, fixable: 'code', schema: [] // no options }, create: function(context) { return { MethodDefinition(node) { const nodeName = node.key.name; if (node.parent.parent.superClass?.property?.name === 'Widget' && nodeName === 'wasShown') { const topBodyNode = node.value.body.body[0]; if (!(topBodyNode.type === 'ExpressionStatement' && topBodyNode.expression.type === 'CallExpression' && topBodyNode.expression.callee.object.type === 'Super' && topBodyNode.expression.callee.property.name === 'wasShown')) { context.report({node, message: 'Please make sure the first call in wasShown is to super.wasShown().'}); } } } }; } };