grf-cli 1.0.0 → 1.0.3
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/README.md +5 -5
- package/README.zh-CN.md +5 -5
- package/dist/cli.js +2 -14
- package/dist/cli.js.map +1 -1
- package/dist/commands/add.d.ts +5 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +15 -16
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/clean.d.ts +5 -0
- package/dist/commands/clean.d.ts.map +1 -1
- package/dist/commands/clean.js +15 -33
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +19 -39
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/index.d.ts +27 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +52 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +27 -59
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/load.d.ts +5 -0
- package/dist/commands/load.d.ts.map +1 -1
- package/dist/commands/load.js +23 -61
- package/dist/commands/load.js.map +1 -1
- package/dist/commands/unload.d.ts +6 -1
- package/dist/commands/unload.d.ts.map +1 -1
- package/dist/commands/unload.js +157 -162
- package/dist/commands/unload.js.map +1 -1
- package/dist/commands/update.d.ts +6 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +66 -74
- package/dist/commands/update.js.map +1 -1
- package/dist/core/config-manager.d.ts +83 -0
- package/dist/core/config-manager.d.ts.map +1 -0
- package/dist/core/config-manager.js +170 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/config.d.ts +22 -2
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +71 -35
- package/dist/core/config.js.map +1 -1
- package/dist/core/loading-state.d.ts +125 -0
- package/dist/core/loading-state.d.ts.map +1 -0
- package/dist/core/loading-state.js +212 -0
- package/dist/core/loading-state.js.map +1 -0
- package/dist/core/loading.d.ts +21 -26
- package/dist/core/loading.d.ts.map +1 -1
- package/dist/core/loading.js +124 -87
- package/dist/core/loading.js.map +1 -1
- package/dist/core/migration.d.ts +54 -0
- package/dist/core/migration.d.ts.map +1 -0
- package/dist/core/migration.js +279 -0
- package/dist/core/migration.js.map +1 -0
- package/dist/core/paths.d.ts +58 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +103 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/repos-index.d.ts +113 -0
- package/dist/core/repos-index.d.ts.map +1 -0
- package/dist/core/repos-index.js +206 -0
- package/dist/core/repos-index.js.map +1 -0
- package/dist/core/sync.d.ts.map +1 -1
- package/dist/core/sync.js +3 -3
- package/dist/core/sync.js.map +1 -1
- package/dist/ui/format.d.ts +159 -0
- package/dist/ui/format.d.ts.map +1 -0
- package/dist/ui/format.js +300 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/index.d.ts +9 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +53 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompt.d.ts +94 -0
- package/dist/ui/prompt.d.ts.map +1 -0
- package/dist/ui/prompt.js +223 -0
- package/dist/ui/prompt.js.map +1 -0
- package/dist/ui/spinner.d.ts +99 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +136 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/table.d.ts +142 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +213 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/utils/constants.d.ts +152 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +160 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/error.d.ts +109 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +212 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +44 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/validation.d.ts +122 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +248 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +4 -4
package/dist/commands/list.js
CHANGED
|
@@ -41,52 +41,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
};
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
43
|
exports.listCommand = void 0;
|
|
44
|
+
exports.registerListCommand = registerListCommand;
|
|
44
45
|
const commander_1 = require("commander");
|
|
45
46
|
const chalk_1 = __importDefault(require("chalk"));
|
|
46
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");
|
|
47
52
|
/**
|
|
48
|
-
*
|
|
49
|
-
* @param
|
|
50
|
-
* @param maxLength 最大长度
|
|
51
|
-
* @returns 截断后的字符串
|
|
53
|
+
* 注册 list 命令
|
|
54
|
+
* @param program Commander 程序实例
|
|
52
55
|
*/
|
|
53
|
-
function
|
|
54
|
-
|
|
55
|
-
return str;
|
|
56
|
-
return str.slice(0, maxLength - 3) + "...";
|
|
56
|
+
function registerListCommand(program) {
|
|
57
|
+
program.addCommand(exports.listCommand);
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
function formatDate(isoDate) {
|
|
64
|
-
return new Date(isoDate).toLocaleDateString();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* 截断 commit ID
|
|
68
|
-
* @param commitId 完整的 commit ID
|
|
69
|
-
* @returns 截断后的 commit ID(7 字符)
|
|
70
|
-
*/
|
|
71
|
-
function shortCommit(commitId) {
|
|
72
|
-
return commitId.slice(0, 7);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* 填充字符串到指定宽度
|
|
76
|
-
* @param str 原始字符串
|
|
77
|
-
* @param width 目标宽度
|
|
78
|
-
* @returns 填充后的字符串
|
|
79
|
-
*/
|
|
80
|
-
function padEnd(str, width) {
|
|
81
|
-
if (str.length >= width)
|
|
82
|
-
return str;
|
|
83
|
-
return str + " ".repeat(width - str.length);
|
|
84
|
-
}
|
|
85
|
-
// 列宽定义
|
|
86
|
-
const COL_NAME = 40;
|
|
87
|
-
const COL_BRANCH = 15;
|
|
88
|
-
const COL_COMMIT = 10;
|
|
89
|
-
const COL_ADDED = 12;
|
|
59
|
+
// 列宽定义(使用共享常量)
|
|
60
|
+
const COL_NAME = constants_js_1.TABLE_COLUMNS.NAME;
|
|
61
|
+
const COL_BRANCH = constants_js_1.TABLE_COLUMNS.BRANCH;
|
|
62
|
+
const COL_COMMIT = constants_js_1.TABLE_COLUMNS.COMMIT;
|
|
63
|
+
const COL_ADDED = constants_js_1.TABLE_COLUMNS.DATE;
|
|
90
64
|
exports.listCommand = new commander_1.Command("list")
|
|
91
65
|
.description("List all cached repositories")
|
|
92
66
|
.option("--json", "Output in JSON format")
|
|
@@ -115,35 +89,29 @@ exports.listCommand = new commander_1.Command("list")
|
|
|
115
89
|
console.log();
|
|
116
90
|
// 表头
|
|
117
91
|
const header = " " +
|
|
118
|
-
padEnd("NAME", COL_NAME) +
|
|
119
|
-
padEnd("BRANCH", COL_BRANCH) +
|
|
120
|
-
padEnd("COMMIT", COL_COMMIT) +
|
|
121
|
-
padEnd("ADDED", COL_ADDED);
|
|
92
|
+
(0, table_js_1.padEnd)("NAME", COL_NAME) +
|
|
93
|
+
(0, table_js_1.padEnd)("BRANCH", COL_BRANCH) +
|
|
94
|
+
(0, table_js_1.padEnd)("COMMIT", COL_COMMIT) +
|
|
95
|
+
(0, table_js_1.padEnd)("ADDED", COL_ADDED);
|
|
122
96
|
console.log(chalk_1.default.gray(header));
|
|
123
97
|
// 仓库列表
|
|
124
98
|
for (const repo of repos) {
|
|
125
|
-
const name = truncate(repo.name, COL_NAME - 2);
|
|
126
|
-
const branch = truncate(repo.branch ?? "-", COL_BRANCH - 2);
|
|
127
|
-
const commit = shortCommit(repo.commitId);
|
|
128
|
-
const added = formatDate(repo.addedAt);
|
|
99
|
+
const name = (0, table_js_1.truncate)(repo.name, COL_NAME - 2);
|
|
100
|
+
const branch = (0, table_js_1.truncate)(repo.branch ?? "-", COL_BRANCH - 2);
|
|
101
|
+
const commit = (0, format_js_1.shortCommit)(repo.commitId);
|
|
102
|
+
const added = (0, format_js_1.formatDate)(repo.addedAt);
|
|
129
103
|
const row = " " +
|
|
130
|
-
padEnd(name, COL_NAME) +
|
|
131
|
-
padEnd(branch, COL_BRANCH) +
|
|
132
|
-
padEnd(commit, COL_COMMIT) +
|
|
133
|
-
padEnd(added, COL_ADDED);
|
|
104
|
+
(0, table_js_1.padEnd)(name, COL_NAME) +
|
|
105
|
+
(0, table_js_1.padEnd)(branch, COL_BRANCH) +
|
|
106
|
+
(0, table_js_1.padEnd)(commit, COL_COMMIT) +
|
|
107
|
+
(0, table_js_1.padEnd)(added, COL_ADDED);
|
|
134
108
|
console.log(row);
|
|
135
109
|
}
|
|
136
110
|
console.log();
|
|
137
111
|
console.log(chalk_1.default.gray(`Total: ${repos.length} ${repos.length === 1 ? "repository" : "repositories"}`));
|
|
138
112
|
}
|
|
139
113
|
catch (error) {
|
|
140
|
-
|
|
141
|
-
console.error(chalk_1.default.red(`${chalk_1.default.bold("✗")} ${error.message}`));
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
console.error(chalk_1.default.red(`${chalk_1.default.bold("✗")} An unknown error occurred`));
|
|
145
|
-
}
|
|
146
|
-
process.exit(1);
|
|
114
|
+
(0, error_js_1.handleError)(error, { exit: true });
|
|
147
115
|
}
|
|
148
116
|
});
|
|
149
117
|
//# sourceMappingURL=list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/load.d.ts
CHANGED
|
@@ -4,5 +4,10 @@
|
|
|
4
4
|
* 支持直接传入 git URL,会自动先 add 再 load
|
|
5
5
|
*/
|
|
6
6
|
import { Command } from "commander";
|
|
7
|
+
/**
|
|
8
|
+
* 注册 load 命令
|
|
9
|
+
* @param program Commander 程序实例
|
|
10
|
+
*/
|
|
11
|
+
export declare function registerLoadCommand(program: Command): void;
|
|
7
12
|
export declare const loadCommand: Command;
|
|
8
13
|
//# sourceMappingURL=load.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAWpC;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE1D;AAED,eAAO,MAAM,WAAW,SA0LrB,CAAC"}
|
package/dist/commands/load.js
CHANGED
|
@@ -42,24 +42,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
42
42
|
};
|
|
43
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
44
|
exports.loadCommand = void 0;
|
|
45
|
+
exports.registerLoadCommand = registerLoadCommand;
|
|
45
46
|
const commander_1 = require("commander");
|
|
46
47
|
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
-
const ora_1 = __importDefault(require("ora"));
|
|
48
48
|
const path_1 = __importDefault(require("path"));
|
|
49
49
|
const repository = __importStar(require("../core/repository.js"));
|
|
50
50
|
const filesystem = __importStar(require("../core/filesystem.js"));
|
|
51
51
|
const loading = __importStar(require("../core/loading.js"));
|
|
52
|
-
const
|
|
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");
|
|
53
56
|
/**
|
|
54
|
-
*
|
|
55
|
-
*
|
|
57
|
+
* 注册 load 命令
|
|
58
|
+
* @param program Commander 程序实例
|
|
56
59
|
*/
|
|
57
|
-
function
|
|
58
|
-
|
|
59
|
-
const httpsRegex = /^https?:\/\/[^/]+\/[^/]+\/[^/]+/;
|
|
60
|
-
// SSH 格式: git@github.com:user/repo.git
|
|
61
|
-
const sshRegex = /^git@[^:]+:[^/]+\/[^/]+/;
|
|
62
|
-
return httpsRegex.test(str) || sshRegex.test(str);
|
|
60
|
+
function registerLoadCommand(program) {
|
|
61
|
+
program.addCommand(exports.loadCommand);
|
|
63
62
|
}
|
|
64
63
|
exports.loadCommand = new commander_1.Command("load")
|
|
65
64
|
.description("Copy reference repository to current directory (supports Git URL)")
|
|
@@ -71,8 +70,8 @@ exports.loadCommand = new commander_1.Command("load")
|
|
|
71
70
|
.action(async (name, targetPath, options) => {
|
|
72
71
|
let repoName = name;
|
|
73
72
|
// 检查是否为 Git URL
|
|
74
|
-
if (isGitUrl(name)) {
|
|
75
|
-
const addSpinner = (0,
|
|
73
|
+
if ((0, validation_js_1.isGitUrl)(name)) {
|
|
74
|
+
const addSpinner = (0, spinner_js_1.startSpinner)("Adding repository...");
|
|
76
75
|
try {
|
|
77
76
|
// 检查仓库是否已存在
|
|
78
77
|
const parsed = repository.parseRepoUrl(name);
|
|
@@ -90,26 +89,17 @@ exports.loadCommand = new commander_1.Command("load")
|
|
|
90
89
|
});
|
|
91
90
|
addSpinner.succeed(chalk_1.default.green("Repository added successfully!"));
|
|
92
91
|
console.log(` ${chalk_1.default.gray("Name:")} ${repoInfo.name}`);
|
|
93
|
-
console.log(` ${chalk_1.default.gray("Commit:")} ${
|
|
92
|
+
console.log(` ${chalk_1.default.gray("Commit:")} ${(0, format_js_1.shortCommit)(repoInfo.commitId)}...`);
|
|
94
93
|
console.log();
|
|
95
94
|
repoName = repoInfo.name;
|
|
96
95
|
}
|
|
97
96
|
}
|
|
98
97
|
catch (error) {
|
|
99
98
|
addSpinner.fail(chalk_1.default.red("Failed to add repository"));
|
|
100
|
-
|
|
101
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} ${error.message}`));
|
|
102
|
-
}
|
|
103
|
-
else if (error instanceof Error) {
|
|
104
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} ${error.message}`));
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} An unknown error occurred`));
|
|
108
|
-
}
|
|
109
|
-
process.exit(1);
|
|
99
|
+
(0, error_js_1.handleError)(error, { exit: true });
|
|
110
100
|
}
|
|
111
101
|
}
|
|
112
|
-
const spinner = (0,
|
|
102
|
+
const spinner = (0, spinner_js_1.startSpinner)("Copying repository...");
|
|
113
103
|
try {
|
|
114
104
|
// 检查仓库是否存在
|
|
115
105
|
if (!(await repository.exists(repoName))) {
|
|
@@ -134,19 +124,7 @@ exports.loadCommand = new commander_1.Command("load")
|
|
|
134
124
|
}
|
|
135
125
|
catch (error) {
|
|
136
126
|
spinner.fail(chalk_1.default.red(`Failed to switch branch`));
|
|
137
|
-
|
|
138
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} ${error.message}`));
|
|
139
|
-
if (error.code === index_js_1.ErrorCode.GIT_CHECKOUT_FAILED) {
|
|
140
|
-
console.error(chalk_1.default.gray(` Branch "${options.branch}" may not exist. Use ${chalk_1.default.cyan("git branch -r")} to list available branches.`));
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else if (error instanceof Error) {
|
|
144
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} ${error.message}`));
|
|
145
|
-
}
|
|
146
|
-
else {
|
|
147
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} An unknown error occurred`));
|
|
148
|
-
}
|
|
149
|
-
process.exit(1);
|
|
127
|
+
(0, error_js_1.handleError)(error, { exit: true });
|
|
150
128
|
}
|
|
151
129
|
}
|
|
152
130
|
// 解析仓库路径
|
|
@@ -169,7 +147,12 @@ exports.loadCommand = new commander_1.Command("load")
|
|
|
169
147
|
await filesystem.ensureDir(path_1.default.dirname(finalTargetPath));
|
|
170
148
|
// 复制文件(排除 .git 和 meta.json)
|
|
171
149
|
await filesystem.copyDir(sourcePath, finalTargetPath, {
|
|
172
|
-
exclude: [
|
|
150
|
+
exclude: [
|
|
151
|
+
".git",
|
|
152
|
+
"meta.json",
|
|
153
|
+
".grf-meta.json",
|
|
154
|
+
".gitreference-meta.json",
|
|
155
|
+
],
|
|
173
156
|
overwrite: true,
|
|
174
157
|
});
|
|
175
158
|
// 更新 .gitignore(如果没有 --no-ignore 选项)
|
|
@@ -208,32 +191,11 @@ exports.loadCommand = new commander_1.Command("load")
|
|
|
208
191
|
console.log();
|
|
209
192
|
console.log(` ${chalk_1.default.gray("Source:")} ${sourcePath}`);
|
|
210
193
|
console.log(` ${chalk_1.default.gray("Target:")} ${finalTargetPath}`);
|
|
211
|
-
console.log(` ${chalk_1.default.gray("Commit:")} ${
|
|
194
|
+
console.log(` ${chalk_1.default.gray("Commit:")} ${(0, format_js_1.shortCommit)(repoInfo.commitId)}...`);
|
|
212
195
|
}
|
|
213
196
|
catch (error) {
|
|
214
197
|
spinner.fail(chalk_1.default.red("Failed to copy repository"));
|
|
215
|
-
|
|
216
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} ${error.message}`));
|
|
217
|
-
// 提供更具体的错误提示
|
|
218
|
-
if (error.code === index_js_1.ErrorCode.REPO_NOT_FOUND) {
|
|
219
|
-
console.error(chalk_1.default.gray(` Use ${chalk_1.default.cyan("grf add <url>")} to add a repository first.`));
|
|
220
|
-
}
|
|
221
|
-
else if (error.code === index_js_1.ErrorCode.FS_PATH_NOT_FOUND) {
|
|
222
|
-
console.error(chalk_1.default.gray(` The source path does not exist. Please check the repository or subdirectory.`));
|
|
223
|
-
}
|
|
224
|
-
else if (error.code === index_js_1.ErrorCode.FS_PERMISSION_DENIED) {
|
|
225
|
-
console.error(chalk_1.default.gray(` Permission denied. Please check your file permissions.`));
|
|
226
|
-
}
|
|
227
|
-
process.exit(1);
|
|
228
|
-
}
|
|
229
|
-
// 未知错误
|
|
230
|
-
if (error instanceof Error) {
|
|
231
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} ${error.message}`));
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
console.error(chalk_1.default.red(`\n${chalk_1.default.bold("✗")} An unknown error occurred`));
|
|
235
|
-
}
|
|
236
|
-
process.exit(1);
|
|
198
|
+
(0, error_js_1.handleError)(error, { exit: true });
|
|
237
199
|
}
|
|
238
200
|
});
|
|
239
201
|
//# sourceMappingURL=load.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/commands/load.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../../src/commands/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* unload 命令
|
|
3
|
-
*
|
|
3
|
+
* 从当前项目中移除已加载的参考代码(use 命令的逆操作)
|
|
4
4
|
*/
|
|
5
5
|
import { Command } from "commander";
|
|
6
|
+
/**
|
|
7
|
+
* 注册 unload 命令
|
|
8
|
+
* @param program Commander 程序实例
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerUnloadCommand(program: Command): void;
|
|
6
11
|
export declare const unloadCommand: Command;
|
|
7
12
|
//# sourceMappingURL=unload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAapC;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAE5D;AAgTD,eAAO,MAAM,aAAa,SAmmBvB,CAAC"}
|