@factorialco/shadowdog
Version:
<img src="https://raw.githubusercontent.com/factorialco/shadowdog/refs/heads/main/logo.png" alt="drawing" width="100"/>
38 lines (37 loc) • 1.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const chalk_1 = __importDefault(require("chalk"));
const utils_1 = require("../utils");
const filterTags = (task, tag) => {
switch (task.type) {
case 'parallel': {
return { ...task, tasks: task.tasks.map((subTask) => filterTags(subTask, tag)) };
}
case 'serial': {
return { ...task, tasks: task.tasks.map((subTask) => filterTags(subTask, tag)) };
}
case 'command': {
if (task.config.tags.includes(tag)) {
return task;
}
return { type: 'empty' };
}
case 'empty': {
return task;
}
}
};
const command = (task) => {
const tag = process.env.SHADOWDOG_TAG;
if (!tag) {
return task;
}
(0, utils_1.logMessage)(`🏷️ Filtering commands by tag: ${chalk_1.default.green(tag)}`);
return filterTags(task, tag);
};
exports.default = {
command,
};