@codeleap/cli 6.3.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/commands/configure.js +26 -61
  2. package/dist/commands/configure.js.map +1 -0
  3. package/dist/commands/configureSplash/index.js +21 -61
  4. package/dist/commands/configureSplash/index.js.map +1 -0
  5. package/dist/commands/configureSplash/utils.js +68 -86
  6. package/dist/commands/configureSplash/utils.js.map +1 -0
  7. package/dist/commands/configureTheme/index.js +31 -80
  8. package/dist/commands/configureTheme/index.js.map +1 -0
  9. package/dist/commands/configureTheme/types.js +1 -0
  10. package/dist/commands/configureTheme/types.js.map +1 -0
  11. package/dist/commands/configureTheme/utils.js +110 -105
  12. package/dist/commands/configureTheme/utils.js.map +1 -0
  13. package/dist/commands/convertorWebp.js +93 -189
  14. package/dist/commands/convertorWebp.js.map +1 -0
  15. package/dist/commands/createApp.js +24 -62
  16. package/dist/commands/createApp.js.map +1 -0
  17. package/dist/commands/createComponent/index.js +54 -88
  18. package/dist/commands/createComponent/index.js.map +1 -0
  19. package/dist/commands/createComponent/utils.js +66 -34
  20. package/dist/commands/createComponent/utils.js.map +1 -0
  21. package/dist/commands/downloadKeystores.js +11 -47
  22. package/dist/commands/downloadKeystores.js.map +1 -0
  23. package/dist/commands/keystoresAndroid.js +6 -40
  24. package/dist/commands/keystoresAndroid.js.map +1 -0
  25. package/dist/commands/linguiTranslate.js +64 -195
  26. package/dist/commands/linguiTranslate.js.map +1 -0
  27. package/dist/commands/rename.js +49 -110
  28. package/dist/commands/rename.js.map +1 -0
  29. package/dist/commands/syncIcons.js +29 -74
  30. package/dist/commands/syncIcons.js.map +1 -0
  31. package/dist/constants.js +42 -20
  32. package/dist/constants.js.map +1 -0
  33. package/dist/index.js +14 -13
  34. package/dist/index.js.map +1 -0
  35. package/dist/lib/Command.js +23 -76
  36. package/dist/lib/Command.js.map +1 -0
  37. package/dist/lib/android/index.js +1 -0
  38. package/dist/lib/android/index.js.map +1 -0
  39. package/dist/lib/android/keystore.js +91 -117
  40. package/dist/lib/android/keystore.js.map +1 -0
  41. package/dist/lib/android/rename.js +131 -246
  42. package/dist/lib/android/rename.js.map +1 -0
  43. package/dist/lib/android/utils.js +41 -36
  44. package/dist/lib/android/utils.js.map +1 -0
  45. package/dist/lib/createApp/common.js +13 -41
  46. package/dist/lib/createApp/common.js.map +1 -0
  47. package/dist/lib/createApp/mobile.js +120 -176
  48. package/dist/lib/createApp/mobile.js.map +1 -0
  49. package/dist/lib/firebase.js +11 -33
  50. package/dist/lib/firebase.js.map +1 -0
  51. package/dist/lib/index.js +4 -3
  52. package/dist/lib/index.js.map +1 -0
  53. package/dist/lib/ios/index.js +1 -0
  54. package/dist/lib/ios/index.js.map +1 -0
  55. package/dist/lib/ios/rename.js +90 -140
  56. package/dist/lib/ios/rename.js.map +1 -0
  57. package/dist/lib/ios/utils.js +21 -10
  58. package/dist/lib/ios/utils.js.map +1 -0
  59. package/dist/lib/spinner.js +21 -52
  60. package/dist/lib/spinner.js.map +1 -0
  61. package/dist/lib/utils.js +56 -32
  62. package/dist/lib/utils.js.map +1 -0
  63. package/dist/lib/walk.js +65 -87
  64. package/dist/lib/walk.js.map +1 -0
  65. package/dist/types.js +1 -0
  66. package/dist/types.js.map +1 -0
  67. package/dist/utils/index.js +1 -0
  68. package/dist/utils/index.js.map +1 -0
  69. package/dist/utils/misc.js +45 -34
  70. package/dist/utils/misc.js.map +1 -0
  71. package/package.json +10 -5
  72. package/.gitattributes +0 -1
  73. package/package.json.bak +0 -45
