UNPKG

@foxpage/foxpage-manager

Version:

foxpage resource manager

62 lines (61 loc) 2.04 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.fetchPackage = void 0; const https_1 = __importDefault(require("https")); const axios_1 = __importDefault(require("axios")); const fs_extra_1 = require("fs-extra"); const foxpage_shared_1 = require("@foxpage/foxpage-shared"); const download = async (url, opt) => { // At request level const agent = new https_1.default.Agent({ rejectUnauthorized: false, }); const config = Object.assign({ url, method: 'GET', httpsAgent: agent }, opt); return (await (0, axios_1.default)(config)).data; }; async function fetchFromNet(url, opt) { try { const content = await download(url, opt); const result = { content, }; return foxpage_shared_1.optional.ok(result); } catch (error) { return foxpage_shared_1.optional.fail(`download from url: ${url} fail: ${error.message}`); } } async function fetchFromFile(filepath) { try { const content = await (0, fs_extra_1.readFile)(filepath, 'utf8'); const result = { content: content, }; return foxpage_shared_1.optional.ok(result); } catch (error) { return foxpage_shared_1.optional.fail(`open file "${filepath}" fail: ${error.message}`); } } async function fetchPackage(source, opt) { try { if (typeof source === 'string') { return fetchFromNet(source, opt); } switch (source.type) { case 'url': return fetchFromNet(source.url, opt); case 'file': return fetchFromFile(source.filepath); case 'code': return foxpage_shared_1.optional.ok({ content: source.code }); } } catch (error) { return foxpage_shared_1.optional.fail(error); } } exports.fetchPackage = fetchPackage;