fast-cocos 1.0.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/copy-assets.json +8 -0
- package/dist/audio/src/audio.js +71 -0
- package/dist/audio/src/index.js +37 -0
- package/dist/bmfont/src/BMFont.js +111 -0
- package/dist/bmfont/src/index.js +33 -0
- package/dist/index.js +59 -0
- package/dist/json/src/JSON.js +111 -0
- package/dist/json/src/index.js +33 -0
- package/dist/logger.js +45 -0
- package/dist/robot/src/Robot.js +119 -0
- package/dist/robot/src/index.js +40 -0
- package/dist/utils.js +226 -0
- package/dist/xlsx/src/XlsxParser.js +580 -0
- package/dist/xlsx/src/define.js +2 -0
- package/dist/xlsx/src/index.js +50 -0
- package/dist/xlsx/template/xlsx.txt +97 -0
- package/dist/xxteakey/src/index.js +56 -0
- package/package.json +55 -0
- package/scripts/copy-assets.js +56 -0
package/dist/utils.js
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.utils = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const logger_1 = __importDefault(require("./logger"));
|
|
10
|
+
var utils;
|
|
11
|
+
(function (utils) {
|
|
12
|
+
/**
|
|
13
|
+
* 创建目录
|
|
14
|
+
* @param {string} dir 目录
|
|
15
|
+
* */
|
|
16
|
+
function mkdir(dir) {
|
|
17
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
18
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
utils.mkdir = mkdir;
|
|
22
|
+
/**
|
|
23
|
+
* 删除目录
|
|
24
|
+
* @param {string} dir 目录
|
|
25
|
+
* */
|
|
26
|
+
function rmdir(dir) {
|
|
27
|
+
if (fs_1.default.existsSync(dir)) {
|
|
28
|
+
fs_1.default.rmSync(dir, { recursive: true });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
utils.rmdir = rmdir;
|
|
32
|
+
/**
|
|
33
|
+
* 获取所有子目录
|
|
34
|
+
* @param {string} dir 目录
|
|
35
|
+
*/
|
|
36
|
+
function getSubDirsSync(dir) {
|
|
37
|
+
const subDirs = [];
|
|
38
|
+
const files = fs_1.default.readdirSync(dir);
|
|
39
|
+
files.forEach((file) => {
|
|
40
|
+
const filePath = path_1.default.join(dir, file);
|
|
41
|
+
const fileStat = fs_1.default.statSync(filePath);
|
|
42
|
+
if (fileStat.isDirectory()) {
|
|
43
|
+
subDirs.push(filePath);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return subDirs;
|
|
47
|
+
}
|
|
48
|
+
utils.getSubDirsSync = getSubDirsSync;
|
|
49
|
+
/**
|
|
50
|
+
* 指定目录中是否包含指定文件扩展名
|
|
51
|
+
* @param {string} dir 路径
|
|
52
|
+
* @param {string} ext 文件扩展名,如 ".png"
|
|
53
|
+
*/
|
|
54
|
+
function containsFileExt(dir, ext) {
|
|
55
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
56
|
+
return false;
|
|
57
|
+
}
|
|
58
|
+
return fs_1.default.readdirSync(dir).some((file) => path_1.default.extname(file) === ext);
|
|
59
|
+
}
|
|
60
|
+
utils.containsFileExt = containsFileExt;
|
|
61
|
+
/**
|
|
62
|
+
* 获取文件大小
|
|
63
|
+
* @param {string} filePath 文件路径
|
|
64
|
+
*/
|
|
65
|
+
function getFileSize(filePath) {
|
|
66
|
+
const stats = fs_1.default.statSync(filePath);
|
|
67
|
+
if (stats.isDirectory()) {
|
|
68
|
+
return {
|
|
69
|
+
bytes: 0,
|
|
70
|
+
kilobytes: 0,
|
|
71
|
+
megabytes: 0
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const bytes = stats.size;
|
|
75
|
+
const kilobytes = bytes / 1024;
|
|
76
|
+
const megabytes = kilobytes / 1024;
|
|
77
|
+
return {
|
|
78
|
+
bytes,
|
|
79
|
+
kilobytes,
|
|
80
|
+
megabytes
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
utils.getFileSize = getFileSize;
|
|
84
|
+
/**
|
|
85
|
+
* 遍历目录获得指定扩展名的文件
|
|
86
|
+
* @param dir 目录
|
|
87
|
+
* @param exts 扩展名
|
|
88
|
+
* @param files 文件列表
|
|
89
|
+
*/
|
|
90
|
+
function findFiles(dir, exts, files = []) {
|
|
91
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
dir = dir.trim();
|
|
95
|
+
if (!Array.isArray(exts)) {
|
|
96
|
+
exts = [exts];
|
|
97
|
+
}
|
|
98
|
+
const fileList = fs_1.default.readdirSync(dir);
|
|
99
|
+
fileList.forEach((file) => {
|
|
100
|
+
const filePath = path_1.default.join(dir, file);
|
|
101
|
+
const fileStat = fs_1.default.statSync(filePath);
|
|
102
|
+
if (fileStat.isFile() && endsWithAny(file, exts)) {
|
|
103
|
+
files.push(filePath);
|
|
104
|
+
}
|
|
105
|
+
else if (fileStat.isDirectory()) {
|
|
106
|
+
findFiles(filePath, exts, files);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return files;
|
|
110
|
+
}
|
|
111
|
+
utils.findFiles = findFiles;
|
|
112
|
+
/**
|
|
113
|
+
* 判断一个字符串是否以一个数组中任意一个字符串结尾
|
|
114
|
+
* @param str 字符串
|
|
115
|
+
* @param suffixes 后缀数组
|
|
116
|
+
*/
|
|
117
|
+
function endsWithAny(str, suffixes) {
|
|
118
|
+
for (const suffix of suffixes) {
|
|
119
|
+
if (str.endsWith(suffix)) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return false;
|
|
124
|
+
}
|
|
125
|
+
utils.endsWithAny = endsWithAny;
|
|
126
|
+
/**
|
|
127
|
+
* 同步写文件
|
|
128
|
+
* @param filePath 文件路径
|
|
129
|
+
* @param content 文件内容
|
|
130
|
+
*/
|
|
131
|
+
function writeFileSync(filePath, content) {
|
|
132
|
+
const dir = path_1.default.dirname(filePath);
|
|
133
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
134
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
135
|
+
}
|
|
136
|
+
fs_1.default.writeFileSync(filePath, content);
|
|
137
|
+
logger_1.default.log(`写文件: ${filePath}`);
|
|
138
|
+
}
|
|
139
|
+
utils.writeFileSync = writeFileSync;
|
|
140
|
+
/**
|
|
141
|
+
* 读取json文件
|
|
142
|
+
* @param filePath 文件路径
|
|
143
|
+
* @returns 文件内容
|
|
144
|
+
*/
|
|
145
|
+
function readJson(filePath) {
|
|
146
|
+
if (!fs_1.default.existsSync(filePath)) {
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
const content = fs_1.default.readFileSync(filePath, { encoding: "utf-8" });
|
|
150
|
+
return JSON.parse(content);
|
|
151
|
+
}
|
|
152
|
+
utils.readJson = readJson;
|
|
153
|
+
/**
|
|
154
|
+
* 写入json文件
|
|
155
|
+
* @param filePath 文件路径
|
|
156
|
+
* @param content 文件内容
|
|
157
|
+
*/
|
|
158
|
+
function writeJson(filePath, content) {
|
|
159
|
+
const dir = path_1.default.dirname(filePath);
|
|
160
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
161
|
+
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
162
|
+
}
|
|
163
|
+
if (typeof content != "string") {
|
|
164
|
+
content = JSON.stringify(content, null, 4);
|
|
165
|
+
}
|
|
166
|
+
fs_1.default.writeFileSync(filePath, content, { encoding: "utf-8" });
|
|
167
|
+
}
|
|
168
|
+
utils.writeJson = writeJson;
|
|
169
|
+
/**
|
|
170
|
+
* 同步复制文件
|
|
171
|
+
* @param src 源文件路径
|
|
172
|
+
* @param dst 目标文件路径
|
|
173
|
+
*/
|
|
174
|
+
function copyFileSync(src, dst) {
|
|
175
|
+
const dstDir = path_1.default.dirname(dst);
|
|
176
|
+
if (!fs_1.default.existsSync(dstDir)) {
|
|
177
|
+
fs_1.default.mkdirSync(dstDir, { recursive: true });
|
|
178
|
+
}
|
|
179
|
+
fs_1.default.copyFileSync(src, dst);
|
|
180
|
+
logger_1.default.log(`拷贝文件: ${src} -> ${dst}`);
|
|
181
|
+
}
|
|
182
|
+
utils.copyFileSync = copyFileSync;
|
|
183
|
+
/**
|
|
184
|
+
* 同步删除指定目录下的所有文件(不递归)
|
|
185
|
+
* @param dir 目录路径
|
|
186
|
+
* @param ext 文件扩展名
|
|
187
|
+
* @param notFiles 不删除的文件列表
|
|
188
|
+
*/
|
|
189
|
+
function rmSync(dir, ext = "", notFiles = []) {
|
|
190
|
+
try {
|
|
191
|
+
if (!fs_1.default.existsSync(dir)) {
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// 获取文件的状态
|
|
195
|
+
const stats = fs_1.default.statSync(dir); // 同步获取文件/目录的状态
|
|
196
|
+
if (stats.isFile() && !notFiles.includes(dir)) {
|
|
197
|
+
// 如果是文件,删除文件
|
|
198
|
+
if (dir.endsWith(ext)) {
|
|
199
|
+
fs_1.default.unlinkSync(dir); // 同步删除文件
|
|
200
|
+
logger_1.default.warn(`删除文件: ${dir}`);
|
|
201
|
+
}
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const files = fs_1.default.readdirSync(dir); // 同步读取目录内容
|
|
205
|
+
files.forEach((file) => {
|
|
206
|
+
const filePath = path_1.default.join(dir, file);
|
|
207
|
+
// 获取文件的状态
|
|
208
|
+
const stats = fs_1.default.statSync(filePath); // 同步获取文件/目录的状态
|
|
209
|
+
if (stats.isFile() && !notFiles.includes(filePath)) {
|
|
210
|
+
// 如果是文件,删除文件
|
|
211
|
+
if (filePath.endsWith(ext)) {
|
|
212
|
+
fs_1.default.unlinkSync(filePath); // 同步删除文件
|
|
213
|
+
logger_1.default.warn(`删除文件: ${filePath}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
// logger.log(`跳过目录: ${filePath}`);
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
logger_1.default.error(`操作失败: ${err}`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
utils.rmSync = rmSync;
|
|
226
|
+
})(utils || (exports.utils = utils = {}));
|