react-native-integrate
Version:
Automate integration of additional code into React Native projects
44 lines (43 loc) • 1.79 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.importIntegrateConfig = importIntegrateConfig;
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 getIntegrateConfig_1 = require("../../getIntegrateConfig");
const getProjectPath_1 = require("../../getProjectPath");
function importIntegrateConfig(projectPath) {
try {
const configFilePath = path_1.default.join(projectPath, constants_1.Constants.INTEGRATE_CONFIG_FILE_NAME);
const integrateConfig = (0, getIntegrateConfig_1.getIntegrateConfig)(projectPath);
if (!integrateConfig)
return null;
return {
id: 'integrateConfigJs',
title: 'Integrate Config File',
value: `${integrateConfig.plugins?.length || '0'} plugin configuration`,
apply: () => setIntegrateConfig(configFilePath),
};
}
catch (_e) {
return null;
}
}
async function setIntegrateConfig(file) {
const destination = path_1.default.join((0, getProjectPath_1.getProjectPath)(), constants_1.Constants.INTEGRATE_CONFIG_FILE_NAME);
await new Promise((res, rej) => {
fs_1.default.copyFile(file, destination, err => {
if (err)
rej(err);
else
res(null);
});
});
(0, prompter_1.logMessage)(`imported ${picocolors_1.default.yellow('integrate.config.js')}`);
return Promise.resolve();
}