15 lines
467 B
TypeScript
15 lines
467 B
TypeScript
export * as Wildcard from "./wildcard"
|
|
|
|
export function match(input: string, pattern: string) {
|
|
const normalized = input.replaceAll("\\", "/")
|
|
let escaped = pattern
|
|
.replaceAll("\\", "/")
|
|
.replace(/[.+^${}()|[\]\\]/g, "\\$&")
|
|
.replace(/\*/g, ".*")
|
|
.replace(/\?/g, ".")
|
|
|
|
if (escaped.endsWith(" .*")) escaped = escaped.slice(0, -3) + "( .*)?"
|
|
|
|
return new RegExp("^" + escaped + "$", process.platform === "win32" ? "si" : "s").test(normalized)
|
|
}
|