@less-is-more/less-js 1.5.0-3 → 1.5.0-5
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/package.json +1 -1
- package/src/cache.js +10 -3
- package/src/nas.js +9 -2
- package/test/test-nas.js +14 -0
package/package.json
CHANGED
package/src/cache.js
CHANGED
|
@@ -43,7 +43,14 @@ module.exports = class Cache {
|
|
|
43
43
|
* @param {boolean} useNas 是否使用Nas缓存
|
|
44
44
|
* @returns 优先返回对象
|
|
45
45
|
*/
|
|
46
|
-
static async auto(
|
|
46
|
+
static async auto(
|
|
47
|
+
keyPrefix,
|
|
48
|
+
timeSecond,
|
|
49
|
+
args,
|
|
50
|
+
fn,
|
|
51
|
+
zip = false,
|
|
52
|
+
useNas = false
|
|
53
|
+
) {
|
|
47
54
|
let fullKey = keyPrefix;
|
|
48
55
|
for (let i = 0; i < args.length; i++) {
|
|
49
56
|
fullKey += ":" + args[i].toString();
|
|
@@ -97,9 +104,9 @@ module.exports = class Cache {
|
|
|
97
104
|
console.log("Found cache" + (hasLocal ? " local" : ""), fullKey);
|
|
98
105
|
savedData = Cache._unzip(savedData);
|
|
99
106
|
// 优先转成json
|
|
100
|
-
|
|
107
|
+
try {
|
|
101
108
|
return JSON.parse(savedData);
|
|
102
|
-
}
|
|
109
|
+
} catch (e) {
|
|
103
110
|
return savedData;
|
|
104
111
|
}
|
|
105
112
|
}
|
package/src/nas.js
CHANGED
|
@@ -101,7 +101,13 @@ class Nas {
|
|
|
101
101
|
if (!isNaN(expireTime)) {
|
|
102
102
|
if (expireTime === -1 || Date.now() < expireTime) {
|
|
103
103
|
// 文件未过期,返回值
|
|
104
|
-
|
|
104
|
+
let valueStr = Buffer.from(value, "base64").toString("utf8");
|
|
105
|
+
try {
|
|
106
|
+
return JSON.parse(valueStr);
|
|
107
|
+
} catch (e) {
|
|
108
|
+
// 如果解析JSON失败,则返回原始字符串
|
|
109
|
+
return valueStr;
|
|
110
|
+
}
|
|
105
111
|
} else {
|
|
106
112
|
// 文件已过期,删除文件
|
|
107
113
|
Nas._deleteCacheFile(key);
|
|
@@ -124,7 +130,8 @@ class Nas {
|
|
|
124
130
|
*/
|
|
125
131
|
static _saveToDisk(key, value, expireTime) {
|
|
126
132
|
// 将值转换为字符串,如果是对象则转换为JSON字符串
|
|
127
|
-
const
|
|
133
|
+
const valueStr = typeof value === "object" ? JSON.stringify(value) : value;
|
|
134
|
+
const content = Buffer.from(valueStr, "utf8").toString("base64");
|
|
128
135
|
const filePath = Nas._getFilePath(key);
|
|
129
136
|
|
|
130
137
|
try {
|
package/test/test-nas.js
CHANGED
|
@@ -8,6 +8,20 @@ describe("Nas Class Tests", function () {
|
|
|
8
8
|
assert.equal(value, "testValue");
|
|
9
9
|
});
|
|
10
10
|
|
|
11
|
+
it("should set and get a string object", function () {
|
|
12
|
+
const target = [
|
|
13
|
+
{
|
|
14
|
+
id: 128910,
|
|
15
|
+
supplierCode: "9c6d1ab7ff7a440eba1516b164c06632",
|
|
16
|
+
status: 1,
|
|
17
|
+
city: "",
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
Nas.set("testObject", target);
|
|
21
|
+
const value = Nas.get("testObject");
|
|
22
|
+
assert.deepStrictEqual(value, target);
|
|
23
|
+
});
|
|
24
|
+
|
|
11
25
|
it("should handle expiration correctly", function (done) {
|
|
12
26
|
Nas.set("expiringKey", "expiringValue", 1); // 1秒后过期
|
|
13
27
|
|