create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
66 lines (50 loc) • 1.85 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = makeBuildPatch;
function _fs() {
const data = _interopRequireDefault(require("fs"));
_fs = function () {
return data;
};
return data;
}
var _normalizeProjectName = _interopRequireDefault(require("./normalizeProjectName"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
const depConfigs = ['compile', 'api', 'implementation'];
function makeBuildPatch(name, buildGradlePath) {
const normalizedProjectName = (0, _normalizeProjectName.default)(name);
const installPattern = new RegExp(buildDepRegExp(normalizedProjectName, ...depConfigs));
return {
installPattern,
pattern: /[^ \t]dependencies {(\r\n|\n)/,
patch: makePatchString(normalizedProjectName, buildGradlePath)
};
}
function makePatchString(normalizedProjectName, buildGradlePath) {
const defaultPatchString = ` implementation project(':${normalizedProjectName}')\n`;
if (!buildGradlePath) {
return defaultPatchString;
}
const buildGradle = _fs().default.readFileSync(buildGradlePath, 'utf8');
for (const config of depConfigs) {
const depPattern = new RegExp(buildDepRegExp(normalizedProjectName, config));
if (depPattern.test(buildGradle)) {
return ` ${config} project(':${normalizedProjectName}')\n`;
}
}
return defaultPatchString;
}
function buildDepRegExp(normalizedProjectName, ...configs) {
const orConfigs = configs.join('|');
return `(${orConfigs})\\w*\\s*\\(*project\\s*\\(['"]:${normalizedProjectName}['"]\\)`;
}
//# sourceMappingURL=makeBuildPatch.js.map
;