@mongodb-js/mongodb-downloader 0.2.6 → 0.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +14 -10
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -9,14 +9,13 @@ const tar_1 = __importDefault(require("tar"));
|
|
|
9
9
|
const util_1 = require("util");
|
|
10
10
|
const fs_1 = require("fs");
|
|
11
11
|
const path_1 = __importDefault(require("path"));
|
|
12
|
-
const
|
|
12
|
+
const decompress_1 = __importDefault(require("decompress"));
|
|
13
13
|
const stream_1 = require("stream");
|
|
14
14
|
const mongodb_download_url_1 = __importDefault(require("mongodb-download-url"));
|
|
15
15
|
const debug_1 = __importDefault(require("debug"));
|
|
16
16
|
const debug = (0, debug_1.default)('mongodb-downloader');
|
|
17
17
|
async function downloadMongoDb(tmpdir, targetVersionSemverSpecifier = '*', options = {}) {
|
|
18
|
-
|
|
19
|
-
let wantsEnterprise = (_a = options.enterprise) !== null && _a !== void 0 ? _a : false;
|
|
18
|
+
let wantsEnterprise = options.enterprise ?? false;
|
|
20
19
|
async function lookupDownloadUrl() {
|
|
21
20
|
return (await (0, mongodb_download_url_1.default)({
|
|
22
21
|
version: targetVersionSemverSpecifier,
|
|
@@ -38,29 +37,34 @@ async function downloadMongoDb(tmpdir, targetVersionSemverSpecifier = '*', optio
|
|
|
38
37
|
exports.downloadMongoDb = downloadMongoDb;
|
|
39
38
|
const downloadPromises = {};
|
|
40
39
|
async function doDownload(tmpdir, isCryptLibrary, version, lookupDownloadUrl) {
|
|
41
|
-
var _a;
|
|
42
40
|
const downloadTarget = path_1.default.resolve(tmpdir, `mongodb-${process.platform}-${process.env.DISTRO_ID || 'none'}-${process.arch}-${version}`.replace(/[^a-zA-Z0-9_-]/g, ''));
|
|
43
|
-
return (
|
|
41
|
+
return (downloadPromises[downloadTarget] ??= (async () => {
|
|
44
42
|
const bindir = path_1.default.resolve(downloadTarget, isCryptLibrary && process.platform !== 'win32' ? 'lib' : 'bin');
|
|
45
43
|
try {
|
|
46
44
|
await fs_1.promises.stat(bindir);
|
|
47
45
|
debug(`Skipping download because ${downloadTarget} exists`);
|
|
48
46
|
return bindir;
|
|
49
47
|
}
|
|
50
|
-
catch
|
|
48
|
+
catch {
|
|
51
49
|
}
|
|
52
50
|
await fs_1.promises.mkdir(downloadTarget, { recursive: true });
|
|
53
51
|
const url = await lookupDownloadUrl();
|
|
54
52
|
debug(`Downloading ${url} into ${downloadTarget}...`);
|
|
53
|
+
const HWM = 1024 * 1024;
|
|
55
54
|
async function downloadAndExtract(withExtraStripDepth = 0) {
|
|
55
|
+
const response = await (0, node_fetch_1.default)(url, {
|
|
56
|
+
highWaterMark: HWM,
|
|
57
|
+
});
|
|
56
58
|
if (/\.tgz$|\.tar(\.[^.]+)?$/.exec(url)) {
|
|
57
|
-
const response = await (0, node_fetch_1.default)(url);
|
|
58
59
|
await (0, util_1.promisify)(stream_1.pipeline)(response.body, tar_1.default.x({ cwd: downloadTarget, strip: isCryptLibrary ? 0 : 1 }));
|
|
59
60
|
}
|
|
60
61
|
else {
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
const filename = path_1.default.join(downloadTarget, path_1.default.basename(new URL(url).pathname));
|
|
63
|
+
await (0, util_1.promisify)(stream_1.pipeline)(response.body, (0, fs_1.createWriteStream)(filename, { highWaterMark: HWM }));
|
|
64
|
+
debug(`Written file ${url} to ${filename}, extracting...`);
|
|
65
|
+
await (0, decompress_1.default)(filename, downloadTarget, {
|
|
63
66
|
strip: isCryptLibrary ? 0 : 1,
|
|
67
|
+
filter: (file) => path_1.default.extname(file.path) !== '.pdb',
|
|
64
68
|
});
|
|
65
69
|
}
|
|
66
70
|
try {
|
|
@@ -77,6 +81,6 @@ async function doDownload(tmpdir, isCryptLibrary, version, lookupDownloadUrl) {
|
|
|
77
81
|
await downloadAndExtract();
|
|
78
82
|
debug(`Download complete`, bindir);
|
|
79
83
|
return bindir;
|
|
80
|
-
})())
|
|
84
|
+
})());
|
|
81
85
|
}
|
|
82
86
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,4DAA+B;AAC/B,8CAAsB;AACtB,+BAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"email": "compass@mongodb.com"
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://github.com/mongodb-js/devtools-shared",
|
|
16
|
-
"version": "0.2.
|
|
16
|
+
"version": "0.2.7",
|
|
17
17
|
"repository": {
|
|
18
18
|
"type": "git",
|
|
19
19
|
"url": "https://github.com/mongodb-js/devtools-shared.git"
|
|
@@ -47,18 +47,18 @@
|
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
49
|
"debug": "^4.3.4",
|
|
50
|
-
"
|
|
50
|
+
"decompress": "^4.2.1",
|
|
51
51
|
"mongodb-download-url": "^1.3.0",
|
|
52
52
|
"node-fetch": "^2.6.11",
|
|
53
53
|
"tar": "^6.1.15"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@mongodb-js/eslint-config-devtools": "0.9.
|
|
57
|
-
"@mongodb-js/mocha-config-
|
|
56
|
+
"@mongodb-js/eslint-config-devtools": "0.9.10",
|
|
57
|
+
"@mongodb-js/mocha-config-devtools": "^1.0.1",
|
|
58
58
|
"@mongodb-js/prettier-config-devtools": "^1.0.1",
|
|
59
|
-
"@mongodb-js/tsconfig-
|
|
59
|
+
"@mongodb-js/tsconfig-devtools": "^1.0.1",
|
|
60
60
|
"@types/debug": "^4.1.8",
|
|
61
|
-
"@types/
|
|
61
|
+
"@types/decompress": "^4.2.4",
|
|
62
62
|
"@types/mocha": "^9.0.0",
|
|
63
63
|
"@types/node": "^17.0.35",
|
|
64
64
|
"@types/tar": "^6.1.5",
|
|
@@ -70,5 +70,5 @@
|
|
|
70
70
|
"prettier": "2.3.2",
|
|
71
71
|
"typescript": "^5.0.4"
|
|
72
72
|
},
|
|
73
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "9c41f233d529e7b5cac1849a0a07ca2076fcdbb0"
|
|
74
74
|
}
|