You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					53 lines
				
				1.8 KiB
			
		
		
			
		
	
	
					53 lines
				
				1.8 KiB
			| 
								 
											4 years ago
										 
									 | 
							
								# true-case-path
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Usage
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`trueCasePathSync(<fileSystemPath>)`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Description
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Given a possibly case-variant version of an existing filesystem path, returns
							 | 
						||
| 
								 | 
							
								the case-exact, normalized version as stored in the filesystem.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If the input path is a globbing *pattern* as defined by the 'glob' npm
							 | 
						||
| 
								 | 
							
								package, only the 1st match, if any, is returned.
							 | 
						||
| 
								 | 
							
								Only a literal input path guarantees an unambiguous result.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								If no matching path exists, undefined is returned.
							 | 
						||
| 
								 | 
							
								On case-SENSITIVE filesystems, a match will also be found, but if case
							 | 
						||
| 
								 | 
							
								variations of a given path exist, it is undefined which match is returned.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Platforms
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Windows, OSX, and Linux (though note the limitations with case-insensitive filesystems).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Limitations
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- Paths starting with `'./'` are acceptable, but paths starting with `'../'`
							 | 
						||
| 
								 | 
							
								  are not - when in doubt, resolve with `fs.realPathSync()` first.
							 | 
						||
| 
								 | 
							
								  An initial `'.'` and *interior* `'..'` instances are normalized, but a relative
							 | 
						||
| 
								 | 
							
								  input path still results in a relative output path. If you want to ensure
							 | 
						||
| 
								 | 
							
								  an absolute output path, apply `fs.realPathSync()` to the result.
							 | 
						||
| 
								 | 
							
								- On Windows, no attempt is made to case-correct the drive letter or UNC-share
							 | 
						||
| 
								 | 
							
								  component of the path.
							 | 
						||
| 
								 | 
							
								- Unicode support:
							 | 
						||
| 
								 | 
							
								  - Be sure to use UTF8 source-code files (with a BOM on Windows)
							 | 
						||
| 
								 | 
							
								  - On OSX, the input path is automatically converted to NFD Unicode form
							 | 
						||
| 
								 | 
							
								    to match how the filesystem stores names, but note that the result will
							 | 
						||
| 
								 | 
							
								    invariably be NFD too (which makes no difference for ASCII-characters-only
							 | 
						||
| 
								 | 
							
								    names).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Examples
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								const trueCasePathSync = require('true-case-path')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								trueCasePathSync('/users/guest') // OSX: -> '/Users/Guest'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								trueCasePathSync('c:\\users\\all users') // Windows: -> 'c:\Users\All Users'
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Attribution
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								The code for this project was sourced from [http://stackoverflow.com/a/33139702/45375](http://stackoverflow.com/a/33139702/45375)
							 |