react-native-integrate
Version:
Automate integration of additional code into React Native projects
28 lines (27 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.analyzePackages = analyzePackages;
const getInstalledPackages_1 = require("./getInstalledPackages");
const updateIntegrationStatus_1 = require("./updateIntegrationStatus");
function analyzePackages(forceIntegratePackageName) {
const installedPackages = (0, getInstalledPackages_1.getInstalledPackages)();
const { lockData, justCreated: justCreatedLockFile } = (0, updateIntegrationStatus_1.readLockFile)();
if (forceIntegratePackageName) {
// delete from lock to get force integrated
delete lockData.packages[forceIntegratePackageName];
}
const newPackages = installedPackages.filter(([packageName]) => !(packageName in lockData.packages));
const updatedPackages = installedPackages.filter(([packageName, version]) => packageName in lockData.packages &&
version !== lockData.packages[packageName].version);
const deletedPackages = Object.entries(lockData.packages).filter(([packageName]) => installedPackages.every(([installedPackageName]) => installedPackageName != packageName));
const integratedPackages = Object.entries(lockData.packages).filter(([, packageLock]) => packageLock.integrated);
return {
installedPackages,
newPackages,
updatedPackages,
deletedPackages,
integratedPackages,
justCreatedLockFile,
forceIntegratePackageName,
};
}