@@ -8,104 +8,33 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __read = (this && this.__read) || function (o, n) {
39
- var m = typeof Symbol === "function" && o[Symbol.iterator];
40
- if (!m) return o;
41
- var i = m.call(o), r, ar = [], e;
42
- try {
43
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
- }
45
- catch (error) { e = { error: error }; }
46
- finally {
47
- try {
48
- if (r && !r.done && (m = i["return"])) m.call(i);
49
- }
50
- finally { if (e) throw e.error; }
51
- }
52
- return ar;
53
- };
54
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
- if (ar || !(i in from)) {
57
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
- ar[i] = from[i];
59
- }
60
- }
61
- return to.concat(ar || Array.prototype.slice.call(from));
62
- };
63
- var __values = (this && this.__values) || function(o) {
64
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
65
- if (m) return m.call(o);
66
- if (o && typeof o.length === "number") return {
67
- next: function () {
68
- if (o && i >= o.length) o = void 0;
69
- return { value: o && o[i++], done: !o };
70
- }
71
- };
72
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
73
- };
74
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
75
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
76
13
  };
77
14
  Object.defineProperty(exports, "__esModule", { value: true });
78
15
  exports.linguiTranslateCommand = void 0;
79
- var axios_1 = __importDefault(require("axios"));
80
- var Command_1 = require("../lib/Command");
81
- var utils_1 = require("../utils");
82
- var constants_1 = require("../constants");
83
- var cli_progress_1 = __importDefault(require("cli-progress"));
84
- var testEnabled = false;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const Command_1 = require("../lib/Command");
18
+ const utils_1 = require("../utils");
19
+ const constants_1 = require("../constants");
20
+ const cli_progress_1 = __importDefault(require("cli-progress"));
21
+ const testEnabled = false;
85
22
  function translate(text, options) {
86
- return __awaiter(this, void 0, void 0, function () {
87
- var base, response, result;
88
- return __generator(this, function (_a) {
89
- switch (_a.label) {
90
- case 0:
91
- if (testEnabled) {
92
- return [2 /*return*/, new Promise(function (resolve, reject) {
93
- return setTimeout(function () {
94
- resolve("Test");
95
- }, 1000);
96
- })];
97
- }
98
- base = "https://translate.googleapis.com/translate_a/single";
99
- return [4 /*yield*/, axios_1.default.post("".concat(base, "?client=gtx&sl=").concat(options === null || options === void 0 ? void 0 : options.from, "&tl=").concat(options === null || options === void 0 ? void 0 : options.to, "&dt=t&q=").concat(encodeURIComponent(text)))];
100
- case 1:
101
- response = _a.sent();
102
- result = response.data;
103
- result = result && result[0] && result[0][0] && result[0].map(function (s) { return s[0]; }).join("");
104
- if (!result)
105
- return [2 /*return*/, null];
106
- return [2 /*return*/, new Promise(function (resolve, reject) { return setTimeout(function () { return resolve(result); }, 1000); })];
107
- }
108
- });
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ if (testEnabled) {
25
+ return new Promise((resolve, reject) => {
26
+ return setTimeout(() => {
27
+ resolve("Test");
28
+ }, 1000);
29
+ });
30
+ }
31
+ const base = "https://translate.googleapis.com/translate_a/single";
32
+ let response = yield axios_1.default.post(`${base}?client=gtx&sl=${options === null || options === void 0 ? void 0 : options.from}&tl=${options === null || options === void 0 ? void 0 : options.to}&dt=t&q=${encodeURIComponent(text)}`);
33
+ let result = response.data;
34
+ result = result && result[0] && result[0][0] && result[0].map((s) => s[0]).join("");
35
+ if (!result)
36
+ return null;
37
+ return new Promise((resolve, reject) => setTimeout(() => resolve(result), 1000));
109
38
  });
110
39
  }
