/
githubmirror
/
yarn
Обзор
Документация
Войти
/
githubmirror
/
yarn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
packages/pkg-tests/pkg-tests-core/sources/utils/misc.js
43 строки
1 KB
Maël Nison
Pkg-tests testsuite (#5392)
27 фев 2018, 20:30
Не верифицирован
27 фев 2018, 20:30
5fc6f7f
Код
Авторство
О чём код?
/* @flow */ const {Minimatch} = require('minimatch'); const path = require('path'); exports.stringPatternMatch = function stringPatternMatch( string: string, patterns: Array<string>, {matchBase = false, dot = true}: {|matchBase?: boolean, dot?: boolean|} = {}, ): boolean { const compiledPatterns = (Array.isArray(patterns) ? patterns : [patterns]).map( pattern => new Minimatch(pattern, {matchBase, dot}), ); // If there's only negated patterns, we assume that everything should match by default let status = compiledPatterns.every(compiledPattern => compiledPattern.negated); for (const compiledPattern of compiledPatterns) { if (compiledPattern.negated) { if (!status) { continue; } status = compiledPattern.match(string) === false; } else { if (status) { continue; } status = compiledPattern.match(string) === true; } } return status; }; exports.filePatternMatch = function filePatternMatch( filePath: string, patterns: Array<string>, {matchBase = true, dot = true}: {|matchBase?: boolean, dot?: boolean|} = {}, ): boolean { return exports.stringPatternMatch(path.resolve('/', filePath), patterns, {matchBase, dot}); };