@mschauer5/spfx-toolkit 1.0.24 → 1.0.26

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.
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ v18.18.0
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.envCommands = exports.nvmrc = exports.installer = exports.openSolution = exports.scripts = exports.version = exports.env = exports.alias = void 0;
36
+ exports.repo = exports.envCommands = exports.nvmrc = exports.installer = exports.openSolution = exports.scripts = exports.version = exports.env = exports.alias = void 0;
37
37
  const alias = __importStar(require("./alias.command"));
38
38
  exports.alias = alias;
39
39
  const eslint = __importStar(require("./eslint.command"));
@@ -50,4 +50,6 @@ const nvmrc = __importStar(require("./nvmrc.command"));
50
50
  exports.nvmrc = nvmrc;
51
51
  const envCommands = __importStar(require("./env.commands"));
52
52
  exports.envCommands = envCommands;
53
+ const repo = __importStar(require("./repo.command"));
54
+ exports.repo = repo;
53
55
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAQhC,sBAAK;AAPd,yDAA2C;AAOjB,qBAAG;AAN7B,2DAA6C;AAMd,0BAAO;AALtC,2DAA6C;AAKL,0BAAO;AAJ/C,mEAAuD;AAIN,6FAJxC,oCAAY,OAIwC;AAH7D,+DAAiD;AAGc,8BAAS;AAFxE,uDAAyC;AAEiC,sBAAK;AAD/E,4DAA8C;AACmC,kCAAW"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAyC;AAShC,sBAAK;AARd,yDAA2C;AAQjB,qBAAG;AAP7B,2DAA6C;AAOd,0BAAO;AANtC,2DAA6C;AAML,0BAAO;AAL/C,mEAAuD;AAKN,6FALxC,oCAAY,OAKwC;AAJ7D,+DAAiD;AAIc,8BAAS;AAHxE,uDAAyC;AAGiC,sBAAK;AAF/E,4DAA8C;AAEmC,kCAAW;AAD5F,qDAAuC;AACuD,oBAAI"}
@@ -8,77 +8,93 @@ 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 __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.uninstall = exports.install = exports.addNvmrcToStartup = void 0;
12
+ exports.uninstall = exports.install = void 0;
16
13
  const detect_package_manager_1 = require("detect-package-manager");
17
14
  const scripts_command_1 = require("./scripts.command");
18
15
  const logger_1 = require("../common/logger");
