grf-cli 1.0.4 → 1.0.7

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 (46) hide show
  1. package/dist/cli.js.map +1 -1
  2. package/dist/commands/list/index.d.ts.map +1 -1
  3. package/dist/commands/list/index.js +9 -1
  4. package/dist/commands/list/index.js.map +1 -1
  5. package/dist/core/loading-state.js.map +1 -1
  6. package/dist/core/repository.d.ts +6 -1
  7. package/dist/core/repository.d.ts.map +1 -1
  8. package/dist/core/repository.js +23 -6
  9. package/dist/core/repository.js.map +1 -1
  10. package/dist/utils/constants.js +1 -1
  11. package/dist/utils/constants.js.map +1 -1
  12. package/dist/utils/validation.js +1 -1
  13. package/dist/utils/validation.js.map +1 -1
  14. package/package.json +1 -1
  15. package/dist/commands/add.d.ts +0 -12
  16. package/dist/commands/add.d.ts.map +0 -1
  17. package/dist/commands/add.js +0 -92
  18. package/dist/commands/add.js.map +0 -1
  19. package/dist/commands/clean.d.ts +0 -12
  20. package/dist/commands/clean.d.ts.map +0 -1
  21. package/dist/commands/clean.js +0 -154
  22. package/dist/commands/clean.js.map +0 -1
  23. package/dist/commands/config.d.ts +0 -12
  24. package/dist/commands/config.d.ts.map +0 -1
  25. package/dist/commands/config.js +0 -151
  26. package/dist/commands/config.js.map +0 -1
  27. package/dist/commands/list.d.ts +0 -12
  28. package/dist/commands/list.d.ts.map +0 -1
  29. package/dist/commands/list.js +0 -118
  30. package/dist/commands/list.js.map +0 -1
  31. package/dist/commands/load.d.ts +0 -13
  32. package/dist/commands/load.d.ts.map +0 -1
  33. package/dist/commands/load.js +0 -202
  34. package/dist/commands/load.js.map +0 -1
  35. package/dist/commands/unload.d.ts +0 -12
  36. package/dist/commands/unload.d.ts.map +0 -1
  37. package/dist/commands/unload.js +0 -734
  38. package/dist/commands/unload.js.map +0 -1
  39. package/dist/commands/update.d.ts +0 -12
  40. package/dist/commands/update.d.ts.map +0 -1
  41. package/dist/commands/update.js +0 -464
  42. package/dist/commands/update.js.map +0 -1
  43. package/dist/commands/use.d.ts +0 -8
  44. package/dist/commands/use.d.ts.map +0 -1
  45. package/dist/commands/use.js +0 -224
  46. package/dist/commands/use.js.map +0 -1
