本文整理汇总了TypeScript中tslint.Linter.getResult方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Linter.getResult方法的具体用法?TypeScript Linter.getResult怎么用?TypeScript Linter.getResult使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tslint.Linter
的用法示例。
在下文中一共展示了Linter.getResult方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: lint
function lint(dir: string): void {
const options = {
rulesDirectory: join(paths.base_dir, "tslint", "rules"),
formatter: "stylish",
fix: argv.fix || false,
}
const program = Linter.createProgram(join(dir, "tsconfig.json"))
const linter = new Linter(options, program)
const files = Linter.getFileNames(program)
for (const file of files) {
const config = Configuration.findConfiguration("./tslint.json", file).results
const contents = program.getSourceFile(file)!.getFullText()
linter.lint(file, contents, config)
}
const result = linter.getResult()
if (result.errorCount != 0) {
for (const line of result.output.trim().split("\n"))
log(line)
if (argv.emitError)
process.exit(1)
}
}
示例2:
const lintingFailures = absolutePathToFiles.reduce<RuleFailure[]>((failures, absPath) => {
const source = fs.readFileSync(absPath, 'utf8')
linter.lint(absPath, source, configuration)
const results = linter.getResult()
if (results.failureCount > 0) {
return failures.concat(results.failures)
} else {
return failures
}
}, [] as RuleFailure[])
示例3: lint
function lint(dir: string): void {
for (const file of scan(dir, [".ts"])) {
const options = {
rulesDirectory: join(paths.base_dir, "tslint", "rules"),
formatter: "stylish",
fix: argv.fix || false,
}
const linter = new Linter(options)
const config = Configuration.findConfiguration("./tslint.json", file).results
linter.lint(file, read(file)!, config)
const result = linter.getResult()
if (result.errorCount != 0) {
for (const line of result.output.trim().split("\n"))
log(line)
}
}
}
示例4: tslintAsync
export async function tslintAsync() {
const program = Linter.createProgram('tsconfig.json');
const linter = new Linter(lintOptions, program);
// note: normally dependencies aren't part of your source files, but if you
// import a file from a dependency (e.g. `import "cool-package/foo"`) this
// will be in your files array â that's why we need `.filter(isSourceFile)`
const files = Linter.getFileNames(program).filter(isSourceFile);
files.forEach(file => {
const fileContents = program.getSourceFile(file).getFullText();
const conf = Configuration.findConfiguration(configPath, file).results;
linter.lint(file, fileContents, conf);
});
const result = linter.getResult();
const errors = result.output;
const errorsCount = result.errorCount;
const fixedFiles = uniq((result.fixes || []).map(({ fileName }) => fileName));
return { errors, errorsCount, fixedFiles };
}
示例5: lint
/**
* A helper function for specs. Lints the given `source` string against the `ruleName` with
* `options`.
*
* You're unlikely to use these in actual specs. Usually you'd use some of the following:
* - `assertAnnotated` or
* - `assertSuccess`.
*
* @param ruleName the name of the rule which is being tested
* @param source the source code, as a string
* @param options additional options for the lint rule
* @returns {LintResult} the result of linting
*/
function lint(ruleName: string, source: string | ts.SourceFile, options: any): tslint.LintResult {
let configuration = {
extends: [],
rules: new Map<string, Partial<tslint.IOptions>>(),
jsRules: new Map<string, Partial<tslint.IOptions>>(),
rulesDirectory: []
};
if (!options) {
options = [];
}
const ops: Partial<tslint.IOptions> = { ruleName, ruleArguments: options, disabledIntervals: [] };
configuration.rules.set(ruleName, ops);
const linterOptions: tslint.ILinterOptions = {
formatter: 'json',
rulesDirectory: './dist/src',
formattersDirectory: null,
fix: false
};
let linter = new tslint.Linter(linterOptions, undefined);
if (typeof source === 'string') {
linter.lint('file.ts', source, configuration);
} else {
const rules = loadRules(convertRuleOptions(configuration.rules), linterOptions.rulesDirectory, false);
const res = [].concat.apply([], rules.map(r => r.apply(source))) as tslint.RuleFailure[];
const errCount = res.filter(r => !r.getRuleSeverity || r.getRuleSeverity() === 'error').length;
return {
errorCount: errCount,
warningCount: res.length - errCount,
output: '',
format: null,
fixes: [].concat.apply(res.map(r => r.getFix())),
failures: res
};
}
return linter.getResult();
}
示例6: getLints
getLints(cancellationToken: CancellationToken) {
if (!this.hasLinter()) {
throw new Error('Cannot get lints - checker has no linter.');
}
// select files to lint
const filesToLint = this.files
.keys()
.filter(
filePath =>
!this.files.getData(filePath).linted &&
!IncrementalChecker.isFileExcluded(filePath, this.linterExclusions)
);
// calculate subset of work to do
const workSet = new WorkSet(
filesToLint,
this.workNumber,
this.workDivision
);
// lint given work set
workSet.forEach(fileName => {
cancellationToken.throwIfCancellationRequested();
try {
this.linter.lint(fileName, undefined, this.linterConfig);
} catch (e) {
if (
fs.existsSync(fileName) &&
// check the error type due to file system lag
!(e instanceof Error) &&
!(e.constructor.name === 'FatalError') &&
!(e.message && e.message.trim().startsWith('Invalid source file'))
) {
// it's not because file doesn't exist - throw error
throw e;
}
}
});
// set lints in files register
this.linter.getResult().failures.forEach(lint => {
const filePath = lint.getFileName();
this.files.mutateData(filePath, data => {
data.linted = true;
data.lints.push(lint);
});
});
// set all files as linted
this.files.keys().forEach(filePath => {
this.files.mutateData(filePath, data => {
data.linted = true;
});
});
// get all lints
const lints = this.files
.keys()
.reduce(
(innerLints, filePath) =>
innerLints.concat(this.files.getData(filePath).lints),
[]
);
// normalize and deduplicate lints
return NormalizedMessage.deduplicate(
lints.map(NormalizedMessage.createFromLint)
);
}