19
- const os_1 = __importDefault(require("os"));
20
- const path_1 = __importDefault(require("path"));
21
- const fs_1 = __importDefault(require("fs"));
22
- /**
23
- * Adds a command to the user's shell profile to run spfx-toolkit nvmrc use on terminal startup.
24
- * Supports bash, zsh (macOS/Linux) and PowerShell (Windows).
25
- */
26
- const addNvmrcToStartup = () => {
27
- const homedir = os_1.default.homedir();
28
- const isWin = process.platform === 'win32';
29
- let profilePath = '';
30
- let shellType = '';
31
- let lineToAdd = '';
32
- if (isWin) {
33
- // PowerShell profile
34
- const profileEnv = process.env.USERPROFILE || homedir;
35
- // Default PowerShell profile path
36
- profilePath = path_1.default.join(profileEnv, 'Documents', 'WindowsPowerShell', 'Microsoft.PowerShell_profile.ps1');
37
- shellType = 'PowerShell';
38
- lineToAdd = 'spfx-toolkit nvmrc use';
16
+ const common_1 = require("../common");
17
+ const fs_1 = require("fs");
18
+ // /**
19
+ // * Adds a command to the user's shell profile to run spfx-toolkit nvmrc use on terminal startup.
20
+ // * Supports bash, zsh (macOS/Linux) and PowerShell (Windows).
21
+ // */
22
+ // export const addNvmrcToStartup = () => {
23
+ // const homedir = os.homedir();
24
+ // const isWin = process.platform === 'win32';
25
+ // let profilePath = '';
26
+ // let shellType = '';
27
+ // let lineToAdd = '';
28
+ // if (isWin) {
29
+ // // PowerShell profile
30
+ // const profileEnv = process.env.USERPROFILE || homedir;
31
+ // // Default PowerShell profile path
32
+ // profilePath = path.join(profileEnv, 'Documents', 'WindowsPowerShell', 'Microsoft.PowerShell_profile.ps1');
33
+ // shellType = 'PowerShell';
34
+ // lineToAdd = 'spfx-toolkit nvmrc use';
35
+ // } else {
36
+ // // Check for zsh or bash
37
+ // if (process.env.SHELL && process.env.SHELL.includes('zsh')) {
38
+ // profilePath = path.join(homedir, '.zshrc');
39
+ // shellType = 'zsh';
40
+ // } else {
41
+ // profilePath = path.join(homedir, '.bashrc');
42
+ // shellType = 'bash';
43
+ // }
44
+ // lineToAdd = 'spfx-toolkit nvmrc use';
45
+ // }
46
+ // // Check if profile exists, create if not
47
+ // if (!fs.existsSync(profilePath)) {
48
+ // fs.writeFileSync(profilePath, '', { encoding: 'utf-8' });
49
+ // }
50
+ // // Check if line already exists
51
+ // const profileContent = fs.readFileSync(profilePath, 'utf-8');
52
+ // if (!profileContent.includes(lineToAdd)) {
53
+ // fs.appendFileSync(profilePath, `\n# Added by spfx-toolkit\n${lineToAdd}\n`, { encoding: 'utf-8' });
54
+ // console.log(`Added '${lineToAdd}' to your ${shellType} profile: ${profilePath}`);
55
+ // } else {
56
+ // console.log(`'${lineToAdd}' is already present in your ${shellType} profile: ${profilePath}`);
57
+ // }
58
+ // };
59
+ const packageInstaller = (name) => __awaiter(void 0, void 0, void 0, function* () {
60
+ var _a, _b;
61
+ const globalPath = common_1.util.getGlobalConfigPaths();
62
+ const fileExists = yield common_1.util.checkIfFileExistsAsync(globalPath.configPath, true);
63
+ if (!fileExists) {
64
+ return { dependencies: [], devDependencies: [] };
39
65
  }
40
- else {
41
- // Check for zsh or bash
42
- if (process.env.SHELL && process.env.SHELL.includes('zsh')) {
43
- profilePath = path_1.default.join(homedir, '.zshrc');
44
- shellType = 'zsh';
45
- }
46
- else {
47
- profilePath = path_1.default.join(homedir, '.bashrc');
48
- shellType = 'bash';
66
+ const data = yield fs_1.promises.readFile(globalPath.configPath, 'utf-8');
67
+ const config = JSON.parse(data);
68
+ if (config && typeof config === 'object' && config.packages) {
69
+ const result = name in config.packages;
70
+ if (result) {
71
+ const packageValue = config.packages[name];
72
+ const dependencies = (_a = packageValue.dependencies) !== null && _a !== void 0 ? _a : [];
73
+ const devDependencies = (_b = packageValue.devDependencies) !== null && _b !== void 0 ? _b : [];
74
+ return { dependencies, devDependencies };
49
75
  }
50
- lineToAdd = 'spfx-toolkit nvmrc use';
51
- }
52
- // Check if profile exists, create if not
53
- if (!fs_1.default.existsSync(profilePath)) {
54
- fs_1.default.writeFileSync(profilePath, '', { encoding: 'utf-8' });
76
+ return { dependencies: [], devDependencies: [] };
55
77
  }
56
- // Check if line already exists
57
- const profileContent = fs_1.default.readFileSync(profilePath, 'utf-8');
58
- if (!profileContent.includes(lineToAdd)) {
59
- fs_1.default.appendFileSync(profilePath, `\n# Added by spfx-toolkit\n${lineToAdd}\n`, { encoding: 'utf-8' });
60
- console.log(`Added '${lineToAdd}' to your ${shellType} profile: ${profilePath}`);
61
- }
62
- else {
63
- console.log(`'${lineToAdd}' is already present in your ${shellType} profile: ${profilePath}`);
64
- }
65
- };
66
- exports.addNvmrcToStartup = addNvmrcToStartup;
78
+ });
67
79
  const install = (name, fromScripts) => __awaiter(void 0, void 0, void 0, function* () {
68
80
  const usercommand = yield (0, detect_package_manager_1.detect)();
69
81
  const spawn = require('cross-spawn');
70
82
  if (fromScripts) {
71
- const getScriptByNameValue = yield (0, scripts_command_1.getScriptByName)(`install:${name}`);
72
- if (getScriptByNameValue !== undefined) {
73
- const args = getScriptByNameValue.split(' ');
74
- // add install to the command
75
- args.unshift('install');
76
- spawn.sync(usercommand, args, { stdio: 'inherit' });
77
- return;
78
- }
79
- else {
80
- logger_1.logger.error(`No install script found with name ${name} in global or local package.json`);
81
- }
83
+ packageInstaller(name).then((results) => {
84
+ if (results.dependencies.length === 0 && results.devDependencies.length === 0) {
85
+ logger_1.logger.error(`No package found with name ${name} in global package.json so can't install`);
86
+ return;
87
+ }
88
+ if (results.dependencies.length > 0) {
89
+ results.dependencies.unshift('install');
90
+ spawn.sync(usercommand, results.dependencies, { stdio: 'inherit' });
91
+ }
92
+ if (results.devDependencies.length > 0) {
93
+ results.devDependencies.unshift('--save-dev');
94
+ results.devDependencies.unshift('install');
95
+ spawn.sync(usercommand, results.devDependencies, { stdio: 'inherit' });
96
+ }
97
+ });
82
98
  return;
83
99
  }
84
100
  if (name === undefined || name.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"installer.command.js","sourceRoot":"","sources":["../../src/commands/installer.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.command.js","sourceRoot":"","sources":["../../src/commands/installer.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.goToRepo = exports.goToRepoFromProject = exports.SetRepo = exports.getRepo = void 0;
16
+ const logger_1 = require("../common/logger");
17
+ const common_1 = require("../common");
18
+ const fs_1 = require("fs");
19
+ const path_1 = __importDefault(require("path"));
20
+ const readline_1 = __importDefault(require("readline"));
21
+ const chalk_1 = __importDefault(require("chalk"));
22
+ const codeEmoji = '</>';
23
+ const dirEmpoji = '📁 ';
24
+ const openVSCodeInDirectory = (directory) => {
25
+ const spawn = require('child_process').spawn;
26
+ // Open the selected directory in VS Code
27
+ spawn(process.platform === 'win32' ? 'code.cmd' : 'code', [directory], {
28
+ stdio: 'inherit',
29
+ shell: true
30
+ });
31
+ };
32
+ const displayOptions = (location) => {
33
+ const fs = require('fs');
34
+ const rootPackageJsonPath = path_1.default.join(location, 'package.json');
35
+ const hasPackageJson = fs.existsSync(rootPackageJsonPath);
36
+ if (hasPackageJson) {
37
+ openVSCodeInDirectory(location);
38
+ return;
39
+ }
40
+ const childDirs = fs.readdirSync(location).filter((file) => {
41
+ return fs.statSync(path_1.default.join(location, file)).isDirectory();
42
+ });
43
+ const options = childDirs.map((dir, index) => {
44
+ const newPath = path_1.default.join(location, dir);
45
+ const packageJsonPath = path_1.default.join(newPath, 'package.json');
46
+ const hasPackageJson = fs.existsSync(packageJsonPath);
47
+ return { path: path_1.default.join(location, dir), label: `[${index + 1}] ${dir}`, hasPackageJson: hasPackageJson, emoji: hasPackageJson ? codeEmoji : dirEmpoji };
48
+ });
49
+ logger_1.logger.log(`${dirEmpoji} Directories in current location:`, chalk_1.default.cyan);
50
+ options.forEach((option) => {
51
+ logger_1.logger.log(`${option.emoji} ${option.label}`);
52
+ });
53
+ const rl = readline_1.default.createInterface({
54
+ input: process.stdin,
55
+ output: process.stdout
56
+ });
57
+ rl.question('Enter the number of the directory to select or 0 to cancel (append -vs to force open in VS Code): ', (answer) => {
58
+ const trimmed = answer.trim();
59
+ const vsFlag = trimmed.endsWith('-vs');
60
+ const numPart = vsFlag ? trimmed.replace(/-vs$/i, '').trim() : trimmed;
61
+ const idx = parseInt(numPart, 10) - 1;
62
+ if (idx >= 0 && idx < childDirs.length) {
63
+ const newPath = options[idx].path;
64
+ if (options[idx].hasPackageJson || vsFlag) {
65
+ // Valid selection or forced VS Code open
66
+ openVSCodeInDirectory(newPath);
67
+ rl.close();
68
+ return;
69
+ }
70
+ else {
71
+ rl.close();
72
+ // Recursively prompt in the new directory
73
+ displayOptions(newPath);
74
+ return;
75
+ }
76
+ }
77
+ else if (numPart === '0') {
78
+ if (vsFlag) {
79
+ openVSCodeInDirectory(location);
80
+ }
81
+ rl.close();
82
+ return;
83
+ }
84
+ else {
85
+ console.log('Invalid selection.');
86
+ rl.close();
87
+ return;
88
+ }
89
+ });
90
+ };
91
+ const findDirectory = (location, chars) => {
92
+ const fs = require('fs');
93
+ const readline = require('readline');
94
+ const childDirs = fs.readdirSync(location).filter((file) => {
95
+ return fs.statSync(path_1.default.join(location, file)).isDirectory();
96
+ });
97
+ // Find all matches (case-insensitive, must start with chars)
98
+ const matches = childDirs.filter((dir) => dir.toLowerCase().startsWith(chars.toLowerCase()));
99
+ if (matches.length === 0) {
100
+ return Promise.resolve(undefined);
101
+ }
102
+ else if (matches.length === 1) {
103
+ return new Promise((resolve) => resolve(path_1.default.join(location, matches[0])));
104
+ }
105
+ else {
106
+ // Multiple matches, prompt user to select with emoji and label
107
+ console.log('Multiple directories match your input:');
108
+ const options = matches.map((dir, idx) => {
109
+ const newPath = path_1.default.join(location, dir);
110
+ const packageJsonPath = path_1.default.join(newPath, 'package.json');
111
+ const hasPackageJson = fs.existsSync(packageJsonPath);
112
+ return {
113
+ path: newPath,
114
+ label: `[${idx + 1}] ${dir}`,
115
+ emoji: hasPackageJson ? codeEmoji : dirEmpoji
116
+ };
117
+ });
118
+ options.forEach((option) => {
119
+ console.log(`${option.emoji} ${option.label}`);
120
+ });
121
+ const rl = readline.createInterface({
122
+ input: process.stdin,
123
+ output: process.stdout
124
+ });
125
+ return new Promise((resolve) => {
126
+ rl.question('Enter the number to select or 0 to cancel (append -vs to force open in VS Code): ', (answer) => {
127
+ const trimmed = answer.trim();
128
+ const vsFlag = trimmed.endsWith('-vs');
129
+ const numPart = vsFlag ? trimmed.replace(/-vs$/i, '').trim() : trimmed;
130
+ const idx = parseInt(numPart, 10) - 1;
131
+ if (idx >= 0 && idx < options.length) {
132
+ if (vsFlag) {
133
+ openVSCodeInDirectory(options[idx].path);
134
+ rl.close();
135
+ resolve('***');
136
+ return;
137
+ }
138
+ rl.close();
139
+ resolve(options[idx].path);
140
+ return;
141
+ }
142
+ else if (numPart === '0') {
143
+ if (vsFlag) {
144
+ openVSCodeInDirectory(location);
145
+ rl.close();
146
+ resolve('***');
147
+ return;
148
+ }
149
+ rl.close();
150
+ resolve('***');
151
+ return;
152
+ }
153
+ else {
154
+ console.log('Invalid selection.');
155
+ rl.close();
156
+ resolve(undefined);
157
+ return;
158
+ }
159
+ });
160
+ });
161
+ }
162
+ };
163
+ const getRepo = () => __awaiter(void 0, void 0, void 0, function* () {
164
+ const globalPath = common_1.util.getGlobalConfigPaths();
165
+ const fileExists = yield common_1.util.checkIfFileExistsAsync(globalPath.configPath, true);
166
+ if (!fileExists) {
167
+ return;
168
+ }
169
+ const data = yield fs_1.promises.readFile(globalPath.configPath, 'utf-8');
170
+ const config = JSON.parse(data);
171
+ const name = 'repositoryDirectory';
172
+ if (config && typeof config === 'object' && config[name]) {
173
+ const repo = config[name];
174
+ return repo;
175
+ }
176
+ else {
177
+ return;
178
+ }
179
+ });
180
+ exports.getRepo = getRepo;
181
+ const SetRepo = () => __awaiter(void 0, void 0, void 0, function* () {
182
+ const globalPath = common_1.util.getGlobalConfigPaths();
183
+ const fileExists = yield common_1.util.checkIfFileExistsAsync(globalPath.configPath, true);
184
+ if (!fileExists) {
185
+ yield common_1.util.initGlobalPackageJsonWithDefaults(true);
186
+ }
187
+ const local = path_1.default.join(process.cwd());
188
+ logger_1.logger.info(`Setting repository to: ${local}`);
189
+ const data = yield fs_1.promises.readFile(globalPath.configPath, 'utf-8');
190
+ const packageJson = JSON.parse(data);
191
+ packageJson.repositoryDirectory = local;
192
+ yield fs_1.promises.writeFile(globalPath.configPath, JSON.stringify(packageJson, null, 2), 'utf-8');
193
+ });
194
+ exports.SetRepo = SetRepo;
195
+ const goToRepoFromProject = (args) => __awaiter(void 0, void 0, void 0, function* () {
196
+ logger_1.logger.info('Looking for repository from global package.json based on project shortcut...');
197
+ });
198
+ exports.goToRepoFromProject = goToRepoFromProject;
199
+ const goToRepo = (args) => __awaiter(void 0, void 0, void 0, function* () {
200
+ const repo = yield (0, exports.getRepo)();
201
+ if (repo === undefined) {
202
+ logger_1.logger.error('No repository set. Please run " set-repo" first to set the repository location.');
203
+ return;
204
+ }
205
+ if (!args || args.length === 0) {
206
+ displayOptions(repo);
207
+ return;
208
+ }
209
+ let targetPath = repo;
210
+ for (const arg of args) {
211
+ targetPath = yield findDirectory(targetPath, arg);
212
+ if (targetPath === undefined) {
213
+ logger_1.logger.error(`Could not find directory matching "${arg}". Exiting.`);
214
+ return;
215
+ }
216
+ else if (targetPath.endsWith('***')) {
217
+ // Check if VS Code was opened (user used -vs)
218
+ // If the directory was opened, do not log error, just exit
219
+ return;
220
+ }
221
+ }
222
+ displayOptions(targetPath);
223
+ });
224
+ exports.goToRepo = goToRepo;
225
+ //# sourceMappingURL=repo.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repo.command.js","sourceRoot":"","sources":["../../src/commands/repo.command.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.command.js","sourceRoot":"","sources":["../../src/commands/scripts.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scripts.command.js","sourceRoot":"","sources":["../../src/commands/scripts.command.ts"],"names":[],"mappings":"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"}
@@ -22,8 +22,13 @@ class Logger {
22
22
  this.logger(log_symbols_1.default.success, chalk_1.default.green(message));
23
23
  this.newLine();
24
24
  }
25
- log(message) {
26
- this.logger(message);
25
+ log(message, color) {
26
+ if (color) {
27
+ this.logger(color(message));
28
+ }
29
+ else {
30
+ this.logger(message);
31
+ }
27
32
  }
28
33
  warning(message) {
29
34
  this.logger(log_symbols_1.default.warning, chalk_1.default.yellowBright(message));
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAC/B,kDAA0B;AAC1B,8DAAqC;AAErC,MAAM,MAAM;IAGV;QACE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,OAAO,EAAE,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAEM,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,OAAO,EAAE,eAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,OAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,KAAK,EAAE,eAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,IAAI,CAAC,OAAe;QACzB,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,IAAI,EAAE,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/common/logger.ts"],"names":[],"mappings":";;;;;;AAAA,+BAA+B;AAC/B,kDAA0B;AAC1B,8DAAqC;AAErC,MAAM,MAAM;IAGV;QACE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAE/C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,OAAO,EAAE,eAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEM,GAAG,CAAC,OAAe,EAAE,KAAmB;QAC7C,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAEM,OAAO,CAAC,OAAe;QAC5B,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,OAAO,EAAE,eAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,KAAK,CAAC,OAAe;QAC1B,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,KAAK,EAAE,eAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,IAAI,CAAC,OAAe;QACzB,IAAI,CAAC,MAAM,CAAC,qBAAU,CAAC,IAAI,EAAE,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;CACF;AAEY,QAAA,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC"}
@@ -18,20 +18,19 @@ exports.isUsingGulp = isUsingGulp;
18
18
  exports.openGlobalPackageJsonInEditor = openGlobalPackageJsonInEditor;
19
19
  exports.initGlobalPackageJsonWithDefaults = initGlobalPackageJsonWithDefaults;
20
20
  const fs_1 = require("fs");
21
+ const fs_2 = __importDefault(require("fs"));
21
22
  const os_1 = __importDefault(require("os"));
22
23
  const path_1 = __importDefault(require("path"));
24
+ const logger_1 = require("./logger");
23
25
  function checkIfFileExistsAsync(filename_1) {
24
26
  return __awaiter(this, arguments, void 0, function* (filename, includeError = true) {
25
- try {
26
- yield fs_1.promises.readFile(filename, 'utf-8');
27
- return true;
28
- }
29
- catch (err) {
27
+ if (!fs_2.default.existsSync(filename)) {
30
28
  if (includeError) {
31
- console.log(err);
29
+ logger_1.logger.error(`No ${filename} found!`);
32
30
  }
33
- return null;
31
+ return false;
34
32
  }
33
+ return true;
35
34
  });
36
35
  }
37
36
  function getGlobalConfigPaths() {
@@ -50,6 +49,7 @@ function ensureGlobalPackageJsonExists() {
50
49
  const { configDir, configPath } = getGlobalConfigPaths();
51
50
  const exists = yield checkIfFileExistsAsync(configPath, false);
52
51
  if (!exists) {
52
+ // Create the directory if it doesn't exist and then create an empty package.json
53
53
  yield fs_1.promises.mkdir(configDir, { recursive: true });
54
54
  yield fs_1.promises.writeFile(configPath, JSON.stringify({ scripts: {} }, null, 2), 'utf-8');
55
55
  }
@@ -77,8 +77,21 @@ function initGlobalPackageJsonWithDefaults(force) {
77
77
  'bundle:gulp': 'heft test --clean --production && heft package-solution --production',
78
78
  'bundle:heft': 'heft build --clean && heft package',
79
79
  'serve:heft': 'heft build-watch --serve',
80
- 'serve:gulp': 'gulp serve',
81
- 'install:pnp': '@pnp/graph @pnp/core @pnp/odata @pnp/queryable @pnp/sp'
80
+ 'serve:gulp': 'gulp serve'
81
+ };
82
+ const defaultPackages = {
83
+ pnp: {
84
+ dependencies: ['@pnp/graph', '@pnp/core', '@pnp/odata', '@pnp/queryable', '@pnp/sp']
85
+ },
86
+ 'react-query': {
87
+ dependencies: [
88
+ '@tanstack/react-query@4',
89
+ '@tanstack/query-async-storage-persister@4',
90
+ '@tanstack/query-persist-client-core@4',
91
+ '@tanstack/query-sync-storage-persister@5'
92
+ ],
93
+ devDependencies: ['@tanstack/react-query-devtools@4']
94
+ }
82
95
  };
83
96
  const packageJsonContent = yield fs_1.promises.readFile(configPath, 'utf-8');
84
97
  const packageJson = JSON.parse(packageJsonContent);
@@ -89,7 +102,15 @@ function initGlobalPackageJsonWithDefaults(force) {
89
102
  packageJson.scripts[key] = value;
90
103
  }
91
104
  }
105
+ // packageJson.packages
106
+ packageJson.packages = packageJson.packages || {};
107
+ for (const [key, value] of Object.entries(defaultPackages)) {
108
+ if (force || !(key in packageJson.packages)) {
109
+ packageJson.packages[key] = value;
110
+ }
111
+ }
92
112
  yield fs_1.promises.writeFile(configPath, JSON.stringify(packageJson, null, 2), 'utf-8');
113
+ logger_1.logger.success(`Global package.json initialized at ${configPath}`);
93
114
  });
94
115
  }
95
116
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/common/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/common/util.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -48,7 +48,7 @@ program
48
48
  .name('Matt Schauer SPFx Toolkit')
49
49
  .description('CLI to help with SPFx development')
50
50
  .addHelpText('beforeAll', chalk_1.default.blueBright('Developed by Matt Schauer'))
51
- .version('1.0.24');
51
+ .version('1.0.25');
52
52
  program
53
53
  .command('add-alias')
54
54
  .description('add alias')
@@ -62,6 +62,24 @@ program
62
62
  .action(() => {
63
63
  commands.alias.clearAlias(defaultToolkitName);
64
64
  });
65
+ program
66
+ .command('set-repo')
67
+ .description('Set current folder as the default repo location')
68
+ .action(() => {
69
+ commands.repo.SetRepo();
70
+ });
71
+ program
72
+ .command('repo [args...]')
73
+ .description('Go to repository location')
74
+ .option('-p, --project', 'If set will look in global package.json for matching shortcut to repository')
75
+ .action((args, options) => {
76
+ console.log('options:', options);
77
+ if (options.project) {
78
+ commands.repo.goToRepoFromProject(Array.isArray(args) ? args : []);
79
+ return;
80
+ }
81
+ commands.repo.goToRepo(Array.isArray(args) ? args : []);
82
+ });
65
83
  program
66
84
  .command('serve')
67
85
  .alias('s')
@@ -106,10 +124,10 @@ program
106
124
  commands.installer.install(packages, false);
107
125
  });
108
126
  program
109
- .command('install-script')
110
- .alias('is')
111
- .description('Run an install script from package.json by name')
112
- .addArgument(new commander.Argument('<name>', 'script name in global config or local to install'))
127
+ .command('install-packages')
128
+ .alias('ips')
129
+ .description('Run an installer package from global package.json by name')
130
+ .addArgument(new commander.Argument('<name>', 'package name in global config to install'))
113
131
  .action((name) => {
114
132
  commands.installer.install(name, true);
115
133
  });
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mschauer5/spfx-toolkit",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "Toolkit for SPFx projects",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -13,9 +13,10 @@
13
13
  "test:clear-alias": "npm run build && node lib/index.js clear-alias",
14
14
  "test:serve": "npm run build && node lib/index.js serve",
15
15
  "test:build": "npm run build && node lib/index.js build",
16
+ "test:configInit": "npm run build && node lib/index.js ogci",
16
17
  "push": "npm run build && npm publish --access public",
17
18
  "test:env": "npm run build && node lib/index.js set-env",
18
- "prepublish": "npm run build && npm uninstall .\\mschauer5-spfx-toolkit-1.0.22.tgz -g && npm pack . && npm install .\\mschauer5-spfx-toolkit-1.0.22.tgz -g"
19
+ "prepublish": "npm run build && npm uninstall .\\mschauer5-spfx-toolkit-1.0.25.tgz -g && npm pack . && npm install .\\mschauer5-spfx-toolkit-1.0.25.tgz -g"
19
20
  },
20
21
  "repository": {
21
22
  "type": "git",
@@ -6,4 +6,5 @@ import { openSolution } from './open-solution.command';
6
6
  import * as installer from './installer.command';
7
7
  import * as nvmrc from './nvmrc.command';
8
8
  import * as envCommands from './env.commands';
9
- export { alias, eslint as env, version, scripts, openSolution, installer, nvmrc, envCommands };
9
+ import * as repo from './repo.command';
10
+ export { alias, eslint as env, version, scripts, openSolution, installer, nvmrc, envCommands, repo };
@@ -1,52 +1,73 @@
1
1
  import { detect } from 'detect-package-manager';
2
2
  import { getScriptByName } from './scripts.command';
3
3
  import { logger } from '../common/logger';
4
- import os from 'os';
5
- import path from 'path';
6
- import fs from 'fs';
7
-
8
- /**
9
- * Adds a command to the user's shell profile to run spfx-toolkit nvmrc use on terminal startup.
10
- * Supports bash, zsh (macOS/Linux) and PowerShell (Windows).
11
- */
12
- export const addNvmrcToStartup = () => {
13
- const homedir = os.homedir();
14
- const isWin = process.platform === 'win32';
15
- let profilePath = '';
16
- let shellType = '';
17
- let lineToAdd = '';
18
-
19
- if (isWin) {
20
- // PowerShell profile
21
- const profileEnv = process.env.USERPROFILE || homedir;
22
- // Default PowerShell profile path
23
- profilePath = path.join(profileEnv, 'Documents', 'WindowsPowerShell', 'Microsoft.PowerShell_profile.ps1');
24
- shellType = 'PowerShell';
25
- lineToAdd = 'spfx-toolkit nvmrc use';
26
- } else {
27
- // Check for zsh or bash
28
- if (process.env.SHELL && process.env.SHELL.includes('zsh')) {
29
- profilePath = path.join(homedir, '.zshrc');
30
- shellType = 'zsh';
31
- } else {
32
- profilePath = path.join(homedir, '.bashrc');
33
- shellType = 'bash';
34
- }
35
- lineToAdd = 'spfx-toolkit nvmrc use';
36
- }
4
+ import { util } from '../common';
5
+ import { promises as fsPromises } from 'fs';
6
+ // /**
7
+ // * Adds a command to the user's shell profile to run spfx-toolkit nvmrc use on terminal startup.
8
+ // * Supports bash, zsh (macOS/Linux) and PowerShell (Windows).
9
+ // */
10
+ // export const addNvmrcToStartup = () => {
11
+ // const homedir = os.homedir();
12
+ // const isWin = process.platform === 'win32';
13
+ // let profilePath = '';
14
+ // let shellType = '';
15
+ // let lineToAdd = '';
16
+
17
+ // if (isWin) {
18
+ // // PowerShell profile
19
+ // const profileEnv = process.env.USERPROFILE || homedir;
20
+ // // Default PowerShell profile path
21
+ // profilePath = path.join(profileEnv, 'Documents', 'WindowsPowerShell', 'Microsoft.PowerShell_profile.ps1');
22
+ // shellType = 'PowerShell';
23
+ // lineToAdd = 'spfx-toolkit nvmrc use';
24
+ // } else {
25
+ // // Check for zsh or bash
26
+ // if (process.env.SHELL && process.env.SHELL.includes('zsh')) {
27
+ // profilePath = path.join(homedir, '.zshrc');
28
+ // shellType = 'zsh';
29
+ // } else {
30
+ // profilePath = path.join(homedir, '.bashrc');
31
+ // shellType = 'bash';
32
+ // }
33
+ // lineToAdd = 'spfx-toolkit nvmrc use';
34
+ // }
35
+
36
+ // // Check if profile exists, create if not
37
+ // if (!fs.existsSync(profilePath)) {
38
+ // fs.writeFileSync(profilePath, '', { encoding: 'utf-8' });
39
+ // }
37
40
 
38
- // Check if profile exists, create if not
39
- if (!fs.existsSync(profilePath)) {
40
- fs.writeFileSync(profilePath, '', { encoding: 'utf-8' });
41
+ // // Check if line already exists
42
+ // const profileContent = fs.readFileSync(profilePath, 'utf-8');
43
+ // if (!profileContent.includes(lineToAdd)) {
44
+ // fs.appendFileSync(profilePath, `\n# Added by spfx-toolkit\n${lineToAdd}\n`, { encoding: 'utf-8' });
45
+ // console.log(`Added '${lineToAdd}' to your ${shellType} profile: ${profilePath}`);
46
+ // } else {
47
+ // console.log(`'${lineToAdd}' is already present in your ${shellType} profile: ${profilePath}`);
48
+ // }
49
+ // };
50
+
51
+ const packageInstaller = async (name: string): Promise<{ dependencies: string[]; devDependencies: string[] }> => {
52
+ const globalPath = util.getGlobalConfigPaths();
53
+ const fileExists = await util.checkIfFileExistsAsync(globalPath.configPath, true);
54
+ if (!fileExists) {
55
+ return { dependencies: [], devDependencies: [] };
41
56
  }
42
57
 
43
- // Check if line already exists
44
- const profileContent = fs.readFileSync(profilePath, 'utf-8');
45
- if (!profileContent.includes(lineToAdd)) {
46
- fs.appendFileSync(profilePath, `\n# Added by spfx-toolkit\n${lineToAdd}\n`, { encoding: 'utf-8' });
47
- console.log(`Added '${lineToAdd}' to your ${shellType} profile: ${profilePath}`);
48
- } else {
49
- console.log(`'${lineToAdd}' is already present in your ${shellType} profile: ${profilePath}`);
58
+ const data = await fsPromises.readFile(globalPath.configPath, 'utf-8');
59
+ const config = JSON.parse(data);
60
+ if (config && typeof config === 'object' && config.packages) {
61
+ const result = name in config.packages;
62
+ if (result) {
63
+ const packageValue = config.packages[name];
64
+ const dependencies = packageValue.dependencies ?? [];
65
+ const devDependencies = packageValue.devDependencies ?? [];
66
+
67
+ return { dependencies, devDependencies };
68
+ }
69
+
70
+ return { dependencies: [], devDependencies: [] };
50
71
  }
51
72
  };
52
73
 
@@ -55,19 +76,25 @@ export const install = async (name: string, fromScripts: boolean) => {
55
76
  const spawn = require('cross-spawn');
56
77
 
57
78
  if (fromScripts) {
58
- const getScriptByNameValue = await getScriptByName(`install:${name}`);
59
- if (getScriptByNameValue !== undefined) {
60
- const args = getScriptByNameValue.split(' ');
61
- // add install to the command
62
- args.unshift('install');
79
+ packageInstaller(name).then((results) => {
80
+ if (results.dependencies.length === 0 && results.devDependencies.length === 0) {
81
+ logger.error(`No package found with name ${name} in global package.json so can't install`);
82
+ return;
83
+ }
84
+ if (results.dependencies.length > 0) {
85
+ results.dependencies.unshift('install');
86
+ spawn.sync(usercommand, results.dependencies, { stdio: 'inherit' });
87
+ }
88
+ if (results.devDependencies.length > 0) {
89
+ results.devDependencies.unshift('--save-dev');
90
+ results.devDependencies.unshift('install');
91
+ spawn.sync(usercommand, results.devDependencies, { stdio: 'inherit' });
92
+ }
93
+ });
63
94
 
64
- spawn.sync(usercommand, args, { stdio: 'inherit' });
65
- return;
66
- } else {
67
- logger.error(`No install script found with name ${name} in global or local package.json`);
68
- }
69
95
  return;
70
96
  }
97
+
71
98
  if (name === undefined || name.length === 0) {
72
99
  spawn.sync(usercommand, ['install'], { stdio: 'inherit' });
73
100
  return;
@@ -0,0 +1,218 @@
1
+ import { logger } from '../common/logger';
2
+ import { util } from '../common';
3
+ import { promises as fsPromises } from 'fs';
4
+ import path from 'path';
5
+ import readline from 'readline';
6
+ import chalk from 'chalk';
7
+
8
+ const codeEmoji = '</>';
9
+ const dirEmpoji = '📁 ';
10
+
11
+ const openVSCodeInDirectory = (directory: string) => {
12
+ const spawn = require('child_process').spawn;
13
+ // Open the selected directory in VS Code
14
+ spawn(process.platform === 'win32' ? 'code.cmd' : 'code', [directory], {
15
+ stdio: 'inherit',
16
+ shell: true
17
+ });
18
+ };
19
+
20
+ const displayOptions = (location: string) => {
21
+ const fs = require('fs');
22
+ const rootPackageJsonPath = path.join(location, 'package.json');
23
+ const hasPackageJson = fs.existsSync(rootPackageJsonPath);
24
+ if (hasPackageJson) {
25
+ openVSCodeInDirectory(location);
26
+ return;
27
+ }
28
+
29
+ const childDirs = fs.readdirSync(location).filter((file: string) => {
30
+ return fs.statSync(path.join(location, file)).isDirectory();
31
+ });
32
+
33
+ const options = childDirs.map((dir: string, index: number) => {
34
+ const newPath = path.join(location, dir);
35
+ const packageJsonPath = path.join(newPath, 'package.json');
36
+ const hasPackageJson = fs.existsSync(packageJsonPath);
37
+ return { path: path.join(location, dir), label: `[${index + 1}] ${dir}`, hasPackageJson: hasPackageJson, emoji: hasPackageJson ? codeEmoji : dirEmpoji };
38
+ });
39
+
40
+ logger.log(`${dirEmpoji} Directories in current location:`, chalk.cyan);
41
+ options.forEach((option) => {
42
+ logger.log(`${option.emoji} ${option.label}`);
43
+ });
44
+
45
+ const rl = readline.createInterface({
46
+ input: process.stdin,
47
+ output: process.stdout
48
+ });
49
+
50
+ rl.question('Enter the number of the directory to select or 0 to cancel (append -vs to force open in VS Code): ', (answer) => {
51
+ const trimmed = answer.trim();
52
+ const vsFlag = trimmed.endsWith('-vs');
53
+ const numPart = vsFlag ? trimmed.replace(/-vs$/i, '').trim() : trimmed;
54
+ const idx = parseInt(numPart, 10) - 1;
55
+
56
+ if (idx >= 0 && idx < childDirs.length) {
57
+ const newPath = options[idx].path;
58
+ if (options[idx].hasPackageJson || vsFlag) {
59
+ // Valid selection or forced VS Code open
60
+ openVSCodeInDirectory(newPath);
61
+ rl.close();
62
+ return;
63
+ } else {
64
+ rl.close();
65
+ // Recursively prompt in the new directory
66
+ displayOptions(newPath);
67
+ return;
68
+ }
69
+ } else if (numPart === '0') {
70
+ if (vsFlag) {
71
+ openVSCodeInDirectory(location);
72
+ }
73
+ rl.close();
74
+ return;
75
+ } else {
76
+ console.log('Invalid selection.');
77
+ rl.close();
78
+ return;
79
+ }
80
+ });
81
+ };
82
+
83
+ const findDirectory = (location: string, chars: string): Promise<string | undefined> => {
84
+ const fs = require('fs');
85
+ const readline = require('readline');
86
+ const childDirs = fs.readdirSync(location).filter((file: string) => {
87
+ return fs.statSync(path.join(location, file)).isDirectory();
88
+ });
89
+
90
+ // Find all matches (case-insensitive, must start with chars)
91
+ const matches = childDirs.filter((dir: string) => dir.toLowerCase().startsWith(chars.toLowerCase()));
92
+
93
+ if (matches.length === 0) {
94
+ return Promise.resolve(undefined);
95
+ } else if (matches.length === 1) {
96
+ return new Promise((resolve) => resolve(path.join(location, matches[0])));
97
+ } else {
98
+ // Multiple matches, prompt user to select with emoji and label
99
+ console.log('Multiple directories match your input:');
100
+ const options = matches.map((dir: string, idx: number) => {
101
+ const newPath = path.join(location, dir);
102
+ const packageJsonPath = path.join(newPath, 'package.json');
103
+ const hasPackageJson = fs.existsSync(packageJsonPath);
104
+ return {
105
+ path: newPath,
106
+ label: `[${idx + 1}] ${dir}`,
107
+ emoji: hasPackageJson ? codeEmoji : dirEmpoji
108
+ };
109
+ });
110
+ options.forEach((option) => {
111
+ console.log(`${option.emoji} ${option.label}`);
112
+ });
113
+ const rl = readline.createInterface({
114
+ input: process.stdin,
115
+ output: process.stdout
116
+ });
117
+ return new Promise<string | undefined>((resolve) => {
118
+ rl.question('Enter the number to select or 0 to cancel (append -vs to force open in VS Code): ', (answer: string) => {
119
+ const trimmed = answer.trim();
120
+ const vsFlag = trimmed.endsWith('-vs');
121
+ const numPart = vsFlag ? trimmed.replace(/-vs$/i, '').trim() : trimmed;
122
+ const idx = parseInt(numPart, 10) - 1;
123
+ if (idx >= 0 && idx < options.length) {
124
+ if (vsFlag) {
125
+ openVSCodeInDirectory(options[idx].path);
126
+ rl.close();
127
+ resolve('***');
128
+ return;
129
+ }
130
+ rl.close();
131
+ resolve(options[idx].path);
132
+ return;
133
+ } else if (numPart === '0') {
134
+ if (vsFlag) {
135
+ openVSCodeInDirectory(location);
136
+ rl.close();
137
+ resolve('***');
138
+ return;
139
+ }
140
+ rl.close();
141
+ resolve('***');
142
+ return;
143
+ } else {
144
+ console.log('Invalid selection.');
145
+ rl.close();
146
+ resolve(undefined);
147
+ return;
148
+ }
149
+ });
150
+ });
151
+ }
152
+ };
153
+
154
+ export const getRepo = async (): Promise<string | undefined> => {
155
+ const globalPath = util.getGlobalConfigPaths();
156
+ const fileExists = await util.checkIfFileExistsAsync(globalPath.configPath, true);
157
+ if (!fileExists) {
158
+ return;
159
+ }
160
+ const data = await fsPromises.readFile(globalPath.configPath, 'utf-8');
161
+ const config = JSON.parse(data);
162
+ const name = 'repositoryDirectory';
163
+ if (config && typeof config === 'object' && config[name]) {
164
+ const repo = config[name];
165
+ return repo;
166
+ } else {
167
+ return;
168
+ }
169
+ };
170
+
171
+ export const SetRepo = async () => {
172
+ const globalPath = util.getGlobalConfigPaths();
173
+ const fileExists = await util.checkIfFileExistsAsync(globalPath.configPath, true);
174
+ if (!fileExists) {
175
+ await util.initGlobalPackageJsonWithDefaults(true);
176
+ }
177
+
178
+ const local = path.join(process.cwd());
179
+ logger.info(`Setting repository to: ${local}`);
180
+
181
+ const data = await fsPromises.readFile(globalPath.configPath, 'utf-8');
182
+ const packageJson = JSON.parse(data);
183
+
184
+ packageJson.repositoryDirectory = local;
185
+ await fsPromises.writeFile(globalPath.configPath, JSON.stringify(packageJson, null, 2), 'utf-8');
186
+ };
187
+
188
+ export const goToRepoFromProject = async (args?: string[]) => {
189
+ logger.info('Looking for repository from global package.json based on project shortcut...');
190
+ };
191
+
192
+ export const goToRepo = async (args?: string[]) => {
193
+ const repo = await getRepo();
194
+
195
+ if (repo === undefined) {
196
+ logger.error('No repository set. Please run " set-repo" first to set the repository location.');
197
+ return;
198
+ }
199
+
200
+ if (!args || args.length === 0) {
201
+ displayOptions(repo);
202
+ return;
203
+ }
204
+
205
+ let targetPath = repo;
206
+ for (const arg of args) {
207
+ targetPath = await findDirectory(targetPath, arg);
208
+ if (targetPath === undefined) {
209
+ logger.error(`Could not find directory matching "${arg}". Exiting.`);
210
+ return;
211
+ } else if (targetPath.endsWith('***')) {
212
+ // Check if VS Code was opened (user used -vs)
213
+ // If the directory was opened, do not log error, just exit
214
+ return;
215
+ }
216
+ }
217
+ displayOptions(targetPath);
218
+ };
@@ -1,7 +1,6 @@
1
1
  import { logger, util } from '../common';
2
2
  import spawn from 'cross-spawn';
3
3
  import { promises as fsPromises } from 'fs';
4
- import os from 'os';
5
4
  import path from 'path';
6
5
  import { incrementVersion, syncVersion } from './version.command';
7
6
 
@@ -21,8 +21,12 @@ class Logger {
21
21
  this.newLine();
22
22
  }
23
23
 
24
- public log(message: string) {
25
- this.logger(message);
24
+ public log(message: string, color?: chalk.Chalk) {
25
+ if (color) {
26
+ this.logger(color(message));
27
+ } else {
28
+ this.logger(message);
29
+ }
26
30
  }
27
31
 
28
32
  public warning(message: string) {
@@ -1,23 +1,24 @@
1
1
  import { promises as fsPromises } from 'fs';
2
+ import fs from 'fs';
2
3
  import os from 'os';
3
4
  import path from 'path';
4
5
  import { logger } from './logger';
5
6
 
6
7
  export async function checkIfFileExistsAsync(filename, includeError = true) {
7
- try {
8
- await fsPromises.readFile(filename, 'utf-8');
9
- return true;
10
- } catch (err) {
8
+ if (!fs.existsSync(filename)) {
11
9
  if (includeError) {
12
- console.log(err);
10
+ logger.error(`No ${filename} found!`);
13
11
  }
14
- return null;
12
+ return false;
15
13
  }
14
+
15
+ return true;
16
16
  }
17
17
 
18
18
  export function getGlobalConfigPaths() {
19
19
  const configDir = path.join(os.homedir(), '.spfx-toolkit');
20
20
  const configPath = path.join(configDir, 'package.json');
21
+
21
22
  return { configDir, configPath };
22
23
  }
23
24
 
@@ -29,8 +30,12 @@ export async function isUsingGulp(): Promise<boolean> {
29
30
  async function ensureGlobalPackageJsonExists() {
30
31
  const { configDir, configPath } = getGlobalConfigPaths();
31
32
  const exists = await checkIfFileExistsAsync(configPath, false);
33
+
32
34
  if (!exists) {
35
+ // Create the directory if it doesn't exist and then create an empty package.json
36
+
33
37
  await fsPromises.mkdir(configDir, { recursive: true });
38
+
34
39
  await fsPromises.writeFile(configPath, JSON.stringify({ scripts: {} }, null, 2), 'utf-8');
35
40
  }
36
41
  }
@@ -57,8 +62,22 @@ export async function initGlobalPackageJsonWithDefaults(force?: boolean) {
57
62
  'bundle:gulp': 'heft test --clean --production && heft package-solution --production',
58
63
  'bundle:heft': 'heft build --clean && heft package',
59
64
  'serve:heft': 'heft build-watch --serve',
60
- 'serve:gulp': 'gulp serve',
61
- 'install:pnp': '@pnp/graph @pnp/core @pnp/odata @pnp/queryable @pnp/sp'
65
+ 'serve:gulp': 'gulp serve'
66
+ };
67
+
68
+ const defaultPackages = {
69
+ pnp: {
70
+ dependencies: ['@pnp/graph', '@pnp/core', '@pnp/odata', '@pnp/queryable', '@pnp/sp']
71
+ },
72
+ 'react-query': {
73
+ dependencies: [
74
+ '@tanstack/react-query@4',
75
+ '@tanstack/query-async-storage-persister@4',
76
+ '@tanstack/query-persist-client-core@4',
77
+ '@tanstack/query-sync-storage-persister@5'
78
+ ],
79
+ devDependencies: ['@tanstack/react-query-devtools@4']
80
+ }
62
81
  };
63
82
 
64
83
  const packageJsonContent = await fsPromises.readFile(configPath, 'utf-8');
@@ -72,5 +91,14 @@ export async function initGlobalPackageJsonWithDefaults(force?: boolean) {
72
91
  }
73
92
  }
74
93
 
94
+ // packageJson.packages
95
+ packageJson.packages = packageJson.packages || {};
96
+ for (const [key, value] of Object.entries(defaultPackages)) {
97
+ if (force || !(key in packageJson.packages)) {
98
+ packageJson.packages[key] = value;
99
+ }
100
+ }
101
+
75
102
  await fsPromises.writeFile(configPath, JSON.stringify(packageJson, null, 2), 'utf-8');
103
+ logger.success(`Global package.json initialized at ${configPath}`);
76
104
  }
package/src/index.ts CHANGED
@@ -12,7 +12,7 @@ program
12
12
  .name('Matt Schauer SPFx Toolkit')
13
13
  .description('CLI to help with SPFx development')
14
14
  .addHelpText('beforeAll', chalk.blueBright('Developed by Matt Schauer'))
15
- .version('1.0.24');
15
+ .version('1.0.25');
16
16
 
17
17
  program
18
18
  .command('add-alias')
@@ -29,6 +29,26 @@ program
29
29
  commands.alias.clearAlias(defaultToolkitName);
30
30
  });
31
31
 
32
+ program
33
+ .command('set-repo')
34
+ .description('Set current folder as the default repo location')
35
+ .action(() => {
36
+ commands.repo.SetRepo();
37
+ });
38
+
39
+ program
40
+ .command('repo [args...]')
41
+ .description('Go to repository location')
42
+ .option('-p, --project', 'If set will look in global package.json for matching shortcut to repository')
43
+ .action((args, options) => {
44
+ console.log('options:', options);
45
+ if (options.project) {
46
+ commands.repo.goToRepoFromProject(Array.isArray(args) ? args : []);
47
+ return;
48
+ }
49
+ commands.repo.goToRepo(Array.isArray(args) ? args : []);
50
+ });
51
+
32
52
  program
33
53
  .command('serve')
34
54
  .alias('s')
@@ -78,11 +98,10 @@ program
78
98
  });
79
99
 
80
100
  program
81
- .command('install-script')
82
- .alias('is')
83
- .description('Run an install script from package.json by name')
84
- .addArgument(new commander.Argument('<name>', 'script name in global config or local to install'))
85
-
101
+ .command('install-packages')
102
+ .alias('ips')
103
+ .description('Run an installer package from global package.json by name')
104
+ .addArgument(new commander.Argument('<name>', 'package name in global config to install'))
86
105
  .action((name) => {
87
106
  commands.installer.install(name, true);
88
107
  });
Binary file