mirror of
https://github.com/dawidd6/action-send-mail.git
synced 2024-11-10 14:01:06 +07:00
94 lines
3.2 KiB
JavaScript
94 lines
3.2 KiB
JavaScript
|
"use strict";
|
||
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||
|
if (k2 === undefined) k2 = k;
|
||
|
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
||
|
}) : (function(o, m, k, k2) {
|
||
|
if (k2 === undefined) k2 = k;
|
||
|
o[k2] = m[k];
|
||
|
}));
|
||
|
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||
|
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||
|
}) : function(o, v) {
|
||
|
o["default"] = v;
|
||
|
});
|
||
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||
|
if (mod && mod.__esModule) return mod;
|
||
|
var result = {};
|
||
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||
|
__setModuleDefault(result, mod);
|
||
|
return result;
|
||
|
};
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
exports.partialMatch = exports.match = exports.getSearchPaths = void 0;
|
||
|
const pathHelper = __importStar(require("./internal-path-helper"));
|
||
|
const internal_match_kind_1 = require("./internal-match-kind");
|
||
|
const IS_WINDOWS = process.platform === 'win32';
|
||
|
/**
|
||
|
* Given an array of patterns, returns an array of paths to search.
|
||
|
* Duplicates and paths under other included paths are filtered out.
|
||
|
*/
|
||
|
function getSearchPaths(patterns) {
|
||
|
// Ignore negate patterns
|
||
|
patterns = patterns.filter(x => !x.negate);
|
||
|
// Create a map of all search paths
|
||
|
const searchPathMap = {};
|
||
|
for (const pattern of patterns) {
|
||
|
const key = IS_WINDOWS
|
||
|
? pattern.searchPath.toUpperCase()
|
||
|
: pattern.searchPath;
|
||
|
searchPathMap[key] = 'candidate';
|
||
|
}
|
||
|
const result = [];
|
||
|
for (const pattern of patterns) {
|
||
|
// Check if already included
|
||
|
const key = IS_WINDOWS
|
||
|
? pattern.searchPath.toUpperCase()
|
||
|
: pattern.searchPath;
|
||
|
if (searchPathMap[key] === 'included') {
|
||
|
continue;
|
||
|
}
|
||
|
// Check for an ancestor search path
|
||
|
let foundAncestor = false;
|
||
|
let tempKey = key;
|
||
|
let parent = pathHelper.dirname(tempKey);
|
||
|
while (parent !== tempKey) {
|
||
|
if (searchPathMap[parent]) {
|
||
|
foundAncestor = true;
|
||
|
break;
|
||
|
}
|
||
|
tempKey = parent;
|
||
|
parent = pathHelper.dirname(tempKey);
|
||
|
}
|
||
|
// Include the search pattern in the result
|
||
|
if (!foundAncestor) {
|
||
|
result.push(pattern.searchPath);
|
||
|
searchPathMap[key] = 'included';
|
||
|
}
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
exports.getSearchPaths = getSearchPaths;
|
||
|
/**
|
||
|
* Matches the patterns against the path
|
||
|
*/
|
||
|
function match(patterns, itemPath) {
|
||
|
let result = internal_match_kind_1.MatchKind.None;
|
||
|
for (const pattern of patterns) {
|
||
|
if (pattern.negate) {
|
||
|
result &= ~pattern.match(itemPath);
|
||
|
}
|
||
|
else {
|
||
|
result |= pattern.match(itemPath);
|
||
|
}
|
||
|
}
|
||
|
return result;
|
||
|
}
|
||
|
exports.match = match;
|
||
|
/**
|
||
|
* Checks whether to descend further into the directory
|
||
|
*/
|
||
|
function partialMatch(patterns, itemPath) {
|
||
|
return patterns.some(x => !x.negate && x.partialMatch(itemPath));
|
||
|
}
|
||
|
exports.partialMatch = partialMatch;
|
||
|
//# sourceMappingURL=internal-pattern-helper.js.map
|