UNPKG

packagist-api-client

Version:

Packgist (PHP Package Repository) API client in JavaScript.

48 lines (47 loc) 1.67 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = __importDefault(require("axios")); async function getPackageMetadata(vp, ifModifiedSince = '') { try { const response = await axios_1.default.get(`https://repo.packagist.org/p/${constructVPString(vp)}.json`, { headers: { 'if-modified-since': ifModifiedSince }, }); return { data: response.data, lastModified: response.headers['last-modified'] }; } catch (e) { if (e && e.response && e.response.status === 304) { return { data: {}, lastModified: e.response.headers['last-modified'] }; } throw e; } } exports.getPackageMetadata = getPackageMetadata; async function getPackageDetails(vp) { try { const response = await axios_1.default.get(`https://packagist.org/packages/${constructVPString(vp)}.json`); return response.data; } catch (e) { throw e; } } exports.getPackageDetails = getPackageDetails; function constructVPString(vp) { if (typeof vp === 'string') { return vp; } else if (typeof vp === 'object') { return `${vp.vendor}/${vp.package}`; } else { throw Error(`Requires string ("[vendor]/[package]") or object({vendor: [vendor], package: [package]})`); } } async function getPackagistStats() { const response = await axios_1.default.get('https://packagist.org/statistics.json'); return response.data; } exports.getPackagistStats = getPackagistStats;