unpkg/modules/__mocks__/npmMock.js

34 lines
827 B
JavaScript

import fs from 'fs';
import path from 'path';
function getPackageInfo(packageName) {
const file = path.resolve(__dirname, `./metadata/${packageName}.json`);
try {
return JSON.parse(fs.readFileSync(file, 'utf-8'));
} catch (error) {
return null;
}
}
export function getVersionsAndTags(packageName) {
const info = getPackageInfo(packageName);
return info
? { versions: Object.keys(info.versions), tags: info['dist-tags'] }
: [];
}
export function getPackageConfig(packageName, version) {
const info = getPackageInfo(packageName);
return info ? info.versions[version] : null;
}
export function getPackage(packageName, version) {
const file = path.resolve(
__dirname,
`./packages/${packageName}-${version}.tgz`
);
return fs.existsSync(file) ? fs.createReadStream(file) : null;
}