Last change
on this file since 59329aa was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago |
initial commit
|
-
Property mode
set to
100644
|
File size:
921 bytes
|
Rev | Line | |
---|
[6a3a178] | 1 | // Get the appropriate flag to use for creating files
|
---|
| 2 | // We use fmap on Windows platforms for files less than
|
---|
| 3 | // 512kb. This is a fairly low limit, but avoids making
|
---|
| 4 | // things slower in some cases. Since most of what this
|
---|
| 5 | // library is used for is extracting tarballs of many
|
---|
| 6 | // relatively small files in npm packages and the like,
|
---|
| 7 | // it can be a big boost on Windows platforms.
|
---|
| 8 | // Only supported in Node v12.9.0 and above.
|
---|
| 9 | const platform = process.env.__FAKE_PLATFORM__ || process.platform
|
---|
| 10 | const isWindows = platform === 'win32'
|
---|
| 11 | const fs = global.__FAKE_TESTING_FS__ || require('fs')
|
---|
| 12 |
|
---|
| 13 | /* istanbul ignore next */
|
---|
| 14 | const { O_CREAT, O_TRUNC, O_WRONLY, UV_FS_O_FILEMAP = 0 } = fs.constants
|
---|
| 15 |
|
---|
| 16 | const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP
|
---|
| 17 | const fMapLimit = 512 * 1024
|
---|
| 18 | const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY
|
---|
| 19 | module.exports = !fMapEnabled ? () => 'w'
|
---|
| 20 | : size => size < fMapLimit ? fMapFlag : 'w'
|
---|
Note:
See
TracBrowser
for help on using the repository browser.