@@ -1,151 +0,0 @@
1
- "use strict";
2
- /**
3
- * config 命令
4
- * 管理全局配置
5
- */
6
- var __importDefault = (this && this.__importDefault) || function (mod) {
7
- return (mod && mod.__esModule) ? mod : { "default": mod };
8
- };
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.configCommand = void 0;
11
- exports.registerConfigCommand = registerConfigCommand;
12
- const commander_1 = require("commander");
13
- const chalk_1 = __importDefault(require("chalk"));
14
- const config_js_1 = require("../core/config.js");
15
- const format_js_1 = require("../ui/format.js");
16
- const error_js_1 = require("../utils/error.js");
17
- const index_js_1 = require("./options/index.js");
18
- /**
19
- * 注册 config 命令
20
- * @param program Commander 程序实例
21
- */
22
- function registerConfigCommand(program) {
23
- program.addCommand(exports.configCommand);
24
- }
25
- /** 有效的配置项列表 */
26
- const validKeys = ["defaultBranch", "shallowClone", "shallowDepth"];
27
- /**
28
- * 检查是否为有效的配置项
29
- * @param key 配置项名称
30
- * @returns 是否有效
31
- */
32
- function isValidKey(key) {
33
- return validKeys.includes(key);
34
- }
35
- /**
36
- * 解析配置值,根据配置项类型进行转换
37
- * @param key 配置项名称
38
- * @param value 配置值字符串
39
- * @returns 转换后的值
40
- */
41
- function parseValue(key, value) {
42
- // shallowClone 应该是布尔值
43
- if (key === "shallowClone") {
44
- if (value === "true" || value === "1") {
45
- return true;
46
- }
47
- if (value === "false" || value === "0") {
48
- return false;
49
- }
50
- throw new Error(`Invalid value for ${key}: expected 'true' or 'false'`);
51
- }
52
- // shallowDepth 应该是数字
53
- if (key === "shallowDepth") {
54
- const num = parseInt(value, 10);
55
- if (isNaN(num) || num < 1) {
56
- throw new Error(`Invalid value for ${key}: expected a positive number`);
57
- }
58
- return num;
59
- }
60
- // 其他都是字符串
61
- return value;
62
- }
63
- /**
64
- * 格式化配置值用于显示
65
- * @param value 配置值
66
- * @returns 格式化后的字符串
67
- */
68
- function formatValue(value) {
69
- if (value === undefined) {
70
- return chalk_1.default.gray("(not set)");
71
- }
72
- if (typeof value === "boolean") {
73
- return value ? chalk_1.default.green("true") : chalk_1.default.yellow("false");
74
- }
75
- if (typeof value === "number") {
76
- return chalk_1.default.cyan(String(value));
77
- }
78
- return chalk_1.default.cyan(value);
79
- }
80
- /**
81
- * 显示所有配置
82
- * @param config 配置对象
83
- */
84
- function showAllConfig(config) {
85
- console.log(chalk_1.default.bold("Configuration:"));
86
- console.log();
87
- for (const key of validKeys) {
88
- const value = config[key];
89
- console.log(` ${chalk_1.default.white(key + ":")} ${formatValue(value)}`);
90
- }
91
- console.log();
92
- console.log(chalk_1.default.gray(`Config file: ${(0, format_js_1.shortenPath)((0, config_js_1.getConfigPath)())}`));
93
- }
94
- /**
95
- * 显示单个配置项的值
96
- * @param config 配置对象
97
- * @param key 配置项名称
98
- */
99
- function showConfigValue(config, key) {
100
- const value = config[key];
101
- if (value === undefined) {
102
- console.log(chalk_1.default.gray("(not set)"));
103
- }
104
- else {
105
- console.log(String(value));
106
- }
107
- }
108
- exports.configCommand = new commander_1.Command("config")
109
- .description("Manage global configuration")
110
- .argument("[key]", "Configuration key")
111
- .argument("[value]", "Configuration value")
112
- .addOption(index_js_1.listOption)
113
- .addOption(index_js_1.pathOption)
114
- .action(async (key, value, options) => {
115
- try {
116
- // --path: 显示配置文件路径
117
- if (options.path) {
118
- console.log((0, format_js_1.shortenPath)((0, config_js_1.getConfigPath)()));
119
- return;
120
- }
121
- const config = await (0, config_js_1.readGlobalConfig)();
122
- // --list 或无参数: 显示所有配置
123
- if (options.list || (!key && !value)) {
124
- showAllConfig(config);
125
- return;
126
- }
127
- // 验证配置项名称
128
- if (!isValidKey(key)) {
129
- console.error(chalk_1.default.red(`Unknown configuration key: ${key}`));
130
- console.log();
131
- console.log(`Valid keys: ${validKeys.join(", ")}`);
132
- process.exit(1);
133
- }
134
- // 只有 key,没有 value: 显示配置项的值
135
- if (value === undefined) {
136
- showConfigValue(config, key);
137
- return;
138
- }
139
- // 有 key 和 value: 设置配置项
140
- const parsedValue = parseValue(key, value);
141
- // 更新配置
142
- config[key] = parsedValue;
143
- await (0, config_js_1.writeGlobalConfig)(config);
144
- console.log(format_js_1.StatusIcon.success +
145
- ` Configuration updated: ${chalk_1.default.white(key)} = ${formatValue(parsedValue)}`);
146
- }
147
- catch (error) {
148
- (0, error_js_1.handleError)(error, { exit: true });
149
- }
150
- });
151
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * list 命令
3
- * 列出所有缓存的仓库
4
- */
5
- import { Command } from "commander";
6
- /**
7
- * 注册 list 命令
8
- * @param program Commander 程序实例
9
- */
10
- export declare function registerListCommand(program: Command): void;
11
- export declare const listCommand: Command;
12
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE1D;AAQD,eAAO,MAAM,WAAW,SAiEpB,CAAC"}
@@ -1,118 +0,0 @@
1
- "use strict";
2
- /**
3
- * list 命令
4
- * 列出所有缓存的仓库
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || (function () {
23
- var ownKeys = function(o) {
24
- ownKeys = Object.getOwnPropertyNames || function (o) {
25
- var ar = [];
26
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
- return ar;
28
- };
29
- return ownKeys(o);
30
- };
31
- return function (mod) {
32
- if (mod && mod.__esModule) return mod;
33
- var result = {};
34
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
- __setModuleDefault(result, mod);
36
- return result;
37
- };
38
- })();
39
- var __importDefault = (this && this.__importDefault) || function (mod) {
40
- return (mod && mod.__esModule) ? mod : { "default": mod };
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.listCommand = void 0;
44
- exports.registerListCommand = registerListCommand;
45
- const commander_1 = require("commander");
46
- const chalk_1 = __importDefault(require("chalk"));
47
- const repository = __importStar(require("../core/repository.js"));
48
- const table_js_1 = require("../ui/table.js");
49
- const format_js_1 = require("../ui/format.js");
50
- const error_js_1 = require("../utils/error.js");
51
- const constants_js_1 = require("../utils/constants.js");
52
- const index_js_1 = require("./options/index.js");
53
- /**
54
- * 注册 list 命令
55
- * @param program Commander 程序实例
56
- */
57
- function registerListCommand(program) {
58
- program.addCommand(exports.listCommand);
59
- }
60
- // 列宽定义(使用共享常量)
61
- const COL_NAME = constants_js_1.TABLE_COLUMNS.NAME;
62
- const COL_BRANCH = constants_js_1.TABLE_COLUMNS.BRANCH;
63
- const COL_COMMIT = constants_js_1.TABLE_COLUMNS.COMMIT;
64
- const COL_ADDED = constants_js_1.TABLE_COLUMNS.DATE;
65
- exports.listCommand = new commander_1.Command("list")
66
- .description("List all cached repositories")
67
- .addOption(index_js_1.jsonOption)
68
- .action(async (options) => {
69
- try {
70
- const repos = await repository.list();
71
- // 空列表处理
72
- if (repos.length === 0) {
73
- if (options.json) {
74
- console.log("[]");
75
- }
76
- else {
77
- console.log(chalk_1.default.yellow("No repositories cached yet."));
78
- console.log();
79
- console.log(`Use '${chalk_1.default.cyan("grf add <url>")}' to add a repository.`);
80
- }
81
- return;
82
- }
83
- // JSON 格式输出
84
- if (options.json) {
85
- console.log(JSON.stringify(repos, null, 2));
86
- return;
87
- }
88
- // 表格格式输出
89
- console.log(chalk_1.default.bold("Cached repositories:"));
90
- console.log();
91
- // 表头
92
- const header = " " +
93
- (0, table_js_1.padEnd)("NAME", COL_NAME) +
94
- (0, table_js_1.padEnd)("BRANCH", COL_BRANCH) +
95
- (0, table_js_1.padEnd)("COMMIT", COL_COMMIT) +
96
- (0, table_js_1.padEnd)("ADDED", COL_ADDED);
97
- console.log(chalk_1.default.gray(header));
98
- // 仓库列表
99
- for (const repo of repos) {
100
- const name = (0, table_js_1.truncate)(repo.name, COL_NAME - 2);
101
- const branch = (0, table_js_1.truncate)(repo.branch ?? "-", COL_BRANCH - 2);
102
- const commit = (0, format_js_1.shortCommit)(repo.commitId);
103
- const added = (0, format_js_1.formatDate)(repo.addedAt);
104
- const row = " " +
105
- (0, table_js_1.padEnd)(name, COL_NAME) +
106
- (0, table_js_1.padEnd)(branch, COL_BRANCH) +
107
- (0, table_js_1.padEnd)(commit, COL_COMMIT) +
108
- (0, table_js_1.padEnd)(added, COL_ADDED);
109
- console.log(row);
110
- }
111
- console.log();
112
- console.log(chalk_1.default.gray(`Total: ${repos.length} ${repos.length === 1 ? "repository" : "repositories"}`));
113
- }
114
- catch (error) {
115
- (0, error_js_1.handleError)(error, { exit: true });
116
- }
117
- });
118
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * load 命令
3
- * 将缓存的仓库内容复制到当前工作目录
4
- * 支持直接传入 git URL,会自动先 add 再 load
5
- */
6
- import { Command } from "commander";
7
- /**
8
- * 注册 load 命令
9
- * @param program Commander 程序实例
10
- */
11
- export declare function registerLoadCommand(program: Command): void;
12
- export declare const loadCommand: Command;
13
- //# sourceMappingURL=load.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../../src/commands/load.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED,eAAO,MAAM,WAAW,SA0LrB,CAAC"}
@@ -1,202 +0,0 @@
1
- "use strict";
2
- /**
3
- * load 命令
4
- * 将缓存的仓库内容复制到当前工作目录
5
- * 支持直接传入 git URL,会自动先 add 再 load
6
- */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- var __importDefault = (this && this.__importDefault) || function (mod) {
41
- return (mod && mod.__esModule) ? mod : { "default": mod };
42
- };
43
- Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.loadCommand = void 0;
45
- exports.registerLoadCommand = registerLoadCommand;
46
- const commander_1 = require("commander");
47
- const chalk_1 = __importDefault(require("chalk"));
48
- const path_1 = __importDefault(require("path"));
49
- const repository = __importStar(require("../core/repository.js"));
50
- const filesystem = __importStar(require("../core/filesystem.js"));
51
- const loading = __importStar(require("../core/loading.js"));
52
- const spinner_js_1 = require("../ui/spinner.js");
53
- const format_js_1 = require("../ui/format.js");
54
- const error_js_1 = require("../utils/error.js");
55
- const validation_js_1 = require("../utils/validation.js");
56
- const index_js_1 = require("./options/index.js");
57
- /**
58
- * 注册 load 命令
59
- * @param program Commander 程序实例
60
- */
61
- function registerLoadCommand(program) {
62
- program.addCommand(exports.loadCommand);
63
- }
64
- exports.loadCommand = new commander_1.Command("load")
65
- .description("Copy reference repository to current directory (supports Git URL)")
66
- .argument("<name>", "Repository name, short name, or Git URL")
67
- .argument("[path]", "Target path (default: .gitreference/<repo-path>)")
68
- .addOption(index_js_1.subdirOption)
69
- .addOption(index_js_1.noIgnoreOption)
70
- .addOption(index_js_1.branchOption)
71
- .action(async (name, targetPath, options) => {
72
- let repoName = name;
73
- // 检查是否为 Git URL
74
- if ((0, validation_js_1.isGitUrl)(name)) {
75
- const addSpinner = (0, spinner_js_1.startSpinner)("Adding repository...");
76
- try {
77
- // 检查仓库是否已存在
78
- const parsed = repository.parseRepoUrl(name);
79
- const fullName = `${parsed.host}/${parsed.owner}/${parsed.repo}`;
80
- if (await repository.exists(fullName)) {
81
- addSpinner.info(chalk_1.default.blue("Repository already exists, skipping add..."));
82
- repoName = fullName;
83
- }
84
- else {
85
- // 自动添加仓库
86
- const repoInfo = await repository.add(name, {
87
- branch: options.branch,
88
- shallow: true,
89
- depth: 1,
90
- });
91
- addSpinner.succeed(chalk_1.default.green("Repository added successfully!"));
92
- console.log(` ${chalk_1.default.gray("Name:")} ${repoInfo.name}`);
93
- console.log(` ${chalk_1.default.gray("Commit:")} ${(0, format_js_1.shortCommit)(repoInfo.commitId)}...`);
94
- console.log();
95
- repoName = repoInfo.name;
96
- }
97
- }
98
- catch (error) {
99
- addSpinner.fail(chalk_1.default.red("Failed to add repository"));
100
- (0, error_js_1.handleError)(error, { exit: true });
101
- }
102
- }
103
- const spinner = (0, spinner_js_1.startSpinner)("Copying repository...");
104
- try {
105
- // 检查仓库是否存在
106
- if (!(await repository.exists(repoName))) {
107
- spinner.fail(chalk_1.default.red("Repository not found"));
108
- console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} Repository "${repoName}" does not exist.`));
109
- console.error(chalk_1.default.gray(` Use ${chalk_1.default.cyan("grf add <url>")} to add a repository first.`));
110
- console.error(chalk_1.default.gray(` Or use ${chalk_1.default.cyan("grf load <url>")} to add and load in one step.`));
111
- process.exit(1);
112
- }
113
- // 获取仓库信息
114
- let repoInfo = await repository.get(repoName);
115
- if (!repoInfo) {
116
- spinner.fail(chalk_1.default.red("Failed to get repository info"));
117
- process.exit(1);
118
- }
119
- // 如果指定了分支且与当前分支不同,则切换分支
120
- if (options.branch && repoInfo.branch !== options.branch) {
121
- spinner.text = `Switching to branch ${options.branch}...`;
122
- try {
123
- repoInfo = await repository.switchBranch(repoName, options.branch);
124
- spinner.text = "Copying repository...";
125
- }
126
- catch (error) {
127
- spinner.fail(chalk_1.default.red(`Failed to switch branch`));
128
- (0, error_js_1.handleError)(error, { exit: true });
129
- }
130
- }
131
- // 解析仓库路径
132
- const repoPath = await repository.resolvePath(repoName);
133
- // 确定源路径(如果指定了 subdir,则使用子目录)
134
- const sourcePath = options.subdir
135
- ? path_1.default.join(repoPath, options.subdir)
136
- : repoPath;
137
- // 检查源路径是否存在(特别是子目录情况)
138
- if (options.subdir && !(await filesystem.exists(sourcePath))) {
139
- spinner.fail(chalk_1.default.red("Subdirectory not found"));
140
- console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} Subdirectory "${options.subdir}" does not exist in repository "${repoInfo.name}".`));
141
- process.exit(1);
142
- }
143
- // 确定目标路径
144
- const finalTargetPath = targetPath
145
- ? path_1.default.resolve(process.cwd(), targetPath)
146
- : path_1.default.join(process.cwd(), ".gitreference", repoInfo.name);
147
- // 确保目标目录的父目录存在
148
- await filesystem.ensureDir(path_1.default.dirname(finalTargetPath));
149
- // 复制文件(排除 .git 和 meta.json)
150
- await filesystem.copyDir(sourcePath, finalTargetPath, {
151
- exclude: [
152
- ".git",
153
- "meta.json",
154
- ".grf-meta.json",
155
- ".gitreference-meta.json",
156
- ],
157
- overwrite: true,
158
- });
159
- // 更新 .gitignore(如果没有 --no-ignore 选项)
160
- if (options.ignore !== false) {
161
- // 始终添加 .gitreference/ 条目(默认行为)
162
- await filesystem.updateGitignore(process.cwd(), ".gitreference/");
163
- // 如果用户指定了自定义路径,额外添加该路径
164
- if (targetPath) {
165
- // 计算相对于工作目录的路径
166
- const relativePath = path_1.default.relative(process.cwd(), finalTargetPath);
167
- // 确保路径使用正斜杠(跨平台兼容)并以 / 结尾(表示目录)
168
- const normalizedPath = relativePath.replace(/\\/g, "/");
169
- const gitignoreEntry = normalizedPath.endsWith("/")
170
- ? normalizedPath
171
- : normalizedPath + "/";
172
- // 避免重复添加(如果自定义路径在 .gitreference/ 下则跳过)
173
- if (!gitignoreEntry.startsWith(".gitreference/")) {
174
- await filesystem.updateGitignore(process.cwd(), gitignoreEntry);
175
- }
176
- }
177
- }
178
- // 记录加载信息到 loading.json
179
- const relativeTargetPath = path_1.default
180
- .relative(process.cwd(), finalTargetPath)
181
- .replace(/\\/g, "/");
182
- await loading.addEntry({
183
- repoName: repoInfo.name,
184
- repoUrl: repoInfo.url,
185
- commitId: repoInfo.commitId,
186
- branch: repoInfo.branch,
187
- subdir: options.subdir,
188
- targetPath: relativeTargetPath,
189
- });
190
- spinner.succeed(chalk_1.default.green("Repository copied successfully!"));
191
- // 显示复制信息
192
- console.log();
193
- console.log(` ${chalk_1.default.gray("Source:")} ${sourcePath}`);
194
- console.log(` ${chalk_1.default.gray("Target:")} ${finalTargetPath}`);
195
- console.log(` ${chalk_1.default.gray("Commit:")} ${(0, format_js_1.shortCommit)(repoInfo.commitId)}...`);
196
- }
197
- catch (error) {
198
- spinner.fail(chalk_1.default.red("Failed to copy repository"));
199
- (0, error_js_1.handleError)(error, { exit: true });
200
- }
201
- });
202
- //# sourceMappingURL=load.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/commands/load.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * unload 命令
3
- * 从当前项目中移除已加载的参考代码(use 命令的逆操作)
4
- */
5
- import { Command } from "commander";
6
- /**
7
- * 注册 unload 命令
8
- * @param program Commander 程序实例
9
- */
10
- export declare function registerUnloadCommand(program: Command): void;
11
- export declare const unloadCommand: Command;
12
- //# sourceMappingURL=unload.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unload.d.ts","sourceRoot":"","sources":["../../src/commands/unload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE5D;AAgTD,eAAO,MAAM,aAAa,SAmmBvB,CAAC"}