UNPKG

create-react-native-library

Version:
35 lines (34 loc) 1.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.alignDependencyVersionsWithExampleApp = alignDependencyVersionsWithExampleApp; var _path = _interopRequireDefault(require("path")); var _fsExtra = _interopRequireDefault(require("fs-extra")); var _sortObjectKeys = _interopRequireDefault(require("../utils/sortObjectKeys")); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } async function alignDependencyVersionsWithExampleApp(pkg, folder, config) { const examplePackageJson = await _fsExtra.default.readJSON(_path.default.join(folder, 'example', 'package.json')); const PACKAGES_TO_COPY = ['react', 'react-native', '@types/react']; if (config.example === 'vanilla' && (config.project.moduleConfig === 'turbo-modules' || config.project.viewConfig === 'fabric-view')) { // React Native doesn't provide the community CLI as a dependency. // We have to read the version from the example app and put to the root package json PACKAGES_TO_COPY.push('@react-native-community/cli'); } const devDependencies = {}; PACKAGES_TO_COPY.forEach(name => { if (name) { const version = examplePackageJson.dependencies?.[name] ?? examplePackageJson.devDependencies?.[name]; if (version != null) { devDependencies[name] = version; } else if (pkg.devDependencies?.[name] == null) { throw new Error(`Couldn't find the package "${name}" in the example app.`); } } }); pkg['devDependencies'] = (0, _sortObjectKeys.default)({ ...pkg['devDependencies'], ...devDependencies }); } //# sourceMappingURL=dependencies.js.map