UNPKG

materials-cli

Version:
28 lines (27 loc) 1.2 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.downloadURL = void 0; const axios_1 = __importDefault(require("axios")); const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); function downloadURL(folderPath, courseName, resource) { const fullFolderPath = path_1.default.join(folderPath, courseName, resource.category); fs_1.default.mkdirSync(fullFolderPath, { recursive: true }); const filePath = path_1.default.join(folderPath, courseName, resource.category, resource.title + ".pdf"); if (!fs_1.default.existsSync(filePath)) { return axios_1.default.get(resource.path, { responseType: "stream" }).then((response) => { const stream = response.data.pipe(fs_1.default.createWriteStream(filePath)); return new Promise((resolve, reject) => { stream.on("finish", () => { return resolve(true); }); }); }); } } exports.downloadURL = downloadURL;