111
40
  exports.linguiTranslateCommand = (0, Command_1.codeleapCommand)({
@@ -113,108 +42,48 @@ exports.linguiTranslateCommand = (0, Command_1.codeleapCommand)({
113
42
  help: {
114
43
  description: 'Translate app locales',
115
44
  },
116
- }, function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
117
- var bar, quotesRegex, baseLanguage, locales, basePoContent, finished;
118
- var _ = _b._;
119
- return __generator(this, function (_c) {
120
- switch (_c.label) {
121
- case 0:
122
- console.log("Starting translation process, this may take some time");
123
- bar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
124
- quotesRegex = /msgstr\s+"(.*?)"/;
125
- baseLanguage = constants_1.USER_CONFIG.translate.baseLanguage;
126
- locales = (0, utils_1.resolveDir)(function (config) { return config.translate.localesDir; }).filter(function (l) { return l.endsWith('.po'); });
127
- basePoContent = (0, utils_1.resolveFile)(function (config) { return [config.translate.localesDir, baseLanguage + '.po']; }).split('\n');
128
- bar.start(basePoContent.length, 0);
129
- return [4 /*yield*/, new Promise(function (resolve, reject) { return __awaiter(void 0, void 0, void 0, function () {
130
- var _loop_1, locales_1, locales_1_1, po, e_1_1;
131
- var e_1, _a;
132
- return __generator(this, function (_b) {
133
- switch (_b.label) {
134
- case 0:
135
- _loop_1 = function (po) {
136
- var language, poContent, updatedPoContent, i, currentLanguageLine, baseLanguageLine, hadTranslated, isNotTextLine, text, translatedText;
137
- return __generator(this, function (_c) {
138
- switch (_c.label) {
139
- case 0:
140
- bar.update(0);
141
- language = po.split('.')[0];
142
- if (language === baseLanguage)
143
- return [2 /*return*/, "continue"];
144
- console.log("\nTranslating locale: ".concat(language));
145
- poContent = (0, utils_1.resolveFile)(function (config) { return [config.translate.localesDir, po]; }).split('\n');
146
- updatedPoContent = __spreadArray([], __read(poContent), false);
147
- i = 0;
148
- _c.label = 1;
149
- case 1:
150
- if (!(i < basePoContent.length)) return [3 /*break*/, 4];
151
- currentLanguageLine = poContent[i];
152
- baseLanguageLine = basePoContent[i];
153
- hadTranslated = !currentLanguageLine.includes('""');
154
- isNotTextLine = !currentLanguageLine.includes('msgstr');
155
- if (isNotTextLine || hadTranslated)
156
- return [3 /*break*/, 3];
157
- text = baseLanguageLine.match(quotesRegex)[1];
158
- return [4 /*yield*/, translate(text, { from: baseLanguage, to: language })];
159
- case 2:
160
- translatedText = _c.sent();
161
- if (translatedText) {
162
- updatedPoContent[i] = currentLanguageLine.replace(quotesRegex, "msgstr \"".concat(translatedText, "\""));
163
- }
164
- bar.update(i + 1);
165
- _c.label = 3;
166
- case 3:
167
- i++;
168
- return [3 /*break*/, 1];
169
- case 4:
170
- if (!testEnabled) {
171
- (0, utils_1.writeFile)(function (config) { return [config.translate.localesDir, po]; }, updatedPoContent.join('\n'));
172
- }
173
- bar.increment();
174
- console.log("\nCompleted translation locale: ".concat(language));
175
- return [2 /*return*/];
176
- }
177
- });
178
- };
179
- _b.label = 1;
180
- case 1:
181
- _b.trys.push([1, 6, 7, 8]);
182
- locales_1 = __values(locales), locales_1_1 = locales_1.next();
183
- _b.label = 2;
184
- case 2:
185
- if (!!locales_1_1.done) return [3 /*break*/, 5];
186
- po = locales_1_1.value;
187
- return [5 /*yield**/, _loop_1(po)];
188
- case 3:
189
- _b.sent();
190
- _b.label = 4;
191
- case 4:
192
- locales_1_1 = locales_1.next();
193
- return [3 /*break*/, 2];
194
- case 5: return [3 /*break*/, 8];
195
- case 6:
196
- e_1_1 = _b.sent();
197
- e_1 = { error: e_1_1 };
198
- return [3 /*break*/, 8];
199
- case 7:
200
- try {
201
- if (locales_1_1 && !locales_1_1.done && (_a = locales_1.return)) _a.call(locales_1);
202
- }
203
- finally { if (e_1) throw e_1.error; }
204
- return [7 /*endfinally*/];
205
- case 8:
206
- setTimeout(function () { return resolve(true); }, 1000);
207
- return [2 /*return*/];
208
- }
209
- });
210
- }); })];
211
- case 1:
212
- finished = _c.sent();
213
- if (finished) {
214
- console.log("\nAll translations completed successfully");
215
- process.exit(0);
45
+ }, (_a) => __awaiter(void 0, [_a], void 0, function* ({ _ }) {
46
+ console.log(`Starting translation process, this may take some time`);
47
+ const bar = new cli_progress_1.default.SingleBar({}, cli_progress_1.default.Presets.shades_classic);
48
+ const quotesRegex = /msgstr\s+"(.*?)"/;
49
+ const baseLanguage = constants_1.USER_CONFIG.translate.baseLanguage;
50
+ const locales = (0, utils_1.resolveDir)(config => config.translate.localesDir).filter(l => l.endsWith('.po'));
51
+ const basePoContent = (0, utils_1.resolveFile)(config => [config.translate.localesDir, baseLanguage + '.po']).split('\n');
52
+ bar.start(basePoContent.length, 0);
53
+ const finished = yield new Promise((resolve, reject) => __awaiter(void 0, void 0, void 0, function* () {
54
+ for (const po of locales) {
55
+ bar.update(0);
56
+ const language = po.split('.')[0];
57
+ if (language === baseLanguage)
58
+ continue;
59
+ console.log(`\nTranslating locale: ${language}`);
60
+ const poContent = (0, utils_1.resolveFile)(config => [config.translate.localesDir, po]).split('\n');
61
+ let updatedPoContent = [...poContent];
62
+ for (let i = 0; i < basePoContent.length; i++) {
63
+ const currentLanguageLine = poContent[i];
64
+ const baseLanguageLine = basePoContent[i];
65
+ const hadTranslated = !currentLanguageLine.includes('""');
66
+ const isNotTextLine = !currentLanguageLine.includes('msgstr');
67
+ if (isNotTextLine || hadTranslated)
68
+ continue;
69
+ const text = baseLanguageLine.match(quotesRegex)[1];
70
+ const translatedText = yield translate(text, { from: baseLanguage, to: language });
71
+ if (translatedText) {
72
+ updatedPoContent[i] = currentLanguageLine.replace(quotesRegex, `msgstr "${translatedText}"`);
216
73
  }
217
- return [2 /*return*/];
74
+ bar.update(i + 1);
75
+ }
76
+ if (!testEnabled) {
77
+ (0, utils_1.writeFile)(config => [config.translate.localesDir, po], updatedPoContent.join('\n'));
78
+ }
79
+ bar.increment();
80
+ console.log(`\nCompleted translation locale: ${language}`);
218
81
  }
219
- });
220
- }); });
82
+ setTimeout(() => resolve(true), 1000);
83
+ }));
84
+ if (finished) {
85
+ console.log(`\nAll translations completed successfully`);
86
+ process.exit(0);
87
+ }
88
+ }));
89
+ //# sourceMappingURL=linguiTranslate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linguiTranslate.js","sourceRoot":"","sources":["../../src/commands/linguiTranslate.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -19,47 +8,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
19
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
20
9
  });
