add hw2
This commit is contained in:
		
							
								
								
									
										115
									
								
								node_modules/glob/dist/esm/ignore.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								node_modules/glob/dist/esm/ignore.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,115 @@ | ||||
| // give it a pattern, and it'll be able to tell you if | ||||
| // a given path should be ignored. | ||||
| // Ignoring a path ignores its children if the pattern ends in /** | ||||
| // Ignores are always parsed in dot:true mode | ||||
| import { Minimatch } from 'minimatch'; | ||||
| import { Pattern } from './pattern.js'; | ||||
| const defaultPlatform = (typeof process === 'object' && | ||||
|     process && | ||||
|     typeof process.platform === 'string') ? | ||||
|     process.platform | ||||
|     : 'linux'; | ||||
| /** | ||||
|  * Class used to process ignored patterns | ||||
|  */ | ||||
| export class Ignore { | ||||
|     relative; | ||||
|     relativeChildren; | ||||
|     absolute; | ||||
|     absoluteChildren; | ||||
|     platform; | ||||
|     mmopts; | ||||
|     constructor(ignored, { nobrace, nocase, noext, noglobstar, platform = defaultPlatform, }) { | ||||
|         this.relative = []; | ||||
|         this.absolute = []; | ||||
|         this.relativeChildren = []; | ||||
|         this.absoluteChildren = []; | ||||
|         this.platform = platform; | ||||
|         this.mmopts = { | ||||
|             dot: true, | ||||
|             nobrace, | ||||
|             nocase, | ||||
|             noext, | ||||
|             noglobstar, | ||||
|             optimizationLevel: 2, | ||||
|             platform, | ||||
|             nocomment: true, | ||||
|             nonegate: true, | ||||
|         }; | ||||
|         for (const ign of ignored) | ||||
|             this.add(ign); | ||||
|     } | ||||
|     add(ign) { | ||||
|         // this is a little weird, but it gives us a clean set of optimized | ||||
|         // minimatch matchers, without getting tripped up if one of them | ||||
|         // ends in /** inside a brace section, and it's only inefficient at | ||||
|         // the start of the walk, not along it. | ||||
|         // It'd be nice if the Pattern class just had a .test() method, but | ||||
|         // handling globstars is a bit of a pita, and that code already lives | ||||
|         // in minimatch anyway. | ||||
|         // Another way would be if maybe Minimatch could take its set/globParts | ||||
|         // as an option, and then we could at least just use Pattern to test | ||||
|         // for absolute-ness. | ||||
|         // Yet another way, Minimatch could take an array of glob strings, and | ||||
|         // a cwd option, and do the right thing. | ||||
|         const mm = new Minimatch(ign, this.mmopts); | ||||
|         for (let i = 0; i < mm.set.length; i++) { | ||||
|             const parsed = mm.set[i]; | ||||
|             const globParts = mm.globParts[i]; | ||||
|             /* c8 ignore start */ | ||||
|             if (!parsed || !globParts) { | ||||
|                 throw new Error('invalid pattern object'); | ||||
|             } | ||||
|             // strip off leading ./ portions | ||||
|             // https://github.com/isaacs/node-glob/issues/570 | ||||
|             while (parsed[0] === '.' && globParts[0] === '.') { | ||||
|                 parsed.shift(); | ||||
|                 globParts.shift(); | ||||
|             } | ||||
|             /* c8 ignore stop */ | ||||
|             const p = new Pattern(parsed, globParts, 0, this.platform); | ||||
|             const m = new Minimatch(p.globString(), this.mmopts); | ||||
|             const children = globParts[globParts.length - 1] === '**'; | ||||
|             const absolute = p.isAbsolute(); | ||||
|             if (absolute) | ||||
|                 this.absolute.push(m); | ||||
|             else | ||||
|                 this.relative.push(m); | ||||
|             if (children) { | ||||
|                 if (absolute) | ||||
|                     this.absoluteChildren.push(m); | ||||
|                 else | ||||
|                     this.relativeChildren.push(m); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     ignored(p) { | ||||
|         const fullpath = p.fullpath(); | ||||
|         const fullpaths = `${fullpath}/`; | ||||
|         const relative = p.relative() || '.'; | ||||
|         const relatives = `${relative}/`; | ||||
|         for (const m of this.relative) { | ||||
|             if (m.match(relative) || m.match(relatives)) | ||||
|                 return true; | ||||
|         } | ||||
|         for (const m of this.absolute) { | ||||
|             if (m.match(fullpath) || m.match(fullpaths)) | ||||
|                 return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
|     childrenIgnored(p) { | ||||
|         const fullpath = p.fullpath() + '/'; | ||||
|         const relative = (p.relative() || '.') + '/'; | ||||
|         for (const m of this.relativeChildren) { | ||||
|             if (m.match(relative)) | ||||
|                 return true; | ||||
|         } | ||||
|         for (const m of this.absoluteChildren) { | ||||
|             if (m.match(fullpath)) | ||||
|                 return true; | ||||
|         } | ||||
|         return false; | ||||
|     } | ||||
| } | ||||
| //# sourceMappingURL=ignore.js.map | ||||
		Reference in New Issue
	
	Block a user
	 nik
					nik