34 lines
827 B
JavaScript
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;
|
|
}
|