UNPKG

@abaplint/core

Version:
60 lines 1.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CheckInclude = exports.CheckIncludeConf = void 0; const _basic_rule_config_1 = require("./_basic_rule_config"); const _abap_object_1 = require("../objects/_abap_object"); const include_graph_1 = require("../utils/include_graph"); const _irule_1 = require("./_irule"); const objects_1 = require("../objects"); const severity_1 = require("../severity"); class CheckIncludeConf extends _basic_rule_config_1.BasicRuleConfig { constructor() { super(...arguments); this.allowUnused = false; } } exports.CheckIncludeConf = CheckIncludeConf; class CheckInclude { constructor() { this.conf = new CheckIncludeConf(); } getMetadata() { return { key: "check_include", title: "Check INCLUDEs", shortDescription: `Checks INCLUDE statements`, extendedInformation: ` * Reports unused includes * Errors if the includes are not found * Error if including a main program * Skips ZX* includes`, tags: [_irule_1.RuleTag.Syntax], }; } getConfig() { return this.conf; } setConfig(conf) { this.conf = conf; } initialize(reg) { this.reg = reg; this.graph = new include_graph_1.IncludeGraph(this.reg, this.getConfig().severity || severity_1.Severity.Error, this.getConfig().allowUnused || false); return this; } run(obj) { if (!(obj instanceof _abap_object_1.ABAPObject)) { return []; } if (obj instanceof objects_1.Program && obj.isInclude() === true && obj.getName().startsWith("ZX")) { return []; } let ret = []; for (const file of obj.getABAPFiles()) { ret = ret.concat(this.graph.getIssuesFile(file)); } return ret; } } exports.CheckInclude = CheckInclude; //# sourceMappingURL=check_include.js.map