Comparing version 4.3.23 to 4.3.24
@@ -7,3 +7,4 @@ import fs from 'fs'; | ||
createReadStream: typeof fs.createReadStream; | ||
stat: typeof fs.stat.__promisify__; | ||
}; | ||
export default _default; |
@@ -13,3 +13,4 @@ "use strict"; | ||
createReadStream: fs_1.default.createReadStream, | ||
stat: util_1.default.promisify(fs_1.default.stat), | ||
}; | ||
//# sourceMappingURL=fs.js.map |
@@ -29,18 +29,27 @@ "use strict"; | ||
const utils_1 = __importDefault(require("./utils")); | ||
const LARGE_FILE_THRESHOLD = 512 * 1024 * 1024; | ||
const STREAM_WATERMARK = 8 * 1024 * 1024; | ||
const readLargeFile = async (filepath, size) => new Promise((resolve, reject) => { | ||
let buffer = Buffer.allocUnsafe(size); | ||
let offset = 0; | ||
const stream = fs_1.default.createReadStream(filepath, { | ||
highWaterMark: STREAM_WATERMARK, | ||
}); | ||
stream.on('data', (chunk) => { | ||
chunk.copy(buffer, offset); | ||
offset += chunk.length; | ||
}); | ||
stream.on('end', () => { | ||
stream.close(); | ||
resolve(buffer); | ||
}); | ||
stream.on('error', (err) => { | ||
reject(err); | ||
}); | ||
}); | ||
const readFile = async (filepath) => { | ||
return new Promise((resolve, reject) => { | ||
const chunks = []; | ||
const stream = fs_1.default.createReadStream(filepath, { | ||
highWaterMark: 64 * 1024 * 1024, | ||
}); | ||
stream.on('data', (chunk) => { | ||
chunks.push(chunk); | ||
}); | ||
stream.on('end', () => { | ||
resolve(Buffer.concat(chunks)); | ||
}); | ||
stream.on('error', (err) => { | ||
reject(err); | ||
}); | ||
}); | ||
const fstat = await fs_1.default.stat(filepath); | ||
return fstat.size < LARGE_FILE_THRESHOLD | ||
? fs_1.default.readFile(filepath) | ||
: readLargeFile(filepath, fstat.size); | ||
}; | ||
@@ -47,0 +56,0 @@ const open = async (filepath, opts, cb) => { |
{ | ||
"name": "maxmind", | ||
"version": "4.3.23", | ||
"version": "4.3.24", | ||
"homepage": "https://github.com/runk/node-maxmind", | ||
@@ -37,3 +37,3 @@ "description": "IP lookup using Maxmind databases", | ||
"@types/netmask": "2.0.5", | ||
"@types/node": "22.8.6", | ||
"@types/node": "22.10.3", | ||
"@types/sinon": "17.0.3", | ||
@@ -43,7 +43,7 @@ "ip-address": "10.0.1", | ||
"jest": "29.7.0", | ||
"prettier": "3.3.3", | ||
"prettier": "3.4.2", | ||
"semantic-release": "24.2.0", | ||
"sinon": "19.0.2", | ||
"ts-jest": "29.2.5", | ||
"typescript": "5.6.3" | ||
"typescript": "5.7.2" | ||
}, | ||
@@ -50,0 +50,0 @@ "repository": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
24255
266