| // 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' |