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;
|
||
|
}
|