UNPKG

react-native-integrate

Version:

Automate integration of additional code into React Native projects

38 lines (37 loc) 1.76 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.importIntegrateLockJson = importIntegrateLockJson; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const picocolors_1 = __importDefault(require("picocolors")); const constants_1 = require("../../../constants"); const prompter_1 = require("../../../prompter"); const getProjectPath_1 = require("../../getProjectPath"); function importIntegrateLockJson(projectPath) { try { const lockFilePath = path_1.default.join(projectPath, constants_1.Constants.LOCK_FILE_NAME); if (!fs_1.default.existsSync(lockFilePath)) return null; const lockFile = fs_1.default.readFileSync(lockFilePath, 'utf-8'); // parse json file to object type const lockData = JSON.parse(lockFile); return { id: 'integrateLockJson', title: 'Integrate Lock File', value: `${Object.keys(lockData.packages).length} total, ${Object.values(lockData.packages).filter(x => x.integrated).length} integrated packages`, apply: () => setIntegrateLockJson(lockData), }; } catch (_e) { return null; } } async function setIntegrateLockJson(oldLockJson) { const lockFilePath = path_1.default.join((0, getProjectPath_1.getProjectPath)(), constants_1.Constants.LOCK_FILE_NAME); fs_1.default.writeFileSync(lockFilePath, JSON.stringify(oldLockJson, null, 2), 'utf-8'); (0, prompter_1.logMessage)(`imported ${picocolors_1.default.yellow('integrate-lock.json')}`); return Promise.resolve(); }