A static analysis framework for Web Components.
npm install polymer-analyzer
const {Analyzer, FSUrlLoader} = require('polymer-analyzer');
let analyzer = new Analyzer({
urlLoader: new FSUrlLoader('/path/to/package/root'),
});
// This path is relative to the package root
analyzer.analyze(['./my-element.html']).then((analysis) => {
// Print the name of every property on paper-button, and where it was
// inherited from.
const [paperButton, ] = analysis.getFeatures(
{kind: 'element', id: 'paper-button', externalPackages: true});
if (paperButton) {
for (const [name, property] of paperButton.properties) {
let message = `${name}`;
if (property.inheritedFrom) {
message += ` inherited from ${property.inheritedFrom}`;
} else {
message += ` was defined directly on paper-button`;
}
console.log(message);
}
} else {
console.log(`my-element.html didn't define or import paper-button.`);
}
});
- webcomponents.org - discovery, demos, and docs for web components
- polymer-linter - lints the web
- polymer-build - performs HTML-aware buildtime optimization
- polymer-editor-service - IDE plugin, provides live as-you-type help
Polymer Analyzer is supported on Node LTS and stable. It is written in TypeScript. All development dependencies are installed via npm.
npm install
npm test
Or watch the source for changes, and run tests each time a file is modified:
npm run test:watch
Hydrolysis has been renamed to Polymer Analyzer for version 2. You can find the
hydrolysis source on the
hydrolysis-1.x
branch.