/** * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at * http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at * http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ import {Document, ParsedHtmlDocument, Warning} from 'prax-analyzer'; import {Rule} from '../rule'; /** * An abstract rule that operates only over HTML files. */ export abstract class HtmlRule extends Rule { async check(document: Document): Promise { const parsedDocument = document.parsedDocument; if (!(parsedDocument instanceof ParsedHtmlDocument)) { return []; } return this.checkDocument(parsedDocument, document); } /** * Implement this method, rather than the `check` method. */ abstract checkDocument( parsedDocument: ParsedHtmlDocument, document: Document): Promise; }