gitlab-ci-local
Version:
Tired of pushing to test your .gitlab-ci.yml?
40 lines • 5.66 kB
JavaScript
String.prototype.matchRE2JS = function (o) {
let results = null;
const matcher = o.matcher(this.toString());
while (matcher.find()) {
const g = matcher.group();
if (g == "")
continue;
results = results ?? [];
results.push(g);
}
return results;
};
String.prototype.matchAllRE2JS = function (o) {
const self = this.toString();
const matcher = o.matcher(self);
function* iterator() {
while (matcher.find()) {
const match = [];
for (let i = 0; i <= matcher.groupCount(); i++) {
match.push(matcher.group(i));
}
match.index = matcher.groups[0];
match.input = self;
if (matcher.namedGroups && Object.keys(matcher.namedGroups).length > 0) {
const groups = Object.create(null);
for (const [name, value] of Object.entries(matcher.namedGroups)) {
groups[name] = matcher.group(value);
}
match.groups = groups;
}
else {
match.groups = undefined;
}
yield match;
}
}
return iterator();
};
export {};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZ2xvYmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWVBLE1BQU0sQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBUTtJQUM1QyxJQUFJLE9BQU8sR0FBb0IsSUFBSSxDQUFDO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0MsT0FBTyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNwQixNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLFNBQVM7UUFDdEIsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFRO0lBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhDLFFBQVEsQ0FBQyxDQUFDLFFBQVE7UUFDZCxPQUFPLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sS0FBSyxHQUFtQixFQUErQixDQUFDO1lBQzlELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsQ0FBQztZQUNELEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUVuQixJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBcUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3hGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO2dCQUNELEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixLQUFLLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUM3QixDQUFDO1lBRUQsTUFBTSxLQUFLLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ3RCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UkUySlN9IGZyb20gXCJyZTJqc1wiO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIFN0cmluZyB7XG4gICAgICAgIG1hdGNoUkUySlMobzogUkUySlMpOiBBcnJheTxzdHJpbmc+IHwgbnVsbDtcbiAgICAgICAgbWF0Y2hBbGxSRTJKUyhvOiBSRTJKUyk6IEl0ZXJhYmxlSXRlcmF0b3I8UmVnRXhwTWF0Y2hBbGw+O1xuICAgIH1cbn1cblxuaW50ZXJmYWNlIFJlZ0V4cE1hdGNoQWxsIGV4dGVuZHMgQXJyYXk8c3RyaW5nPiB7XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gICAgaW5wdXQ/OiBzdHJpbmc7XG4gICAgZ3JvdXBzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkO1xufVxuXG5TdHJpbmcucHJvdG90eXBlLm1hdGNoUkUySlMgPSBmdW5jdGlvbiAobzogUkUySlMpOiBBcnJheTxzdHJpbmc+IHwgbnVsbCB7XG4gICAgbGV0IHJlc3VsdHM6IHN0cmluZ1tdIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3QgbWF0Y2hlciA9IG8ubWF0Y2hlcih0aGlzLnRvU3RyaW5nKCkpO1xuICAgIHdoaWxlIChtYXRjaGVyLmZpbmQoKSkge1xuICAgICAgICBjb25zdCBnID0gbWF0Y2hlci5ncm91cCgpO1xuICAgICAgICBpZiAoZyA9PSBcIlwiKSBjb250aW51ZTtcbiAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMgPz8gW107XG4gICAgICAgIHJlc3VsdHMucHVzaChnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdHM7XG59O1xuXG5TdHJpbmcucHJvdG90eXBlLm1hdGNoQWxsUkUySlMgPSBmdW5jdGlvbiAobzogUkUySlMpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcy50b1N0cmluZygpO1xuICAgIGNvbnN0IG1hdGNoZXIgPSBvLm1hdGNoZXIoc2VsZik7XG5cbiAgICBmdW5jdGlvbiogaXRlcmF0b3IgKCk6IEl0ZXJhYmxlSXRlcmF0b3I8UmVnRXhwTWF0Y2hBbGw+IHtcbiAgICAgICAgd2hpbGUgKG1hdGNoZXIuZmluZCgpKSB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaDogUmVnRXhwTWF0Y2hBbGwgPSBbXSBhcyB1bmtub3duIGFzIFJlZ0V4cE1hdGNoQWxsO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gbWF0Y2hlci5ncm91cENvdW50KCk7IGkrKykge1xuICAgICAgICAgICAgICAgIG1hdGNoLnB1c2gobWF0Y2hlci5ncm91cChpKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBtYXRjaC5pbmRleCA9IG1hdGNoZXIuZ3JvdXBzWzBdO1xuICAgICAgICAgICAgbWF0Y2guaW5wdXQgPSBzZWxmO1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlci5uYW1lZEdyb3VwcyAmJiBPYmplY3Qua2V5cyhtYXRjaGVyLm5hbWVkR3JvdXBzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZ3JvdXBzID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMobWF0Y2hlci5uYW1lZEdyb3VwcyBhcyBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+KSkge1xuICAgICAgICAgICAgICAgICAgICBncm91cHNbbmFtZV0gPSBtYXRjaGVyLmdyb3VwKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbWF0Y2guZ3JvdXBzID0gZ3JvdXBzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXRjaC5ncm91cHMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHlpZWxkIG1hdGNoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGl0ZXJhdG9yKCk7XG59O1xuIl19