create-react-native-library
Version:
CLI to scaffold React Native libraries
34 lines (33 loc) • 1.56 kB
JavaScript
;
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) {
const examplePackageJson = await _fsExtra.default.readJSON(_path.default.join(folder, 'example', 'package.json'));
const PACKAGES_TO_COPY = ['react', 'react-native', '@types/react', '@react-native/babel-preset'];
const usesCodegen = pkg['react-native-builder-bob']?.targets?.some(target => Array.isArray(target) ? target[0] === 'codegen' : target === 'codegen') ?? false;
if (usesCodegen) {
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