polymer-analyzer
Version:
Static analysis for Web Components
45 lines (44 loc) • 1.82 kB
TypeScript
import { ScannedClass, ScannedFeature, Warning } from '../model/model';
import { ScannedPolymerElement } from '../polymer/polymer-element';
import { ScannedPolymerElementMixin } from '../polymer/polymer-element-mixin';
import { Visitor } from './estree-visitor';
import { JavaScriptDocument } from './javascript-document';
import { JavaScriptScanner } from './javascript-scanner';
export interface ScannedAttribute extends ScannedFeature {
name: string;
type?: string;
}
/**
* Find and classify classes from source code.
*
* Currently this has a bunch of Polymer stuff baked in that shouldn't be here
* in order to support generating only one feature for stuff that's essentially
* more specific kinds of classes, like Elements, PolymerElements, Mixins, etc.
*
* In a future change we'll add a mechanism whereby plugins can claim and
* specialize classes.
*/
export declare class ClassScanner implements JavaScriptScanner {
scan(document: JavaScriptDocument, visit: (visitor: Visitor) => Promise<void>): Promise<{
features: (ScannedClass | ScannedPolymerElement | ScannedPolymerElementMixin)[];
warnings: Warning[];
}>;
private _makeElementFeature(element, document);
private _getObservers(node, document);
private _getObservedAttributes(node, document);
/**
* Extract attributes from the array expression inside a static
* observedAttributes method.
*
* e.g.
* static get observedAttributes() {
* return [
* /** @type {boolean} When given the element is totally inactive *\/
* 'disabled',
* /** @type {boolean} When given the element is expanded *\/
* 'open'
* ];
* }
*/
private _extractAttributesFromObservedAttributes(arry, document);
}