UNPKG

@rnv/template-starter

Version:

🚧 Starter Template for ReNative (https://www.npmjs.com/package/renative). Supports `iOS`, `tvOS`, `Android`, `Android TV`, `FireTV`, `Android Wear`, `Web`, `Tizen TV`, `Tizen Watch`, `LG webOS`, `macOS/OSX`, `Windows`, `KaiOS`, `Linux

81 lines (69 loc) • 2.58 kB
const path = require('path'); const { createRnvContext, loadWorkspacesConfigSync, loadDefaultConfigTemplates, updateRenativeConfigs, overrideTemplatePlugins, createRnvApi, getConfigProp, doResolve, logError, RnvFileName, fsExistsSync, fsMkdirSync, fsReadFileSync, removeDirSync, revertOverrideToOriginal, } = require('@rnv/core'); const Logger = require('@rnv/cli/lib/logger'); const RNV_HOME_DIR = path.join(__dirname, '..'); (async () => { try { createRnvApi({ logger: Logger, getConfigProp, doResolve, }); createRnvContext({ RNV_HOME_DIR }); loadWorkspacesConfigSync(); await loadDefaultConfigTemplates(); await updateRenativeConfigs(); await resetOverrides(); await overrideTemplatePlugins(); } catch (error) { logError(error); } })(); const resetOverrides = async () => { const rnvFolder = path.join(process.cwd(), '.rnv'); if (!fsExistsSync(rnvFolder)) { fsMkdirSync(rnvFolder); } const overrideDir = path.join(rnvFolder, 'overrides'); const appliedOverrideFilePath = path.join(overrideDir, RnvFileName.appliedOverride); if (fsExistsSync(appliedOverrideFilePath)) { const appliedOverrides = JSON.parse(fsReadFileSync(appliedOverrideFilePath).toString()); Object.keys(appliedOverrides).forEach((moduleName) => { const appliedVersion = appliedOverrides[moduleName].version; const packageJsonPath = path.join(process.cwd(), 'node_modules', moduleName, RnvFileName.package); if (fsExistsSync(packageJsonPath)) { const packageContent = JSON.parse(fsReadFileSync(packageJsonPath).toString()); const currentVersion = packageContent.version; if (currentVersion === appliedVersion) { const packageOverrides = appliedOverrides[moduleName]; Object.keys(packageOverrides).forEach((filePath) => { if (filePath !== 'version') { const backupPath = path.join(overrideDir, moduleName, filePath); const destinationPath = path.join(process.cwd(), 'node_modules', moduleName, filePath); revertOverrideToOriginal(destinationPath, backupPath); } }); } } }); removeDirSync(overrideDir); return true; } return false; };