@onereach/get-version-data
Version:
CLI tool to get version data for deploy
47 lines (37 loc) • 1.19 kB
JavaScript
;
const path = require('path');
const parsePnpmLock = require('./pnpm_lock');
const parseNpmLock = require('./npm_lock');
const parseYarnLock = require('./yarn_lock');
const {getLockFile} = require('./utils');
async function getOneReachDependencies (rootPath, options) {
const lock = await getLockFile(rootPath)
if (!lock) return {};
const deps = await getDependencies(lock, options);
return extractOnereachPackages(deps, options);
}
async function getDependencies (lock, options) {
switch (lock.type) {
case 'pnpm':
return parsePnpmLock(lock, options);
case 'yarn':
return parseYarnLock(lock, options);
case 'npm':
return parseNpmLock(lock, options);
default:
return {};
}
}
function extractOnereachPackages (dependencies) {
const filteredDeps = Object.entries(dependencies || {})
.filter(([name, version]) => {
return version.includes('//git@gitlab.com:onereach')
|| name.startsWith('//git@gitlab.internal.onereach.io')
|| name.startsWith('@onereach/')
|| name.startsWith('@or-')
})
return Object.fromEntries(filteredDeps);
}
module.exports = {
getOneReachDependencies,
}