本文整理汇总了TypeScript中hydrolysis.Analyzer类的典型用法代码示例。如果您正苦于以下问题:TypeScript Analyzer类的具体用法?TypeScript Analyzer怎么用?TypeScript Analyzer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Analyzer类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: polylint
export function polylint(path, options) {
if (!options) {
options = {};
}
options.attachAST = true;
options.filter = function(){
return false;
};
if (!('redirect' in options)) {
options.redirect = "bower_components";
}
var analyzer;
return hydrolysis.Analyzer.analyze(path, options).then(function(_analyzer){
analyzer = _analyzer;
return analyzer.html[path].depsLoaded;
}).then(function(){
var allWarnings = [];
for (var linterName in linters) {
var linter = linters[linterName];
var warnings = linter(analyzer, path, options);
allWarnings = allWarnings.concat(warnings);
}
return allWarnings;
}).catch(function(err){
throw err;
});
}
示例2: analyzeRepos
/**
* Analyzes all of the HTML in 'repos/*' with hydrolysis.
*
* Returns a promise of the hydrolysis.Analyzer with all of the info loaded.
*/
async function analyzeRepos() {
const dirs = fs.readdirSync('repos/');
const htmlFiles: string[] = [];
for (const dir of dirs) {
for (const fn of fs.readdirSync(path.join('repos', dir))) {
if (/index\.html|dependencies\.html/.test(fn) || !fn.endsWith('.html')) {
continue;
}
// We want to ignore files with 'demo' in them, unless the element's
// directory has the word 'demo' in it, in which case that's
// the whole point of the element.
if (!/\bdemo\b/.test(dir) && /demo/.test(fn)) {
continue;
}
htmlFiles.push(path.join('repos', dir, fn));
}
}
function filter(repo: string) { return !existsSync(repo); }
// This code is conceptually simple, it's only complex due to ordering
// and the progress bar. Basically we call analyzer.metadataTree on each
// html file in sequence, then finally call analyzer.annotate() and return.
const analyzer =
await hydrolysis.Analyzer.analyze('repos/polymer/polymer.html', {filter});
const progressBar = new ProgressBar(
`:msg [:bar] :percent`,
{total: htmlFiles.length + 1, width: progressBarWidth});
for (const htmlFile of htmlFiles) {
await analyzer.metadataTree(htmlFile);
const msg = pad(
`Analyzing ${htmlFile.slice(6)}`, progressMessageWidth, {strip: true});
progressBar.tick({msg});
}
progressBar.tick(
{msg: pad('Analyzing with hydrolysis...', progressMessageWidth)});
analyzer.annotate();
return analyzer;
}
示例3: analyzeRepos
/**
* Analyzes all of the HTML in 'repos/*' with hydrolysis.
*
* Returns a promise of the hydrolysis.Analyzer with all of the info loaded.
*/
async function analyzeRepos() {
const dirsToConsider: string[] = [];
const htmlFiles: string[] = [];
for (const dir of fs.readdirSync('repos/')) {
dirsToConsider.push(path.join('repos', dir));
for (const filename of fs.readdirSync(path.join('repos', dir))) {
try {
const stat = fs.statSync(path.join('repos', dir, filename));
if (!stat.isDirectory()) {
continue;
}
} catch (e) {
continue;
}
if (filename.startsWith('.')) {
continue;
}
const dirnamesToIgnore = new Set([
'test',
'util',
'explainer',
'src',
'helpers',
'site',
'templates',
'viewer',
'demo',
'patterns'
]);
if (dirnamesToIgnore.has(path.basename(filename))) {
continue;
}
dirsToConsider.push(path.join('repos', dir, filename));
}
}
for (const dir of dirsToConsider) {
for (const filename of fs.readdirSync(dir)) {
if (/index\.html|dependencies\.html/.test(filename) ||
!filename.endsWith('.html')) {
continue;
}
// We want to ignore files with 'demo' in them, unless the element's
// directory has the word 'demo' in it, in which case that's
// the whole point of the element.
if (!/\bdemo\b/.test(dir) && /demo/.test(filename)) {
continue;
}
htmlFiles.push(path.join(dir, filename));
}
}
function filter(repo: string) {
return !existsSync(repo);
}
// This code is conceptually simple, it's only complex due to ordering
// and the progress bar. Basically we call analyzer.metadataTree on each
// html file in sequence, then finally call analyzer.annotate() and return.
const analyzer =
await hydrolysis.Analyzer.analyze('repos/polymer/polymer.html', {filter});
const progressBar = new MaybeProgressBar(
`:msg [:bar] :percent`,
{total: htmlFiles.length + 1, width: progressBarWidth});
for (const htmlFile of htmlFiles) {
await analyzer.metadataTree(htmlFile);
const msg = pad(
`Analyzing ${htmlFile.slice(6)}`, progressMessageWidth, {strip: true});
progressBar.tick({msg});
}
progressBar.tick(
{msg: pad('Analyzing with hydrolysis...', progressMessageWidth)});
analyzer.annotate();
return analyzer;
}