25 lines
		
	
	
		
			755 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			755 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | /** | ||
|  |  * @license | ||
|  |  * Copyright Google LLC All Rights Reserved. | ||
|  |  * | ||
|  |  * Use of this source code is governed by an MIT-style license that can be | ||
|  |  * found in the LICENSE file at https://angular.io/license
 | ||
|  |  */ | ||
|  | import {IMinimatch, Minimatch} from 'minimatch'; | ||
|  | 
 | ||
|  | /** Map that holds patterns and their corresponding Minimatch globs. */ | ||
|  | const patternCache = new Map<string, IMinimatch>(); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Gets a glob for the given pattern. The cached glob will be returned | ||
|  |  * if available. Otherwise a new glob will be created and cached. | ||
|  |  */ | ||
|  | export function getOrCreateGlob(pattern: string) { | ||
|  |   if (patternCache.has(pattern)) { | ||
|  |     return patternCache.get(pattern)!; | ||
|  |   } | ||
|  |   const glob = new Minimatch(pattern, {dot: true}); | ||
|  |   patternCache.set(pattern, glob); | ||
|  |   return glob; | ||
|  | } |