ai-yuca 1.1.8 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-yuca",
3
- "version": "1.1.8",
3
+ "version": "1.2.0",
4
4
  "description": "一个用AI生成的开发辅助工具",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -196,33 +196,31 @@ async function updateEnvironmentConfig(env, projectName, versionInfo, config, ke
196
196
  const { data: envConfig } = await getConfigFiles(env, config, keyFile);
197
197
  // 查找或创建项目配置
198
198
  let projectConfig = envConfig.projects.find((p) => p.name === projectName);
199
+ envConfig.lastVersion = versionInfo.cdnKey;
200
+ const newProjectConfig = {
201
+ baseUrl: versionInfo.baseUrl,
202
+ s3Static: config.upload.s3Static,
203
+ branch: versionInfo.branch,
204
+ links: versionInfo.links,
205
+ name: projectName,
206
+ latestVersion: versionInfo.cdnKey,
207
+ cdnVersion: versionInfo.cdnKey,
208
+ };
199
209
  if (!projectConfig) {
200
- projectConfig = {
201
- baseUrl: versionInfo.baseUrl,
202
- s3Static: config.upload.s3Static,
203
- branch: versionInfo.branch,
204
- links: versionInfo.links,
205
- name: projectName,
206
- latestVersion: versionInfo.cdnKey,
207
- cdnVersion: versionInfo.cdnKey,
208
- };
209
- envConfig.projects.push(projectConfig);
210
+ envConfig.projects.push(newProjectConfig);
210
211
  }
211
212
  else {
212
- projectConfig = {
213
- baseUrl: versionInfo.baseUrl,
214
- s3Static: config.upload.s3Static,
215
- branch: versionInfo.branch,
216
- links: versionInfo.links,
217
- name: projectName,
218
- latestVersion: versionInfo.cdnKey,
219
- cdnVersion: versionInfo.cdnKey,
220
- };
213
+ envConfig.projects = envConfig.projects.map((p) => {
214
+ if (p.name === projectName) {
215
+ return newProjectConfig;
216
+ }
217
+ return p;
218
+ });
221
219
  }
222
220
  // 上传更新后的环境配置
223
221
  const configPath = `${config.aws.prefix}/static/config/${env}.config.json`;
224
222
  const tempFile = path.join(process.cwd(), `temp-${env}-config.json`);
225
- fs.writeFileSync(tempFile, JSON.stringify(envConfig, null, 2));
223
+ fs.writeFileSync(tempFile, JSON.stringify(envConfig));
226
224
  console.log("更新线上配置:", JSON.stringify(envConfig));
227
225
  const result = await uploadToGcp(tempFile, config.aws.Bucket, configPath, keyFile);
228
226
  fs.unlinkSync(tempFile);
@@ -397,7 +395,7 @@ async function deployFiles(options) {
397
395
  const versionInfo = {
398
396
  cdnKey,
399
397
  version: cdnKey,
400
- baseUrl: Array.isArray(config.deploy.baseUrl) ? config.deploy.baseUrl[0] : config.deploy.baseUrl,
398
+ baseUrl: config.deploy.baseUrl,
401
399
  branch: getBranchName(),
402
400
  timestamp: Date.now(),
403
401
  links: obj.links
@@ -17,7 +17,7 @@ export interface DeployCommandOptions {
17
17
  }
18
18
  export interface DeployConfig {
19
19
  deploy: {
20
- baseUrl: string | string[];
20
+ baseUrl: string[];
21
21
  testHost?: string;
22
22
  };
23
23
  aws: {
@@ -37,7 +37,7 @@ export interface ProjectInfo {
37
37
  export interface DeployVersionInfo {
38
38
  cdnKey: string;
39
39
  version: string;
40
- baseUrl: string;
40
+ baseUrl: string[];
41
41
  branch?: string;
42
42
  timestamp: number;
43
43
  links: string[];
@@ -64,6 +64,8 @@ export interface GetConfigFilesFunction {
64
64
  (env: string, config: Record<string, any>, keyFile?: string): Promise<{
65
65
  data: {
66
66
  projects: Array<any>;
67
+ lastVersion?: string;
68
+ cdnVersion?: string;
67
69
  };
68
70
  }>;
69
71
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-yuca",
3
- "version": "1.1.8",
3
+ "version": "1.2.0",
4
4
  "description": "一个用AI生成的开发辅助工具",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
package/src/deploy.ts CHANGED
@@ -202,9 +202,8 @@ async function updateEnvironmentConfig(
202
202
 
203
203
  // 查找或创建项目配置
204
204
  let projectConfig = envConfig.projects.find((p: any) => p.name === projectName);
205
-
206
- if (!projectConfig) {
207
- projectConfig = {
205
+ envConfig.lastVersion = versionInfo.cdnKey;
206
+ const newProjectConfig = {
208
207
  baseUrl: versionInfo.baseUrl,
209
208
  s3Static:config.upload.s3Static,
210
209
  branch: versionInfo.branch,
@@ -213,24 +212,22 @@ async function updateEnvironmentConfig(
213
212
  latestVersion: versionInfo.cdnKey,
214
213
  cdnVersion: versionInfo.cdnKey,
215
214
  };
216
- envConfig.projects.push(projectConfig);
215
+ if (!projectConfig) {
216
+ envConfig.projects.push(newProjectConfig);
217
217
  } else {
218
- projectConfig = {
219
- baseUrl: versionInfo.baseUrl,
220
- s3Static:config.upload.s3Static,
221
- branch: versionInfo.branch,
222
- links: versionInfo.links,
223
- name: projectName,
224
- latestVersion: versionInfo.cdnKey,
225
- cdnVersion: versionInfo.cdnKey,
226
- };
218
+ envConfig.projects = envConfig.projects.map((p: any) => {
219
+ if (p.name === projectName) {
220
+ return newProjectConfig;
221
+ }
222
+ return p;
223
+ });
227
224
  }
228
225
 
229
226
  // 上传更新后的环境配置
230
227
  const configPath = `${config.aws.prefix}/static/config/${env}.config.json`;
231
228
  const tempFile = path.join(process.cwd(), `temp-${env}-config.json`);
232
229
 
233
- fs.writeFileSync(tempFile, JSON.stringify(envConfig, null, 2));
230
+ fs.writeFileSync(tempFile, JSON.stringify(envConfig));
234
231
 
235
232
  console.log("更新线上配置:", JSON.stringify(envConfig));
236
233
 
@@ -431,7 +428,7 @@ export async function deployFiles(options: DeployCommandOptions): Promise<Deploy
431
428
  const versionInfo: DeployVersionInfo = {
432
429
  cdnKey,
433
430
  version: cdnKey,
434
- baseUrl: Array.isArray(config.deploy.baseUrl) ? config.deploy.baseUrl[0] : config.deploy.baseUrl,
431
+ baseUrl: config.deploy.baseUrl,
435
432
  branch: getBranchName(),
436
433
  timestamp: Date.now(),
437
434
  links: obj.links
@@ -20,7 +20,7 @@ export interface DeployCommandOptions {
20
20
 
21
21
  export interface DeployConfig {
22
22
  deploy: {
23
- baseUrl: string | string[]; // 部署基础URL,支持字符串或数组
23
+ baseUrl: string[]; // 部署基础URL,支持字符串或数组
24
24
  testHost?: string; // 测试环境主机
25
25
  };
26
26
  aws: {
@@ -42,7 +42,7 @@ export interface ProjectInfo {
42
42
  export interface DeployVersionInfo {
43
43
  cdnKey: string;
44
44
  version: string;
45
- baseUrl: string;
45
+ baseUrl: string[];
46
46
  branch?: string;
47
47
  timestamp: number;
48
48
  links: string[];
@@ -70,5 +70,5 @@ export interface DeployResult {
70
70
  }
71
71
 
72
72
  export interface GetConfigFilesFunction {
73
- (env: string, config: Record<string, any>, keyFile?: string): Promise<{ data: { projects: Array<any> } }>;
73
+ (env: string, config: Record<string, any>, keyFile?: string): Promise<{ data: { projects: Array<any>, lastVersion?: string, cdnVersion?: string } }>;
74
74
  }