aboutsummaryrefslogtreecommitdiffstats
path: root/node_modules/tar/dist/esm/get-write-flag.js
diff options
context:
space:
mode:
authorpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
committerpack <pack@packgekko.xyz>2026-08-09 10:37:07 +0000
commit55a4f1fc869e41aca748c63d3018f0448b1606e0 (patch)
treed132d1d01772b6d53faee3e63c534dea5706b78a /node_modules/tar/dist/esm/get-write-flag.js
downloadcrud-55a4f1fc869e41aca748c63d3018f0448b1606e0.tar.gz
first commit
Diffstat (limited to '')
-rw-r--r--node_modules/tar/dist/esm/get-write-flag.js26
1 files changed, 26 insertions, 0 deletions
diff --git a/node_modules/tar/dist/esm/get-write-flag.js b/node_modules/tar/dist/esm/get-write-flag.js
new file mode 100644
index 0000000..73d5745
--- /dev/null
+++ b/node_modules/tar/dist/esm/get-write-flag.js
@@ -0,0 +1,26 @@
+// 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.
+import fs from 'fs';
+const platform = process.env.__FAKE_PLATFORM__ || process.platform;
+const isWindows = platform === 'win32';
+/* c8 ignore start */
+const { O_CREAT, O_NOFOLLOW, O_TRUNC, O_WRONLY } = fs.constants;
+const UV_FS_O_FILEMAP = Number(process.env.__FAKE_FS_O_FILENAME__) ||
+ fs.constants.UV_FS_O_FILEMAP ||
+ 0;
+/* c8 ignore stop */
+const fMapEnabled = isWindows && !!UV_FS_O_FILEMAP;
+const fMapLimit = 512 * 1024;
+const fMapFlag = UV_FS_O_FILEMAP | O_TRUNC | O_CREAT | O_WRONLY;
+const noFollowFlag = !isWindows && typeof O_NOFOLLOW === 'number' ?
+ O_NOFOLLOW | O_TRUNC | O_CREAT | O_WRONLY
+ : null;
+export const getWriteFlag = noFollowFlag !== null ? () => noFollowFlag
+ : !fMapEnabled ? () => 'w'
+ : (size) => (size < fMapLimit ? fMapFlag : 'w');
+//# sourceMappingURL=get-write-flag.js.map \ No newline at end of file