datafolder 1.0.12 → 1.0.14
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 +14 -2
- package/package.json +1 -1
- package/scripts/airbnb.js +1 -1
- package/scripts/airbnb2.js +1 -1
- package/scripts/flights.js +2 -2
- package/scripts/flights2.js +2 -2
- package/src/QyBatch.d.ts +13 -6
- package/src/QyBatch.js +209 -126
- package/src/QyCache.d.ts +6 -3
- package/src/QyCache.js +86 -68
- package/src/QyDB.d.ts +3 -0
- package/src/QyDB.js +36 -21
- package/src/QyDefaultOptions.js +0 -3
- package/src/QyDir.d.ts +1 -0
- package/src/QyDir.js +49 -20
- package/src/QyExpire.d.ts +9 -15
- package/src/QyExpire.js +60 -68
- package/src/QyExpireInfo.d.ts +10 -0
- package/src/QyExpireInfo.js +92 -0
- package/src/QyExpire_Worker.d.ts +13 -14
- package/src/QyExpire_Worker.js +74 -89
- package/src/QyFile.d.ts +1 -1
- package/src/QyFile.js +58 -43
- package/src/QyFileContentUtils.d.ts +1 -0
- package/src/QyFileContentUtils.js +107 -93
- package/src/QyItem.d.ts +6 -0
- package/src/QyItem.js +25 -7
- package/src/QyKVData.d.ts +3 -1
- package/src/QyKVData.js +70 -63
- package/src/QyUtils.d.ts +3 -1
- package/src/QyUtils.js +41 -34
- package/src/rpc/evalCode.js +7 -9
- package/src/rpc/getFileContent.js +13 -16
- package/src/rpc/getRpcFiles.js +3 -1
- package/src/rpc/getSubItems.js +17 -16
- package/src/rpc/getTriggerFiles.js +3 -1
- package/src/rpc/queryFiles.js +4 -10
- package/src/rpc/reloadRpc.js +1 -1
- package/static/codemirror.bundle/editor.bundle.js +6 -1
- package/src/QyExpireClock.d.ts +0 -15
- package/src/QyExpireClock.js +0 -53
package/README.md
CHANGED
|
@@ -4,6 +4,10 @@ datafolder is a lightning fluid JSON database for high speed SSDs, featuring an
|
|
|
4
4
|
|
|
5
5
|
### Changelog
|
|
6
6
|
|
|
7
|
+
1.0.14 Expire supports specifying milliseconds.
|
|
8
|
+
|
|
9
|
+
1.0.13 Added expire support to delete a dir in a specific future time.
|
|
10
|
+
|
|
7
11
|
1.0.12 Added expire support to expire a file or some properties of the JSON data in future.
|
|
8
12
|
|
|
9
13
|
1.0.11 Added [SKILL.md](https://github.com/datafolderdev/datafolder/blob/main/SKILL.md) for feeding to AI
|
|
@@ -167,10 +171,18 @@ onPromptScoreChanged({ promptId: "student1", feedbackScore: { oldValue: 80, newV
|
|
|
167
171
|
### 5. Expire Support
|
|
168
172
|
|
|
169
173
|
```javascript
|
|
170
|
-
dataFolder.
|
|
174
|
+
dataFolder.expireDir("aitrainingdata/tmp", "2026-06-10T01:22:38.517Z");
|
|
175
|
+
dataFolder.expireFile("aitrainingdata/tmp/prompt", 3600);
|
|
171
176
|
dataFolder.expireContent("users/login", { sessionId: 300, token: 3600 });
|
|
172
177
|
|
|
173
|
-
|
|
178
|
+
// millisecond APIs (adding M at the end)
|
|
179
|
+
|
|
180
|
+
dataFolder.expireDirM("aitrainingdata/tmp", 1236); // expire after 1236 milliseconds
|
|
181
|
+
dataFolder.expireFileM("aitrainingdata/tmp/prompt", 1236); // expire after 1236 milliseconds
|
|
182
|
+
dataFolder.expireContentM("users/login", { sessionId: 300, token: 3600 }); // 300 and 3600 milliseconds
|
|
183
|
+
|
|
184
|
+
dataFolder.removeDirExpire("aitrainingdata/tmp");
|
|
185
|
+
dataFolder.removeFileExpire("aitrainingdata/tmp/prompt");
|
|
174
186
|
dataFolder.removeContentExpire("users/login", { sessionId: 1, token: 1 });
|
|
175
187
|
```
|
|
176
188
|
|
package/package.json
CHANGED
package/scripts/airbnb.js
CHANGED
|
@@ -17,7 +17,7 @@ async function insertData() {
|
|
|
17
17
|
const fileHandle = await open(airbnbJsonFilePath, "r");
|
|
18
18
|
for await (const line of fileHandle.readLines()) {
|
|
19
19
|
const oneItem = convert(JSON.parse(line));
|
|
20
|
-
batch.insert(["airbnb1", oneItem._id], oneItem);
|
|
20
|
+
batch.insert(["airbnb1", oneItem._id], oneItem, true);
|
|
21
21
|
}
|
|
22
22
|
batch.run();
|
|
23
23
|
console.timeEnd("insertData");
|
package/scripts/airbnb2.js
CHANGED
|
@@ -18,7 +18,7 @@ async function insertData() {
|
|
|
18
18
|
for await (const line of fileHandle.readLines()) {
|
|
19
19
|
const oneItem = convert(JSON.parse(line));
|
|
20
20
|
const { property_type, room_type, bed_type, _id } = oneItem;
|
|
21
|
-
batch.insert(["airbnb", property_type, room_type, bed_type, _id], oneItem);
|
|
21
|
+
batch.insert(["airbnb", property_type, room_type, bed_type, _id], oneItem, true);
|
|
22
22
|
}
|
|
23
23
|
batch.run();
|
|
24
24
|
console.timeEnd("insertData");
|
package/scripts/flights.js
CHANGED
|
@@ -17,7 +17,7 @@ function insertAirports() {
|
|
|
17
17
|
console.time("insertAirports");
|
|
18
18
|
const { batch } = qyDB;
|
|
19
19
|
for (const record of data) {
|
|
20
|
-
batch.insert(`airports/${record._key}`, record);
|
|
20
|
+
batch.insert(`airports/${record._key}`, record, true);
|
|
21
21
|
}
|
|
22
22
|
batch.run();
|
|
23
23
|
console.timeEnd("insertAirports");
|
|
@@ -30,7 +30,7 @@ function insertFlights() {
|
|
|
30
30
|
const record = data[i];
|
|
31
31
|
// const filePath = `flights/${record._from}/${record._to}/${i}`;
|
|
32
32
|
const filePath = `flights/${i}`;
|
|
33
|
-
batch.insert(filePath, record);
|
|
33
|
+
batch.insert(filePath, record, true);
|
|
34
34
|
}
|
|
35
35
|
batch.run();
|
|
36
36
|
console.timeEnd("insertFlights");
|
package/scripts/flights2.js
CHANGED
|
@@ -19,7 +19,7 @@ function insertAirports() {
|
|
|
19
19
|
const { batch } = qyDB;
|
|
20
20
|
for (const record of data) {
|
|
21
21
|
const { country, state, city } = record;
|
|
22
|
-
batch.insert(`airports/${country}/${state}/${city}/${record._key}`, record);
|
|
22
|
+
batch.insert(`airports/${country}/${state}/${city}/${record._key}`, record, true);
|
|
23
23
|
}
|
|
24
24
|
batch.run();
|
|
25
25
|
console.timeEnd("insertAirports");
|
|
@@ -32,7 +32,7 @@ function insertFlights() {
|
|
|
32
32
|
for (let i = 0; i < data.length; ++i) {
|
|
33
33
|
const record = data[i];
|
|
34
34
|
const { Year, Month, Day } = record;
|
|
35
|
-
batch.insert(`flights/${Year}/${Month}/${Day}/${i}`, record);
|
|
35
|
+
batch.insert(`flights/${Year}/${Month}/${Day}/${i}`, record, true);
|
|
36
36
|
// batch.insertP(["flights", Year, Month, Day, i], record);
|
|
37
37
|
}
|
|
38
38
|
batch.run();
|
package/src/QyBatch.d.ts
CHANGED
|
@@ -13,15 +13,20 @@ export declare class QyBatch extends QyCD {
|
|
|
13
13
|
delDir(namePath: any, parentDir?: any): any;
|
|
14
14
|
createFile(namePath: any, parentDir?: any): any;
|
|
15
15
|
delFile(namePath: any, parentDir?: any): any;
|
|
16
|
-
expireFile(namePath: any,
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
expireFile(namePath: any, expireSecond: number, parentDir?: any): any;
|
|
17
|
+
expireFileM(namePath: any, milliSecond: number, parentDir?: any): any;
|
|
18
|
+
expireDir(namePath: any, expireSecond: number, parentDir?: any): any;
|
|
19
|
+
expireDirM(namePath: any, milliSecond: number, parentDir?: any): any;
|
|
20
|
+
expireContent(namePath: any, expireInfoObj: any, isMilliSecond: any, parentDir?: any): any;
|
|
21
|
+
expireContentM(namePath: any, expireInfoObj: any, parentDir?: any): any;
|
|
22
|
+
removeFileExpire(namePath: any, infoFileOnly?: any, parentDir?: any): any;
|
|
23
|
+
removeDirExpire(namePath: any, infoFileOnly?: any, parentDir?: any): any;
|
|
19
24
|
removeContentExpire(namePath: any, expireInfoObj: any, infoFileOnly?: any, parentDir?: any): any;
|
|
20
25
|
createIndex(indexHostDirNamePath: any, indexPropPathList: any, parentDir?: any): any;
|
|
21
26
|
delIndex(indexHostDirNamePath: any, indexPropPath: any, parentDir?: any): any;
|
|
22
|
-
insert(namePath: any, content: any, noClone?: boolean, parentDir?: any): any;
|
|
27
|
+
insert(namePath: any, content: any, noClone?: boolean, noCreate?: boolean, parentDir?: any): any;
|
|
23
28
|
remove(namePath: any, content: any, parentDir?: any): any;
|
|
24
|
-
|
|
29
|
+
put(namePath: any, content: any, noClone?: boolean, parentDir?: any): any;
|
|
25
30
|
delContent(namePath: any, parentDir?: any): any;
|
|
26
31
|
insertTrigger(triggerName: any, fileNamePath: any, propNamePathList: any, modCode: any): any;
|
|
27
32
|
removeTrigger(triggerName: any): any;
|
|
@@ -41,6 +46,8 @@ export declare class QyBatch extends QyCD {
|
|
|
41
46
|
_action_insert(action: any): boolean;
|
|
42
47
|
_action_createFile(action: any): boolean;
|
|
43
48
|
_action_createDir(action: any): boolean;
|
|
49
|
+
_action_expireItem(action: any): boolean;
|
|
50
|
+
_action_removeItemExpire(action: any): boolean;
|
|
44
51
|
_action_expireContent(action: any): boolean;
|
|
45
|
-
_action_removeContentExpire(action: any): boolean
|
|
52
|
+
_action_removeContentExpire(action: any): boolean;
|
|
46
53
|
}
|