UNPKG

ern-api-gen

Version:

Electrode Native API generator

80 lines 2.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const IgnoreToken_1 = __importDefault(require("./IgnoreToken")); const StringBuilder_1 = __importDefault(require("../../java/StringBuilder")); const LoggerFactory_1 = __importDefault(require("../../java/LoggerFactory")); class Rule { constructor(syntax, definition) { this.syntax = syntax; this.definition = definition; } getDefinition() { return this.definition; } getPattern() { if (this.syntax == null) { return this.definition; } const sb = StringBuilder_1.default(); for (const current of this.syntax) { const token = current.getToken(); switch (token) { case IgnoreToken_1.default.MATCH_ALL: case IgnoreToken_1.default.MATCH_ANY: case IgnoreToken_1.default.ESCAPED_EXCLAMATION: case IgnoreToken_1.default.ESCAPED_SPACE: case IgnoreToken_1.default.PATH_DELIM: case IgnoreToken_1.default.TEXT: case IgnoreToken_1.default.DIRECTORY_MARKER: sb.append(current.getValue()); break; case IgnoreToken_1.default.NEGATE: case IgnoreToken_1.default.ROOTED_MARKER: case IgnoreToken_1.default.COMMENT: break; default: Log.warn('unknown token'); } } return sb.toString(); } /** * Whether or not the rule should be negated. !foo means foo should be removed from previous matches. * Example: **\/*.bak excludes all backup. Adding !/test.bak will include test.bak in the project root. * <p> * NOTE: It is not possible to re-include a file if a parent directory of that file is excluded. */ getNegated() { const negated = this.syntax && this.syntax[0] && this.syntax[0].getToken().equals(IgnoreToken_1.default.NEGATE); return negated; } evaluate(relativePath) { if (this.matches(relativePath)) { if (this.getNegated()) { return this.getIncludeOperation(); } return this.getExcludeOperation(); } return Rule.Operation.NOOP; } getIncludeOperation() { return Rule.Operation.INCLUDE; } getExcludeOperation() { return Rule.Operation.EXCLUDE; } } Rule.Operation = { EXCLUDE: 0, EXCLUDE_AND_TERMINATE: 3, INCLUDE: 1, NOOP: 2, }; exports.Rule = Rule; const Log = LoggerFactory_1.default.getLogger(Rule); //# sourceMappingURL=Rule.js.map