21
10
  };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
50
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
13
  };
52
14
  Object.defineProperty(exports, "__esModule", { value: true });
53
15
  exports.renameMobileCommand = void 0;
54
- var Command_1 = require("../lib/Command");
55
- var spinner_1 = require("../lib/spinner");
56
- var fs_1 = __importDefault(require("fs"));
57
- var path_1 = __importDefault(require("path"));
58
- var lib_1 = require("../lib");
59
- var ios_1 = require("../lib/ios");
16
+ const Command_1 = require("../lib/Command");
17
+ const spinner_1 = require("../lib/spinner");
18
+ const fs_1 = __importDefault(require("fs"));
19
+ const path_1 = __importDefault(require("path"));
20
+ const lib_1 = require("../lib");
21
+ const ios_1 = require("../lib/ios");
60
22
  require("../lib/firebase");
61
- var constants_1 = require("../constants");
62
- var commandName = 'rename-mobile';
23
+ const constants_1 = require("../constants");
24
+ const commandName = 'rename-mobile';
63
25
  exports.renameMobileCommand = (0, Command_1.codeleapCommand)({
64
26
  name: commandName,
65
27
  parameters: [
@@ -68,10 +30,10 @@ exports.renameMobileCommand = (0, Command_1.codeleapCommand)({
68
30
  help: {
69
31
  description: 'Command for easily renaming ios and/or android app names consistently',
70
32
  examples: [
71
- "codeleap ".concat(commandName, " myAppName --ios # renames only ios folder"),
72
- "codeleap ".concat(commandName, " myAppName --android # renames only android folder"),
73
- "codeleap ".concat(commandName, " myAppName --android --ios # renames both folders"),
74
- "codeleap ".concat(commandName, " myAppName --android --ios # Will show the diff in \"previous -> new\" format"),
33
+ `codeleap ${commandName} myAppName --ios # renames only ios folder`,
34
+ `codeleap ${commandName} myAppName --android # renames only android folder`,
35
+ `codeleap ${commandName} myAppName --android --ios # renames both folders`,
36
+ `codeleap ${commandName} myAppName --android --ios # Will show the diff in "previous -> new" format`,
75
37
  ],
76
38
  },
77
39
  flags: {
@@ -92,63 +54,40 @@ exports.renameMobileCommand = (0, Command_1.codeleapCommand)({
92
54
  description: 'Will not alter the bundle identifier',
93
55
  },
94
56
  },
95
- }, function (argv) { return __awaiter(void 0, void 0, void 0, function () {
96
- var flags, _, name, answers, androidFolder_1, iosFolder_1, appJsonPath, appJson;
97
- return __generator(this, function (_a) {
98
- switch (_a.label) {
99
- case 0:
100
- flags = argv.flags, _ = argv._;
101
- name = _.newName;
102
- if (!!name) return [3 /*break*/, 2];
103
- return [4 /*yield*/, lib_1.inquirer.prompt([
104
- {
105
- message: "Please insert the new name.",
106
- name: 'name',
107
- },
108
- ])];
109
- case 1:
110
- answers = _a.sent();
111
- name = answers.name;
112
- _a.label = 2;
113
- case 2:
114
- if (flags.android) {
115
- androidFolder_1 = path_1.default.join(constants_1.cwd, 'android');
116
- (0, spinner_1.spinWhileNotCompleted)(function () { return __awaiter(void 0, void 0, void 0, function () {
117
- return __generator(this, function (_a) {
118
- switch (_a.label) {
119
- case 0: return [4 /*yield*/, (0, lib_1.renameAndroid)(androidFolder_1, name, {
120
- changeBundle: !flags.displayOnly,
121
- })];
122
- case 1:
123
- _a.sent();
124
- return [2 /*return*/];
125
- }
126
- });
127
- }); }, {
128
- name: 'Renaming android...',
129
- });
130
- }
131
- if (flags.ios) {
132
- iosFolder_1 = path_1.default.join(constants_1.cwd, 'ios');
133
- (0, spinner_1.spinWhileNotCompleted)(function () { return __awaiter(void 0, void 0, void 0, function () {
134
- return __generator(this, function (_a) {
135
- switch (_a.label) {
136
- case 0: return [4 /*yield*/, (0, ios_1.renameIos)(iosFolder_1, name, {
137
- changeBundle: !flags.displayOnly,
138
- })];
139
- case 1:
140
- _a.sent();
141
- return [2 /*return*/];
142
- }
143
- });
144
- }); }, {
145
- name: 'Renaming iOS...',
146
- });
147
- }
148
- appJsonPath = path_1.default.join(constants_1.cwd, 'app.json');
149
- appJson = JSON.parse(fs_1.default.readFileSync(appJsonPath).toString());
150
- fs_1.default.writeFileSync(appJsonPath, JSON.stringify(__assign(__assign({}, appJson), { name: name })));
151
- return [2 /*return*/];
152
- }
153
- });
154
- }); });
57
+ }, (argv) => __awaiter(void 0, void 0, void 0, function* () {
58
+ const { flags, _ } = argv;
59
+ let name = _.newName;
60
+ if (!name) {
61
+ const answers = yield lib_1.inquirer.prompt([
62
+ {
63
+ message: `Please insert the new name.`,
64
+ name: 'name',
65
+ },
66
+ ]);
67
+ name = answers.name;
68
+ }
69
+ if (flags.android) {
70
+ const androidFolder = path_1.default.join(constants_1.cwd, 'android');
71
+ (0, spinner_1.spinWhileNotCompleted)(() => __awaiter(void 0, void 0, void 0, function* () {
72
+ yield (0, lib_1.renameAndroid)(androidFolder, name, {
73
+ changeBundle: !flags.displayOnly,
74
+ });
75
+ }), {
76
+ name: 'Renaming android...',
77
+ });
78
+ }
79
+ if (flags.ios) {
80
+ const iosFolder = path_1.default.join(constants_1.cwd, 'ios');
81
+ (0, spinner_1.spinWhileNotCompleted)(() => __awaiter(void 0, void 0, void 0, function* () {
82
+ yield (0, ios_1.renameIos)(iosFolder, name, {
83
+ changeBundle: !flags.displayOnly,
84
+ });
85
+ }), {
86
+ name: 'Renaming iOS...',
87
+ });
88
+ }
89
+ const appJsonPath = path_1.default.join(constants_1.cwd, 'app.json');
90
+ const appJson = JSON.parse(fs_1.default.readFileSync(appJsonPath).toString());
91
+ fs_1.default.writeFileSync(appJsonPath, JSON.stringify(Object.assign(Object.assign({}, appJson), { name })));
92
+ }));
93
+ //# sourceMappingURL=rename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/commands/rename.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,4CAAgD;AAEhD,4CAAsD;AACtD,4CAAmB;AACnB,gDAAuB;AAEvB,gCAA+G;AAC/G,oCAAsC;AACtC,2BAAwB;AACxB,4CAAkC;AAClC,MAAM,WAAW,GAAG,eAAe,CAAA;AAEtB,QAAA,mBAAmB,GAAG,IAAA,yBAAe,EAChD;IACE,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE;QACV,YAAY;KACb;IACD,IAAI,EAAE;QACJ,WAAW,EAAE,uEAAuE;QACpF,QAAQ,EAAE;YACR,YAAY,WAAW,4CAA4C;YACnE,YAAY,WAAW,oDAAoD;YAC3E,YAAY,WAAW,mDAAmD;YAC1E,YAAY,WAAW,6EAA6E;SACrG;KACF;IAED,KAAK,EAAE;QACL,GAAG,EAAE;YACH,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,yCAAyC;SAEvD;QACD,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,6CAA6C;SAE3D;QACD,GAAG,EAAE;YACH,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,mDAAmD;SACjE;QACD,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,sCAAsC;SACpD;KACF;CAEF,EACD,CAAO,IAAI,EAAE,EAAE;IACb,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC,OAAO,CAAA;IACpB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,OAAO,GAAG,MAAM,cAAQ,CAAC,MAAM,CAAC;YACpC;gBACE,OAAO,EAAE,6BAA6B;gBACtC,IAAI,EAAE,MAAM;aACb;SACF,CAAC,CAAA;QACF,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,eAAG,EAAE,SAAS,CAAC,CAAA;QAC/C,IAAA,+BAAqB,EACnB,GAAS,EAAE;YACT,MAAM,IAAA,mBAAa,EACjB,aAAa,EACb,IAAI,EACJ;gBACE,YAAY,EAAE,CAAC,KAAK,CAAC,WAAW;aACjC,CACF,CAAA;QACH,CAAC,CAAA,EACD;YACE,IAAI,EAAE,qBAAqB;SAC5B,CACF,CAAA;IAEH,CAAC;IAED,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,eAAG,EAAE,KAAK,CAAC,CAAA;QACvC,IAAA,+BAAqB,EACnB,GAAS,EAAE;YACT,MAAM,IAAA,eAAS,EACb,SAAS,EACT,IAAI,EACJ;gBACE,YAAY,EAAE,CAAC,KAAK,CAAC,WAAW;aACjC,CACF,CAAA;QACH,CAAC,CAAA,EACD;YACE,IAAI,EAAE,iBAAiB;SACxB,CACF,CAAA;IACH,CAAC;IACD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,eAAG,EAAE,UAAU,CAAC,CAAA;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;IACnE,YAAE,CAAC,aAAa,CACd,WAAW,EACX,IAAI,CAAC,SAAS,iCACT,OAAO,KACV,IAAI,IACJ,CACH,CAAA;AACH,CAAC,CAAA,CACF,CAAA"}
@@ -8,62 +8,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
10
  };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- var __read = (this && this.__read) || function (o, n) {
39
- var m = typeof Symbol === "function" && o[Symbol.iterator];
40
- if (!m) return o;
41
- var i = m.call(o), r, ar = [], e;
42
- try {
43
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
- }
45
- catch (error) { e = { error: error }; }
46
- finally {
47
- try {
48
- if (r && !r.done && (m = i["return"])) m.call(i);
49
- }
50
- finally { if (e) throw e.error; }
51
- }
52
- return ar;
53
- };
54
11
  Object.defineProperty(exports, "__esModule", { value: true });
55
12
  exports.syncIconsCommand = void 0;
56
- var Command_1 = require("../lib/Command");
57
- var lib_1 = require("../lib");
13
+ const Command_1 = require("../lib/Command");
14
+ const lib_1 = require("../lib");
58
15
  require("../lib/firebase");
59
- var commandName = 'syncIcons';
60
- var supportedExtensions = ['png', 'jpg', 'jpeg', 'svg'];
16
+ const commandName = 'syncIcons';
17
+ const supportedExtensions = ['png', 'jpg', 'jpeg', 'svg'];
61
18
  exports.syncIconsCommand = (0, Command_1.codeleapCommand)({
62
19
  name: commandName,
63
20
  help: {
64
21
  description: 'Synchronize icons from the app/assets/icons folder into a ts file with their exports',
65
22
  examples: [
66
- "codeleap ".concat(commandName),
23
+ `codeleap ${commandName}`,
67
24
  ],
68
25
  },
69
26
  flags: {
@@ -72,30 +29,28 @@ exports.syncIconsCommand = (0, Command_1.codeleapCommand)({
72
29
  default: true,
73
30
  },
74
31
  },
75
- }, function (argv) { return __awaiter(void 0, void 0, void 0, function () {
76
- var flags, _, iconFiles, iconEntries, iconEntriesString, iconEntriesFile;
77
- return __generator(this, function (_a) {
78
- flags = argv.flags, _ = argv._;
79
- iconFiles = lib_1.fs.readdirSync('./src/app/assets/icons', {
80
- withFileTypes: true,
81
- }).filter(function (i) {
82
- var extension = i.name.split('.').pop();
83
- return i.isFile() && supportedExtensions.includes(extension);
84
- });
85
- iconEntries = iconFiles.map(function (iconFile) {
86
- var extension = iconFile.name.split('.').pop().toLowerCase();
87
- var filename = iconFile.name.replace(".".concat(extension), '');
88
- return [filename, iconFile.name];
89
- });
90
- iconEntriesString = iconEntries.map(function (_a) {
91
- var _b = __read(_a, 2), key = _b[0], value = _b[1];
92
- return " '".concat(key, "': require('./").concat(value, "'),");
93
- }).join('\n');
94
- iconEntriesFile = "export const imageIcons = {\n".concat(iconEntriesString, "\n}");
95
- lib_1.fs.writeFileSync('./src/app/assets/icons/exports.ts', iconEntriesFile);
96
- if (flags.logdiff) {
97
- console.log(iconEntriesFile);
98
- }
99
- return [2 /*return*/];
32
+ }, (argv) => __awaiter(void 0, void 0, void 0, function* () {
33
+ const { flags, _ } = argv;
34
+ const iconFiles = lib_1.fs.readdirSync('./src/app/assets/icons', {
35
+ withFileTypes: true,
36
+ }).filter(i => {
37
+ const extension = i.name.split('.').pop();
38
+ return i.isFile() && supportedExtensions.includes(extension);
39
+ });
40
+ const iconEntries = iconFiles.map((iconFile) => {
41
+ const extension = iconFile.name.split('.').pop().toLowerCase();
42
+ const filename = iconFile.name.replace(`.${extension}`, '');
43
+ return [filename, iconFile.name];
100
44
  });
101
- }); });
45
+ const iconEntriesString = iconEntries.map(([key, value]) => {
46
+ return ` '${key}': require('./${value}'),`;
47
+ }).join('\n');
48
+ const iconEntriesFile = `export const imageIcons = {
49
+ ${iconEntriesString}
50
+ }`;
51
+ lib_1.fs.writeFileSync('./src/app/assets/icons/exports.ts', iconEntriesFile);
52
+ if (flags.logdiff) {
53
+ console.log(iconEntriesFile);
54
+ }
55
+ }));
56
+ //# sourceMappingURL=syncIcons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncIcons.js","sourceRoot":"","sources":["../../src/commands/syncIcons.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAgD;AAChD,gCAAsD;AACtD,2BAAwB;AACxB,MAAM,WAAW,GAAG,WAAW,CAAA;AAE/B,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAE5C,QAAA,gBAAgB,GAAG,IAAA,yBAAe,EAC7C;IACE,IAAI,EAAE,WAAW;IAEjB,IAAI,EAAE;QACJ,WAAW,EAAE,sFAAsF;QACnG,QAAQ,EAAE;YACR,YAAY,WAAW,EAAE;SAC1B;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,IAAI,EAAE,OAAO;YACb,OAAO,EAAE,IAAI;SACd;KACF;CAEF,EACD,CAAO,IAAI,EAAE,EAAE;IACb,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAA;IAEzB,MAAM,SAAS,GAAG,QAAE,CAAC,WAAW,CAAC,wBAAwB,EAAE;QACzD,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACZ,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAA;QACzC,OAAO,CAAC,CAAC,MAAM,EAAE,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IAC9D,CAAC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAA;QAE9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;QAE3D,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACzD,OAAO,MAAM,GAAG,iBAAiB,KAAK,KAAK,CAAA;IAC7C,CAAC,CACA,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEZ,MAAM,eAAe,GAAG;EAC1B,iBAAiB;EACjB,CAAA;IACE,QAAE,CAAC,aAAa,CAAC,mCAAmC,EAAE,eAAe,CAAC,CAAA;IAEtE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC;AACH,CAAC,CAAA,CACF,CAAA"}