Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 11279x 11279x 11279x 11279x 11279x 33675x 33675x 33675x 33675x 33675x 33675x 33675x 11279x 11279x 10789x 10789x 11279x 11279x 229x 229x 11279x 11279x 231x 231x 231x 11279x 11279x 297x 297x 297x 295x 295x 2x 297x 297x 1x 1x 1x 1x 1x 2x 2x 2x 11279x 11279x 2x 2x 2x 2x 11279x 11279x 1x 1x 1x 1x 1x 1x 11279x | import {Issue} from "../issue";
import {BasicRuleConfig} from "./_basic_rule_config";
import {IRegistry} from "../_iregistry";
import {MIMEObject} from "../objects";
import {IRule, IRuleMetadata} from "./_irule";
import {IObject} from "../objects/_iobject";
import {Position} from "../position";
export class SMIMConsistencyConf extends BasicRuleConfig {
}
export class SMIMConsistency implements IRule {
private conf = new SMIMConsistencyConf();
private reg: IRegistry;
public getMetadata(): IRuleMetadata {
return {
key: "smim_consistency",
title: "SMIM consistency check",
shortDescription: `SMIM consistency check`,
extendedInformation: "Check folders exists",
};
}
public getConfig() {
return this.conf;
}
public setConfig(conf: SMIMConsistencyConf) {
this.conf = conf;
}
public initialize(reg: IRegistry) {
this.reg = reg;
return this;
}
public run(obj: IObject): Issue[] {
const issues: Issue[] = [];
if (!(obj instanceof MIMEObject)) {
return [];
}
const base = this.base(obj.getURL() || "");
if (base !== "" && this.findFolder(base) === false) {
const message = `Parent folder "${base}" not found`;
const position = new Position(1, 1);
const issue = Issue.atPosition(obj.getFiles()[0], position, message, this.getMetadata().key, this.conf.severity);
issues.push(issue);
}
return issues;
}
private base(full: string): string {
const components = full.split("/");
components.pop();
return components.join("/");
}
private findFolder(base: string): boolean {
for (const smim of this.reg.getObjectsByType("SMIM")) {
const mime = smim as MIMEObject;
if (base === mime.getURL() && mime.isFolder() === true) {
return true;
}
}
return false;
}
} |