create-react-native-library
Version:
CLI to scaffold React Native libraries
55 lines (53 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.addNitroDependencyToLocalLibrary = addNitroDependencyToLocalLibrary;
exports.linkLocalLibrary = linkLocalLibrary;
var _fsExtra = _interopRequireDefault(require("fs-extra"));
var _path = _interopRequireDefault(require("path"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/** @returns `true` if successfull */
async function addNitroDependencyToLocalLibrary(config) {
if (config.versions.nitro === undefined) {
return false;
}
const appPackageJsonPath = await findAppPackageJsonPath();
if (appPackageJsonPath === null) {
return false;
}
const appPackageJson = await _fsExtra.default.readJson(appPackageJsonPath);
const dependencies = appPackageJson['dependencies'] ?? {};
dependencies['react-native-nitro-modules'] = config.versions.nitro;
appPackageJson['dependencies'] = dependencies;
await _fsExtra.default.writeJson(appPackageJsonPath, appPackageJson, {
spaces: 2
});
return true;
}
/** @returns `true` if successfull */
async function linkLocalLibrary(config, folder, packageManager) {
const appPackageJsonPath = await findAppPackageJsonPath();
if (appPackageJsonPath === null) {
return false;
}
const appPackageJson = await _fsExtra.default.readJson(appPackageJsonPath);
const isReactNativeProject = Boolean(appPackageJson.dependencies?.['react-native']);
if (!isReactNativeProject) {
return false;
}
const dependencies = appPackageJson['dependencies'] ?? {};
dependencies[config.project.slug] = packageManager === 'yarn' ? `link:./${_path.default.relative(process.cwd(), folder)}` : `file:./${_path.default.relative(process.cwd(), folder)}`;
await _fsExtra.default.writeJSON(appPackageJsonPath, appPackageJson, {
spaces: 2
});
return true;
}
async function findAppPackageJsonPath() {
const cwdPackageJson = _path.default.join(process.cwd(), 'package.json');
if (!(await _fsExtra.default.pathExists(cwdPackageJson))) {
return null;
}
return cwdPackageJson;
}
//# sourceMappingURL=local.js.map