123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.changePlaceholderInTemplate = changePlaceholderInTemplate;
- function _fs() {
- const data = _interopRequireDefault(require("fs"));
- _fs = function () {
- return data;
- };
- return data;
- }
- function _path() {
- const data = _interopRequireDefault(require("path"));
- _path = function () {
- return data;
- };
- return data;
- }
- function _cliTools() {
- const data = require("@react-native-community/cli-tools");
- _cliTools = function () {
- return data;
- };
- return data;
- }
- var _walk = _interopRequireDefault(require("../../tools/walk"));
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- /**
- TODO: This is a default placeholder for title in react-native template.
- We should get rid of this once custom templates adapt `placeholderTitle` in their configurations.
- */
- const DEFAULT_TITLE_PLACEHOLDER = 'Hello App Display Name';
- function replaceNameInUTF8File(filePath, projectName, templateName) {
- _cliTools().logger.debug(`Replacing in ${filePath}`);
- const fileContent = _fs().default.readFileSync(filePath, 'utf8');
- const replacedFileContent = fileContent.replace(new RegExp(templateName, 'g'), projectName).replace(new RegExp(templateName.toLowerCase(), 'g'), projectName.toLowerCase());
- if (fileContent !== replacedFileContent) {
- _fs().default.writeFileSync(filePath, replacedFileContent, 'utf8');
- }
- }
- function renameFile(filePath, oldName, newName) {
- const newFileName = _path().default.join(_path().default.dirname(filePath), _path().default.basename(filePath).replace(new RegExp(oldName, 'g'), newName));
- _cliTools().logger.debug(`Renaming ${filePath} -> file:${newFileName}`);
- _fs().default.renameSync(filePath, newFileName);
- }
- function shouldRenameFile(filePath, nameToReplace) {
- return _path().default.basename(filePath).includes(nameToReplace);
- }
- function shouldIgnoreFile(filePath) {
- return filePath.match(/node_modules|yarn.lock|package-lock.json/g);
- }
- const UNDERSCORED_DOTFILES = ['buckconfig', 'eslintrc.js', 'flowconfig', 'gitattributes', 'gitignore', 'prettierrc.js', 'watchmanconfig'];
- function processDotfiles(filePath) {
- const dotfile = UNDERSCORED_DOTFILES.find(e => filePath.includes(`_${e}`));
- if (dotfile === undefined) {
- return;
- }
- renameFile(filePath, `_${dotfile}`, `.${dotfile}`);
- }
- function changePlaceholderInTemplate({
- projectName,
- placeholderName,
- placeholderTitle = DEFAULT_TITLE_PLACEHOLDER,
- projectTitle = projectName
- }) {
- _cliTools().logger.debug(`Changing ${placeholderName} for ${projectName} in template`);
- (0, _walk.default)(process.cwd()).reverse().forEach(filePath => {
- if (shouldIgnoreFile(filePath)) {
- return;
- }
- if (!_fs().default.statSync(filePath).isDirectory()) {
- replaceNameInUTF8File(filePath, projectName, placeholderName);
- replaceNameInUTF8File(filePath, projectTitle, placeholderTitle);
- }
- if (shouldRenameFile(filePath, placeholderName)) {
- renameFile(filePath, placeholderName, projectName);
- }
- if (shouldRenameFile(filePath, placeholderName.toLowerCase())) {
- renameFile(filePath, placeholderName.toLowerCase(), projectName.toLowerCase());
- }
- processDotfiles(filePath);
- });
- }
- //# sourceMappingURL=editTemplate.js.map
|