cc-translate 0.4.6 → 0.5.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/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +1 -0
- package/lib/cache/index.d.ts +7 -2
- package/lib/cache/index.d.ts.map +1 -1
- package/lib/cache/index.js +77 -3
- package/lib/utils.d.ts +1 -0
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +13 -0
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/lib/cache/index.ts +98 -3
- package/src/lib/utils.ts +16 -0
- package/src/types/index.ts +10 -0
- package/test.mjs +15 -0
- package/types/index.d.ts +10 -0
- package/types/index.d.ts.map +1 -1
package/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { OpenAI } from "openai";
|
|
2
2
|
import { ICwalletTranslateParams, IJson, IOpenaiConfig, IOutputLanguageFile, ISingleTranslate, ITranslateChat, ITranslateChatResponse, SupportLanguageType } from "./types";
|
|
3
3
|
export { testCompletions } from "./test/index.js";
|
|
4
|
+
export { generateCache, deleteBatchCache } from "./lib/cache/index.js";
|
|
4
5
|
export declare class CwalletTranslate {
|
|
5
6
|
/** open ai api key */
|
|
6
7
|
private OPENAI_KEY;
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAgBjB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAgBjB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAMvE,qBAAa,gBAAgB;IAC3B,uBAAuB;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,MAAM;IACN,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB;IACjB,eAAe,EAAE,mBAAmB,CAAC;IACrC,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAEP,MAAM,EAAE,uBAAuB;IAY3C,IAAI,gBAAgB,kCAOnB;IAED,IAAI,UAAU,WAEb;IAED,cAAc,CAAC,IAAI,EAAE,mBAAmB;IAIxC,kBAAkB,aAOhB;IACF;;OAEG;IACH,SAAS,sBA0DP;IACF;;;;OAIG;IACH,eAAe,WAAkB,gBAAgB,mBAoD/C;IAEF;;;;;;;OAOG;IACH,aAAa,WAAY,cAAc,KAAG,OAAO,CAAC,sBAAsB,CAAC,CA2DvE;IACF;;;;;OAKG;IACH,mBAAmB,aACP,mBAAmB,YACnB,MAAM,KACf,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,CA6B3B;IAEF;;;OAGG;IACH,kBAAkB,WAAkB,mBAAmB,mBAsCrD;CACH"}
|
package/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { getCacheFileSync, registerLanguageCacheFile, translateJSONDiffToJson, }
|
|
|
17
17
|
import { logErrorToFile } from "./lib/log/index.js";
|
|
18
18
|
import { SUPPORT_LANGUAGE_MAP } from "./lib/support.js";
|
|
19
19
|
export { testCompletions } from "./test/index.js";
|
|
20
|
+
export { generateCache, deleteBatchCache } from "./lib/cache/index.js";
|
|
20
21
|
const DEFAULT_OPENAI_CONFIG = {
|
|
21
22
|
model: "gpt-4o",
|
|
22
23
|
};
|
package/lib/cache/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IGenerateCacheParams, IJson, IRegisterLanguageCacheFile } from "../../types";
|
|
1
|
+
import { IDeleteSingleCacheParams, IGenerateCacheParams, IJson, IRegisterLanguageCacheFile } from "../../types";
|
|
2
2
|
/**
|
|
3
3
|
* 和翻译缓存json文件对比 返回存在更改的json文件
|
|
4
4
|
* @param {object} cacheObject 已经缓存的对象
|
|
@@ -20,5 +20,10 @@ export declare const registerLanguageCacheFile: (params: IRegisterLanguageCacheF
|
|
|
20
20
|
/**
|
|
21
21
|
* 根据现有的源文件生成缓存
|
|
22
22
|
*/
|
|
23
|
-
export declare const generateCache: (params: IGenerateCacheParams) => void
|
|
23
|
+
export declare const generateCache: (params: IGenerateCacheParams) => Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* 批量删除指定语言的缓存信息
|
|
26
|
+
* @param params
|
|
27
|
+
*/
|
|
28
|
+
export declare const deleteBatchCache: (params: IDeleteSingleCacheParams) => void;
|
|
24
29
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cache/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/cache/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/cache/index.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,EACL,0BAA0B,EAC3B,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,gBACrB,KAAK,mBACD,KAAK,UAiBvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,aAAoB,MAAM,KAAG,OAAO,CAAC,KAAK,CAMtE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,WAC5B,0BAA0B,kBAmBnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,WAAkB,oBAAoB,kBAoB/D,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,WAAY,wBAAwB,SA8BhE,CAAC"}
|
package/lib/cache/index.js
CHANGED
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import path from "path";
|
|
11
11
|
import fs from "fs";
|
|
12
|
-
import { notExistsToCreateFile, readJsonFileSync } from "../utils.js";
|
|
12
|
+
import { intersection, notExistsToCreateFile, readJsonFileSync, } from "../utils.js";
|
|
13
13
|
/**
|
|
14
14
|
* 和翻译缓存json文件对比 返回存在更改的json文件
|
|
15
15
|
* @param {object} cacheObject 已经缓存的对象
|
|
@@ -67,6 +67,80 @@ export const registerLanguageCacheFile = (params) => __awaiter(void 0, void 0, v
|
|
|
67
67
|
/**
|
|
68
68
|
* 根据现有的源文件生成缓存
|
|
69
69
|
*/
|
|
70
|
-
export const generateCache = (params) => {
|
|
71
|
-
|
|
70
|
+
export const generateCache = (params) => __awaiter(void 0, void 0, void 0, function* () {
|
|
71
|
+
// 获取待翻译的源文件夹
|
|
72
|
+
// 读取文件夹下的所有文件
|
|
73
|
+
// 复制文件中的所有内容
|
|
74
|
+
// 遍历需要翻译的语言 生成缓存文件
|
|
75
|
+
const { sourceFolderPath, languages, exportFolderPath } = params;
|
|
76
|
+
if (!languages || !Array.isArray(languages) || languages.length === 0)
|
|
77
|
+
return;
|
|
78
|
+
const fileData = readAllFilesOfFolder(sourceFolderPath);
|
|
79
|
+
fileData.forEach(({ fileName, data }) => {
|
|
80
|
+
languages.forEach((language) => {
|
|
81
|
+
notExistsToCreateFile(path.resolve(exportFolderPath, language));
|
|
82
|
+
fs.writeFileSync(path.resolve(exportFolderPath, language, fileName), data, "utf-8");
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
/**
|
|
87
|
+
* 读取文件夹下的所有文件 并返回string类型的内容
|
|
88
|
+
* @param sourceFolderPath
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
const readAllFilesOfFolder = (sourceFolderPath) => {
|
|
92
|
+
try {
|
|
93
|
+
const sourceFiles = fs.readdirSync(sourceFolderPath);
|
|
94
|
+
return sourceFiles.map((fileName) => {
|
|
95
|
+
return readFile(sourceFolderPath, fileName);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
console.error("read folder error:", error);
|
|
100
|
+
return [];
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
const readFile = (sourceFolderPath, fileName) => {
|
|
104
|
+
const filePath = path.resolve(sourceFolderPath, fileName);
|
|
105
|
+
try {
|
|
106
|
+
const jsonData = fs.readFileSync(filePath, "utf-8");
|
|
107
|
+
return {
|
|
108
|
+
fileName,
|
|
109
|
+
filePath,
|
|
110
|
+
data: jsonData,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error("read file error:", error);
|
|
115
|
+
return {
|
|
116
|
+
fileName,
|
|
117
|
+
filePath,
|
|
118
|
+
data: "{}",
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* 批量删除指定语言的缓存信息
|
|
124
|
+
* @param params
|
|
125
|
+
*/
|
|
126
|
+
export const deleteBatchCache = (params) => {
|
|
127
|
+
const { keys, cacheFolderPath, languages, cacheFileName } = params;
|
|
128
|
+
let deleteLanguages = [];
|
|
129
|
+
const localLanguages = fs.readdirSync(cacheFolderPath);
|
|
130
|
+
if (!languages || !Array.isArray(languages) || languages.length === 0) {
|
|
131
|
+
deleteLanguages = localLanguages;
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
deleteLanguages = intersection(localLanguages, languages);
|
|
135
|
+
}
|
|
136
|
+
if (deleteLanguages.length === 0)
|
|
137
|
+
return;
|
|
138
|
+
deleteLanguages.forEach((language) => {
|
|
139
|
+
const jsonData = fs.readFileSync(path.resolve(cacheFolderPath, language, cacheFileName), "utf-8");
|
|
140
|
+
const data = JSON.parse(jsonData);
|
|
141
|
+
keys.forEach((key) => {
|
|
142
|
+
delete data[key];
|
|
143
|
+
});
|
|
144
|
+
fs.writeFileSync(path.resolve(cacheFolderPath, language, cacheFileName), JSON.stringify(data, null, 2), "utf-8");
|
|
145
|
+
});
|
|
72
146
|
};
|
package/lib/utils.d.ts
CHANGED
|
@@ -22,4 +22,5 @@ export declare const getRandomNumber: (min: number, max: number) => number;
|
|
|
22
22
|
export declare const isDirectoryPath: (path: string) => boolean;
|
|
23
23
|
export declare const readFileOfDirSync: (dirPath: string) => string[];
|
|
24
24
|
export declare function chunkArray<T extends object>(array: T[], chunkSize: number): T[][];
|
|
25
|
+
export declare function intersection<T>(arr1: T[], arr2: T[]): T[];
|
|
25
26
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,SAGjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAgB,MAAM,iBAUlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAS3D,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,OAAO,MAAM,WAEvD,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,YAG3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,aAKhD,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,SASzE"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,SAAU,MAAM,SAGjD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,SAAgB,MAAM,iBAUlD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,WAAY,qBAAqB,SAS3D,CAAC;AAEF,eAAO,MAAM,eAAe,QAAS,MAAM,OAAO,MAAM,WAEvD,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,MAAM,YAG3C,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,MAAM,aAKhD,CAAC;AAEF,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,SASzE;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAczD"}
|
package/lib/utils.js
CHANGED
|
@@ -73,3 +73,16 @@ export function chunkArray(array, chunkSize) {
|
|
|
73
73
|
}
|
|
74
74
|
return result;
|
|
75
75
|
}
|
|
76
|
+
export function intersection(arr1, arr2) {
|
|
77
|
+
const setA = new Set(arr1);
|
|
78
|
+
const setB = new Set(arr2);
|
|
79
|
+
// 创建一个新的 Set 来存储交集
|
|
80
|
+
let intersectionSet = new Set();
|
|
81
|
+
// 遍历较小的集合,检查每个元素是否在另一个集合中
|
|
82
|
+
for (let item of setA) {
|
|
83
|
+
if (setB.has(item)) {
|
|
84
|
+
intersectionSet.add(item);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return [...intersectionSet];
|
|
88
|
+
}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -29,6 +29,7 @@ import { logErrorToFile } from "./lib/log/index.js";
|
|
|
29
29
|
import { SUPPORT_LANGUAGE_MAP } from "./lib/support.js";
|
|
30
30
|
|
|
31
31
|
export { testCompletions } from "./test/index.js";
|
|
32
|
+
export { generateCache, deleteBatchCache } from "./lib/cache/index.js";
|
|
32
33
|
|
|
33
34
|
const DEFAULT_OPENAI_CONFIG: IOpenaiConfig = {
|
|
34
35
|
model: "gpt-4o",
|
package/src/lib/cache/index.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import fs from "fs";
|
|
3
|
-
import { notExistsToCreateFile, readJsonFileSync } from "../utils.js";
|
|
4
3
|
import {
|
|
4
|
+
intersection,
|
|
5
|
+
notExistsToCreateFile,
|
|
6
|
+
readJsonFileSync,
|
|
7
|
+
} from "../utils.js";
|
|
8
|
+
import {
|
|
9
|
+
IDeleteSingleCacheParams,
|
|
5
10
|
IGenerateCacheParams,
|
|
6
11
|
IJson,
|
|
7
12
|
IRegisterLanguageCacheFile,
|
|
@@ -76,6 +81,96 @@ export const registerLanguageCacheFile = async (
|
|
|
76
81
|
/**
|
|
77
82
|
* 根据现有的源文件生成缓存
|
|
78
83
|
*/
|
|
79
|
-
export const generateCache = (params: IGenerateCacheParams) => {
|
|
80
|
-
|
|
84
|
+
export const generateCache = async (params: IGenerateCacheParams) => {
|
|
85
|
+
// 获取待翻译的源文件夹
|
|
86
|
+
// 读取文件夹下的所有文件
|
|
87
|
+
// 复制文件中的所有内容
|
|
88
|
+
// 遍历需要翻译的语言 生成缓存文件
|
|
89
|
+
const { sourceFolderPath, languages, exportFolderPath } = params;
|
|
90
|
+
|
|
91
|
+
if (!languages || !Array.isArray(languages) || languages.length === 0) return;
|
|
92
|
+
|
|
93
|
+
const fileData = readAllFilesOfFolder(sourceFolderPath);
|
|
94
|
+
fileData.forEach(({ fileName, data }) => {
|
|
95
|
+
languages.forEach((language) => {
|
|
96
|
+
notExistsToCreateFile(path.resolve(exportFolderPath, language));
|
|
97
|
+
fs.writeFileSync(
|
|
98
|
+
path.resolve(exportFolderPath, language, fileName),
|
|
99
|
+
data,
|
|
100
|
+
"utf-8"
|
|
101
|
+
);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* 读取文件夹下的所有文件 并返回string类型的内容
|
|
107
|
+
* @param sourceFolderPath
|
|
108
|
+
* @returns
|
|
109
|
+
*/
|
|
110
|
+
const readAllFilesOfFolder = (sourceFolderPath: string) => {
|
|
111
|
+
try {
|
|
112
|
+
const sourceFiles = fs.readdirSync(sourceFolderPath);
|
|
113
|
+
return sourceFiles.map((fileName) => {
|
|
114
|
+
return readFile(sourceFolderPath, fileName);
|
|
115
|
+
});
|
|
116
|
+
} catch (error) {
|
|
117
|
+
console.error("read folder error:", error);
|
|
118
|
+
return [];
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
const readFile = (sourceFolderPath: string, fileName: string) => {
|
|
123
|
+
const filePath = path.resolve(sourceFolderPath, fileName);
|
|
124
|
+
|
|
125
|
+
try {
|
|
126
|
+
const jsonData = fs.readFileSync(filePath, "utf-8");
|
|
127
|
+
return {
|
|
128
|
+
fileName,
|
|
129
|
+
filePath,
|
|
130
|
+
data: jsonData,
|
|
131
|
+
};
|
|
132
|
+
} catch (error) {
|
|
133
|
+
console.error("read file error:", error);
|
|
134
|
+
|
|
135
|
+
return {
|
|
136
|
+
fileName,
|
|
137
|
+
filePath,
|
|
138
|
+
data: "{}",
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* 批量删除指定语言的缓存信息
|
|
144
|
+
* @param params
|
|
145
|
+
*/
|
|
146
|
+
export const deleteBatchCache = (params: IDeleteSingleCacheParams) => {
|
|
147
|
+
const { keys, cacheFolderPath, languages, cacheFileName } = params;
|
|
148
|
+
let deleteLanguages: string[] = [];
|
|
149
|
+
const localLanguages = fs.readdirSync(cacheFolderPath);
|
|
150
|
+
|
|
151
|
+
if (!languages || !Array.isArray(languages) || languages.length === 0) {
|
|
152
|
+
deleteLanguages = localLanguages;
|
|
153
|
+
} else {
|
|
154
|
+
deleteLanguages = intersection(localLanguages, languages);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (deleteLanguages.length === 0) return;
|
|
158
|
+
|
|
159
|
+
deleteLanguages.forEach((language) => {
|
|
160
|
+
const jsonData = fs.readFileSync(
|
|
161
|
+
path.resolve(cacheFolderPath, language, cacheFileName),
|
|
162
|
+
"utf-8"
|
|
163
|
+
);
|
|
164
|
+
const data = JSON.parse(jsonData);
|
|
165
|
+
|
|
166
|
+
keys.forEach((key) => {
|
|
167
|
+
delete data[key];
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
fs.writeFileSync(
|
|
171
|
+
path.resolve(cacheFolderPath, language, cacheFileName),
|
|
172
|
+
JSON.stringify(data, null, 2),
|
|
173
|
+
"utf-8"
|
|
174
|
+
);
|
|
175
|
+
});
|
|
81
176
|
};
|
package/src/lib/utils.ts
CHANGED
|
@@ -72,3 +72,19 @@ export function chunkArray<T extends object>(array: T[], chunkSize: number) {
|
|
|
72
72
|
}
|
|
73
73
|
return result;
|
|
74
74
|
}
|
|
75
|
+
|
|
76
|
+
export function intersection<T>(arr1: T[], arr2: T[]): T[] {
|
|
77
|
+
const setA = new Set(arr1);
|
|
78
|
+
const setB = new Set(arr2);
|
|
79
|
+
// 创建一个新的 Set 来存储交集
|
|
80
|
+
let intersectionSet = new Set<T>();
|
|
81
|
+
|
|
82
|
+
// 遍历较小的集合,检查每个元素是否在另一个集合中
|
|
83
|
+
for (let item of setA) {
|
|
84
|
+
if (setB.has(item)) {
|
|
85
|
+
intersectionSet.add(item);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
return [...intersectionSet];
|
|
90
|
+
}
|
package/src/types/index.ts
CHANGED
|
@@ -122,5 +122,15 @@ export interface ITestParams {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
export interface IGenerateCacheParams {
|
|
125
|
+
sourceFolderPath: string;
|
|
126
|
+
languages: SupportLanguageType[];
|
|
127
|
+
exportFolderPath: string;
|
|
128
|
+
}
|
|
125
129
|
|
|
130
|
+
export interface IDeleteSingleCacheParams {
|
|
131
|
+
keys: string[];
|
|
132
|
+
cacheFolderPath: string;
|
|
133
|
+
cacheFileName: string;
|
|
134
|
+
/** 不传默认删除所有 */
|
|
135
|
+
languages?: SupportLanguageType[];
|
|
126
136
|
}
|
package/test.mjs
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import { deleteBatchCache, generateCache } from "./index.js";
|
|
3
|
+
|
|
4
|
+
// deleteBatchCache({
|
|
5
|
+
// keys: ["10001", "10002"],
|
|
6
|
+
// cacheFolderPath: path.resolve("./src/cache"),
|
|
7
|
+
// cacheFileName: "common.json",
|
|
8
|
+
// languages: [],
|
|
9
|
+
// });
|
|
10
|
+
|
|
11
|
+
// generateCache({
|
|
12
|
+
// sourceFolderPath: path.resolve("./src/langs/en"),
|
|
13
|
+
// exportFolderPath: path.resolve("./src/cache"),
|
|
14
|
+
// languages: ["ja", "ar", "bn", "de", "id"],
|
|
15
|
+
// });
|
package/types/index.d.ts
CHANGED
|
@@ -79,5 +79,15 @@ export interface ITestParams {
|
|
|
79
79
|
question: string;
|
|
80
80
|
}
|
|
81
81
|
export interface IGenerateCacheParams {
|
|
82
|
+
sourceFolderPath: string;
|
|
83
|
+
languages: SupportLanguageType[];
|
|
84
|
+
exportFolderPath: string;
|
|
85
|
+
}
|
|
86
|
+
export interface IDeleteSingleCacheParams {
|
|
87
|
+
keys: string[];
|
|
88
|
+
cacheFolderPath: string;
|
|
89
|
+
cacheFileName: string;
|
|
90
|
+
/** 不传默认删除所有 */
|
|
91
|
+
languages?: SupportLanguageType[];
|
|
82
92
|
}
|
|
83
93
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/types/index.ts"],"names":[],"mappings":"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"}
|