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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repos-index.d.ts","sourceRoot":"","sources":["../../src/core/repos-index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAMrC;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,CAAC;AAEnC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACnC;AAMD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAA2B;IAExC;;;;OAIG;YACW,IAAI;IAqClB;;;OAGG;YACW,KAAK;IAanB;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAKnD;;;;OAIG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAKxD;;;;OAIG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAM1D;;;;OAIG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5C;;;;OAIG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKzC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAK9B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAKhC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAK9D;;;OAGG;IACH,UAAU,IAAI,IAAI;CAGnB;AAMD,gBAAgB;AAChB,eAAO,MAAM,UAAU,mBAA0B,CAAC;AAMlD;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAEvE;AAED;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAE3E;AAED;;;;GAIG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/D"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* grf 仓库索引管理模块
|
|
4
|
+
* 管理仓库列表,存储在独立的 repos.json 文件中
|
|
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.reposIndex = exports.ReposIndexManager = void 0;
|
|
11
|
+
exports.getAllRepos = getAllRepos;
|
|
12
|
+
exports.getRepo = getRepo;
|
|
13
|
+
exports.saveRepo = saveRepo;
|
|
14
|
+
exports.removeRepo = removeRepo;
|
|
15
|
+
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
16
|
+
const paths_1 = require("./paths");
|
|
17
|
+
// ============================================================================
|
|
18
|
+
// 仓库索引管理类
|
|
19
|
+
// ============================================================================
|
|
20
|
+
/**
|
|
21
|
+
* 仓库索引管理器
|
|
22
|
+
* 管理 repos.json 文件中的仓库列表
|
|
23
|
+
*/
|
|
24
|
+
class ReposIndexManager {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.cache = null;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 读取仓库索引文件
|
|
30
|
+
* 如果文件不存在,返回空的仓库索引
|
|
31
|
+
* @returns 仓库索引对象
|
|
32
|
+
*/
|
|
33
|
+
async read() {
|
|
34
|
+
// 如果有缓存,直接返回
|
|
35
|
+
if (this.cache !== null) {
|
|
36
|
+
return this.cache;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
const filePath = (0, paths_1.getReposIndexPath)();
|
|
40
|
+
const fileExists = await fs_extra_1.default.pathExists(filePath);
|
|
41
|
+
if (!fileExists) {
|
|
42
|
+
// 文件不存在,返回空索引
|
|
43
|
+
const emptyIndex = { repos: {} };
|
|
44
|
+
this.cache = emptyIndex;
|
|
45
|
+
return emptyIndex;
|
|
46
|
+
}
|
|
47
|
+
// 读取并解析文件
|
|
48
|
+
const content = (await fs_extra_1.default.readJson(filePath));
|
|
49
|
+
// 确保 repos 字段存在
|
|
50
|
+
if (!content.repos) {
|
|
51
|
+
content.repos = {};
|
|
52
|
+
}
|
|
53
|
+
// 更新缓存
|
|
54
|
+
this.cache = content;
|
|
55
|
+
return content;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
// 文件读取或解析失败,返回空索引
|
|
59
|
+
const emptyIndex = { repos: {} };
|
|
60
|
+
this.cache = emptyIndex;
|
|
61
|
+
return emptyIndex;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 写入仓库索引文件
|
|
66
|
+
* @param index 要写入的仓库索引
|
|
67
|
+
*/
|
|
68
|
+
async write(index) {
|
|
69
|
+
// 确保目录存在
|
|
70
|
+
await (0, paths_1.ensureGrfDirs)();
|
|
71
|
+
const filePath = (0, paths_1.getReposIndexPath)();
|
|
72
|
+
// 写入文件
|
|
73
|
+
await fs_extra_1.default.writeJson(filePath, index, { spaces: 2 });
|
|
74
|
+
// 更新缓存
|
|
75
|
+
this.cache = index;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* 获取所有仓库
|
|
79
|
+
* @returns 仓库名称到配置的映射
|
|
80
|
+
*/
|
|
81
|
+
async getAll() {
|
|
82
|
+
const index = await this.read();
|
|
83
|
+
return index.repos;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* 获取单个仓库
|
|
87
|
+
* @param name 仓库名称
|
|
88
|
+
* @returns 仓库配置,如果不存在则返回 undefined
|
|
89
|
+
*/
|
|
90
|
+
async get(name) {
|
|
91
|
+
const index = await this.read();
|
|
92
|
+
return index.repos[name];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 添加或更新仓库
|
|
96
|
+
* @param name 仓库名称
|
|
97
|
+
* @param config 仓库配置
|
|
98
|
+
*/
|
|
99
|
+
async set(name, config) {
|
|
100
|
+
const index = await this.read();
|
|
101
|
+
index.repos[name] = config;
|
|
102
|
+
await this.write(index);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* 删除仓库
|
|
106
|
+
* @param name 仓库名称
|
|
107
|
+
* @returns 是否成功删除(仓库存在则返回 true)
|
|
108
|
+
*/
|
|
109
|
+
async remove(name) {
|
|
110
|
+
const index = await this.read();
|
|
111
|
+
if (!(name in index.repos)) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
delete index.repos[name];
|
|
115
|
+
await this.write(index);
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 检查仓库是否存在
|
|
120
|
+
* @param name 仓库名称
|
|
121
|
+
* @returns 仓库是否存在
|
|
122
|
+
*/
|
|
123
|
+
async has(name) {
|
|
124
|
+
const index = await this.read();
|
|
125
|
+
return name in index.repos;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* 获取仓库数量
|
|
129
|
+
* @returns 仓库数量
|
|
130
|
+
*/
|
|
131
|
+
async count() {
|
|
132
|
+
const index = await this.read();
|
|
133
|
+
return Object.keys(index.repos).length;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* 获取所有仓库名称
|
|
137
|
+
* @returns 仓库名称数组
|
|
138
|
+
*/
|
|
139
|
+
async names() {
|
|
140
|
+
const index = await this.read();
|
|
141
|
+
return Object.keys(index.repos);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 清空所有仓库
|
|
145
|
+
*/
|
|
146
|
+
async clear() {
|
|
147
|
+
const emptyIndex = { repos: {} };
|
|
148
|
+
await this.write(emptyIndex);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* 批量设置仓库(用于迁移)
|
|
152
|
+
* @param repos 仓库名称到配置的映射
|
|
153
|
+
*/
|
|
154
|
+
async setAll(repos) {
|
|
155
|
+
const index = { repos };
|
|
156
|
+
await this.write(index);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* 清除缓存
|
|
160
|
+
* 下次调用读取方法时会重新从文件读取
|
|
161
|
+
*/
|
|
162
|
+
clearCache() {
|
|
163
|
+
this.cache = null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.ReposIndexManager = ReposIndexManager;
|
|
167
|
+
// ============================================================================
|
|
168
|
+
// 单例实例
|
|
169
|
+
// ============================================================================
|
|
170
|
+
/** 仓库索引管理器单例 */
|
|
171
|
+
exports.reposIndex = new ReposIndexManager();
|
|
172
|
+
// ============================================================================
|
|
173
|
+
// 便捷函数(保持与旧 API 兼容)
|
|
174
|
+
// ============================================================================
|
|
175
|
+
/**
|
|
176
|
+
* 获取所有仓库配置
|
|
177
|
+
* @returns 仓库名称到配置的映射
|
|
178
|
+
*/
|
|
179
|
+
async function getAllRepos() {
|
|
180
|
+
return exports.reposIndex.getAll();
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* 获取单个仓库配置
|
|
184
|
+
* @param name 仓库名称
|
|
185
|
+
* @returns 仓库配置,如果不存在则返回 undefined
|
|
186
|
+
*/
|
|
187
|
+
async function getRepo(name) {
|
|
188
|
+
return exports.reposIndex.get(name);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* 保存仓库配置
|
|
192
|
+
* @param name 仓库名称
|
|
193
|
+
* @param config 仓库配置
|
|
194
|
+
*/
|
|
195
|
+
async function saveRepo(name, config) {
|
|
196
|
+
return exports.reposIndex.set(name, config);
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* 删除仓库配置
|
|
200
|
+
* @param name 仓库名称
|
|
201
|
+
* @returns 是否成功删除
|
|
202
|
+
*/
|
|
203
|
+
async function removeRepo(name) {
|
|
204
|
+
return exports.reposIndex.remove(name);
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=repos-index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repos-index.js","sourceRoot":"","sources":["../../src/core/repos-index.ts"],"names":[],"mappings":"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"}
|
package/dist/core/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,YAAY,EACnB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,EAAE,CAAC,CAUvB;AAID;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,GAAE,OAAe,EACtB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe;IACf,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,YAAY;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,YAAY,EACnB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC,CA4CrB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,EAAE,CAAC,CAUvB;AAID;;;;;;GAMG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,GAAE,OAAe,EACtB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,CAAC,CAuErB;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,KAAK,GAAE,OAAe,EACtB,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC,UAAU,EAAE,CAAC,CAsCvB"}
|
package/dist/core/sync.js
CHANGED
|
@@ -103,7 +103,7 @@ async function getSyncStatus(entry, projectRoot = process.cwd()) {
|
|
|
103
103
|
* @returns 同步状态列表
|
|
104
104
|
*/
|
|
105
105
|
async function getAllSyncStatus(projectRoot = process.cwd()) {
|
|
106
|
-
const entries = await loading.getEntries(
|
|
106
|
+
const entries = await loading.getEntries();
|
|
107
107
|
const statusList = [];
|
|
108
108
|
for (const entry of entries) {
|
|
109
109
|
const status = await getSyncStatus(entry, projectRoot);
|
|
@@ -170,7 +170,7 @@ async function syncEntry(entry, force = false, projectRoot = process.cwd()) {
|
|
|
170
170
|
// 更新 loading.json 中的 commitId 和 updatedAt
|
|
171
171
|
await loading.updateEntry(entry.id, {
|
|
172
172
|
commitId: cacheCommitId,
|
|
173
|
-
}
|
|
173
|
+
});
|
|
174
174
|
result.success = true;
|
|
175
175
|
result.message = `同步成功: ${entry.commitId.substring(0, 7)} → ${cacheCommitId.substring(0, 7)}`;
|
|
176
176
|
return result;
|
|
@@ -188,7 +188,7 @@ async function syncEntry(entry, force = false, projectRoot = process.cwd()) {
|
|
|
188
188
|
* @returns 同步结果列表
|
|
189
189
|
*/
|
|
190
190
|
async function syncAll(force = false, projectRoot = process.cwd()) {
|
|
191
|
-
const entries = await loading.getEntries(
|
|
191
|
+
const entries = await loading.getEntries();
|
|
192
192
|
const results = [];
|
|
193
193
|
for (const entry of entries) {
|
|
194
194
|
// 获取同步状态
|
package/dist/core/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DH,sCA+CC;AAOD,4CAYC;AAWD,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 格式化输出模块
|
|
3
|
+
* 封装各种数据格式化功能
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 截断 commit ID(前 7 个字符)
|
|
7
|
+
* @param commitId 完整的 commit ID
|
|
8
|
+
* @param length 截断长度,默认为 7
|
|
9
|
+
* @returns 截断后的 commit ID
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* shortCommit("abc1234567890"); // "abc1234"
|
|
14
|
+
* shortCommit("abc1234567890", 10); // "abc1234567"
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export declare function shortCommit(commitId: string, length?: number): string;
|
|
18
|
+
/**
|
|
19
|
+
* 格式化日期
|
|
20
|
+
* @param isoDate ISO 格式日期字符串或 Date 对象
|
|
21
|
+
* @param format 格式类型
|
|
22
|
+
* @returns 格式化后的日期字符串
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* formatDate("2024-01-15T10:30:00Z"); // "1/15/2024"
|
|
27
|
+
* formatDate("2024-01-15T10:30:00Z", "full"); // "1/15/2024, 10:30:00 AM"
|
|
28
|
+
* formatDate("2024-01-15T10:30:00Z", "relative"); // "2 days ago"
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatDate(isoDate: string | Date, format?: "short" | "full" | "relative" | "iso"): string;
|
|
32
|
+
/**
|
|
33
|
+
* 格式化字节大小
|
|
34
|
+
* @param bytes 字节数
|
|
35
|
+
* @param decimals 小数位数,默认为 2
|
|
36
|
+
* @returns 格式化后的大小字符串
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```typescript
|
|
40
|
+
* formatBytes(1024); // "1 KB"
|
|
41
|
+
* formatBytes(1234567); // "1.18 MB"
|
|
42
|
+
* formatBytes(0); // "0 Bytes"
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function formatBytes(bytes: number, decimals?: number): string;
|
|
46
|
+
/**
|
|
47
|
+
* 格式化数字(添加千位分隔符)
|
|
48
|
+
* @param num 数字
|
|
49
|
+
* @returns 格式化后的数字字符串
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* formatNumber(1234567); // "1,234,567"
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatNumber(num: number): string;
|
|
57
|
+
/**
|
|
58
|
+
* 格式化持续时间(毫秒)
|
|
59
|
+
* @param ms 毫秒数
|
|
60
|
+
* @returns 格式化后的持续时间字符串
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* formatDuration(1500); // "1.5s"
|
|
65
|
+
* formatDuration(65000); // "1m 5s"
|
|
66
|
+
* formatDuration(500); // "500ms"
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
export declare function formatDuration(ms: number): string;
|
|
70
|
+
/**
|
|
71
|
+
* 格式化路径(将 home 目录替换为 ~)
|
|
72
|
+
* @param filePath 文件路径
|
|
73
|
+
* @param homeDir home 目录路径
|
|
74
|
+
* @returns 格式化后的路径
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ```typescript
|
|
78
|
+
* shortenPath("/home/user/projects", "/home/user"); // "~/projects"
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare function shortenPath(filePath: string, homeDir?: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* 规范化路径分隔符(统一使用正斜杠)
|
|
84
|
+
* @param filePath 文件路径
|
|
85
|
+
* @returns 规范化后的路径
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* normalizePath("path\\to\\file"); // "path/to/file"
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
export declare function normalizePath(filePath: string): string;
|
|
93
|
+
/**
|
|
94
|
+
* 格式化仓库名称(用于显示)
|
|
95
|
+
* @param repoName 仓库名称
|
|
96
|
+
* @returns 格式化后的名称
|
|
97
|
+
*/
|
|
98
|
+
export declare function formatRepoName(repoName: string): string;
|
|
99
|
+
/**
|
|
100
|
+
* 状态图标
|
|
101
|
+
*/
|
|
102
|
+
export declare const StatusIcon: {
|
|
103
|
+
readonly success: string;
|
|
104
|
+
readonly error: string;
|
|
105
|
+
readonly warning: string;
|
|
106
|
+
readonly info: string;
|
|
107
|
+
readonly pending: string;
|
|
108
|
+
readonly inProgress: string;
|
|
109
|
+
readonly update: string;
|
|
110
|
+
};
|
|
111
|
+
/**
|
|
112
|
+
* 获取状态图标
|
|
113
|
+
* @param status 状态类型
|
|
114
|
+
* @returns 对应的图标
|
|
115
|
+
*/
|
|
116
|
+
export declare function getStatusIcon(status: "success" | "error" | "warning" | "info" | "pending" | "inProgress" | "update"): string;
|
|
117
|
+
/**
|
|
118
|
+
* 格式化错误消息
|
|
119
|
+
* @param message 错误消息
|
|
120
|
+
* @returns 格式化后的错误消息
|
|
121
|
+
*/
|
|
122
|
+
export declare function formatError(message: string): string;
|
|
123
|
+
/**
|
|
124
|
+
* 格式化成功消息
|
|
125
|
+
* @param message 成功消息
|
|
126
|
+
* @returns 格式化后的成功消息
|
|
127
|
+
*/
|
|
128
|
+
export declare function formatSuccess(message: string): string;
|
|
129
|
+
/**
|
|
130
|
+
* 格式化警告消息
|
|
131
|
+
* @param message 警告消息
|
|
132
|
+
* @returns 格式化后的警告消息
|
|
133
|
+
*/
|
|
134
|
+
export declare function formatWarning(message: string): string;
|
|
135
|
+
/**
|
|
136
|
+
* 格式化提示消息
|
|
137
|
+
* @param message 提示消息
|
|
138
|
+
* @returns 格式化后的提示消息
|
|
139
|
+
*/
|
|
140
|
+
export declare function formatHint(message: string): string;
|
|
141
|
+
/**
|
|
142
|
+
* 高亮显示命令
|
|
143
|
+
* @param command 命令字符串
|
|
144
|
+
* @returns 高亮后的命令
|
|
145
|
+
*/
|
|
146
|
+
export declare function highlightCommand(command: string): string;
|
|
147
|
+
/**
|
|
148
|
+
* 高亮显示路径
|
|
149
|
+
* @param path 路径字符串
|
|
150
|
+
* @returns 高亮后的路径
|
|
151
|
+
*/
|
|
152
|
+
export declare function highlightPath(path: string): string;
|
|
153
|
+
/**
|
|
154
|
+
* 高亮显示名称
|
|
155
|
+
* @param name 名称字符串
|
|
156
|
+
* @returns 高亮后的名称
|
|
157
|
+
*/
|
|
158
|
+
export declare function highlightName(name: string): string;
|
|
159
|
+
//# sourceMappingURL=format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/ui/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAExE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,GAAG,IAAI,EACtB,MAAM,GAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,KAAe,GACtD,MAAM,CAeR;AAmCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAWvE;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAgCjD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAMtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAQb,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EACF,SAAS,GACT,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,GACT,YAAY,GACZ,QAAQ,GACX,MAAM,CAER;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
|