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.
		
		
		
		
		
			
		
			
				
					21 lines
				
				921 B
			
		
		
			
		
	
	
					21 lines
				
				921 B
			| 
											3 years ago
										 | // Get the appropriate flag to use for creating files
 | ||
|  | // We use fmap on Windows platforms for files less than
 | ||
|  | // 512kb.  This is a fairly low limit, but avoids making
 | ||
|  | // things slower in some cases.  Since most of what this
 | ||
|  | // library is used for is extracting tarballs of many
 | ||
|  | // relatively small files in npm packages and the like,
 | ||
|  | // it can be a big boost on Windows platforms.
 | ||
|  | // Only supported in Node v12.9.0 and above.
 | ||
|  | const platform = process.env.__FAKE_PLATFORM__ || process.platform | ||
|  | const isWindows = platform === 'win32' | ||
|  | const fs = global.__FAKE_TESTING_FS__ || require('fs') | ||
|  | 
 | ||
|  | /* istanbul ignore next */ | ||
|  | const { O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP = 0 } = fs.constants | ||
|  | 
 | ||
|  | const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP | ||
|  | const fMapLimit = 512 * 1024 | ||
|  | const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY | ||
|  | module.exports = !fMapEnabled ? () => 'w' | ||
|  |   : size => size < fMapLimit ? fMapFlag : 'w' |