verteilen-core 1.4.6 → 1.4.7
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/server/io.d.ts +9 -9
- package/dist/server/io.js +15 -12
- package/dist/server/io2.d.ts +1 -34
- package/dist/server/io2.js +47 -41
- package/dist/server/server.js +9 -9
- package/dist/server/server2.d.ts +0 -4
- package/dist/server/server2.js +0 -19
- package/package.json +1 -1
- package/src/server/io.ts +13 -8
- package/src/server/io2.ts +24 -62
- package/src/server/server.ts +10 -10
- package/src/server/server2.ts +0 -24
package/dist/server/io.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Project,
|
|
1
|
+
import { Project, Database, UserProfile, Library, ExecutionLog, Node, Task, Job } from "../interface";
|
|
2
2
|
export interface MemoryData {
|
|
3
3
|
projects: Array<Project>;
|
|
4
4
|
tasks: Array<Task>;
|
|
@@ -10,12 +10,13 @@ export interface MemoryData {
|
|
|
10
10
|
user: Array<UserProfile>;
|
|
11
11
|
}
|
|
12
12
|
export interface RecordIOLoader {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
fetch_all: () => Promise<Array<string>>;
|
|
14
|
+
load_all: (token?: string) => Promise<Array<string>>;
|
|
15
|
+
delete_all: (token?: string) => Promise<Array<string>>;
|
|
16
|
+
list_all: (token?: string) => Promise<Array<string>>;
|
|
17
|
+
save: (uuid: string, data: string, token?: string) => Promise<boolean>;
|
|
18
|
+
load: (uuid: string, token?: string) => Promise<string>;
|
|
19
|
+
delete: (uuid: string, token?: string) => Promise<boolean>;
|
|
19
20
|
}
|
|
20
21
|
export interface RecordIOBase {
|
|
21
22
|
root: string;
|
|
@@ -40,5 +41,4 @@ export interface RecordLoader {
|
|
|
40
41
|
lib: RecordIOLoader;
|
|
41
42
|
user: RecordIOLoader;
|
|
42
43
|
}
|
|
43
|
-
export declare const
|
|
44
|
-
export declare const CreateRecordMemoryLoader: (loader: MemoryData) => RecordLoader;
|
|
44
|
+
export declare const CreateRecordMemoryLoader_Browser: (loader: MemoryData) => RecordLoader;
|
package/dist/server/io.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CreateRecordMemoryLoader_Browser = void 0;
|
|
4
4
|
const interface_1 = require("../interface");
|
|
5
5
|
const _CreateRecordMemoryLoader = (loader, type) => {
|
|
6
6
|
const get_array = (type) => {
|
|
@@ -17,6 +17,10 @@ const _CreateRecordMemoryLoader = (loader, type) => {
|
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
return {
|
|
20
|
+
fetch_all: async () => {
|
|
21
|
+
const arr = get_array(type);
|
|
22
|
+
return arr.map(x => JSON.stringify(x));
|
|
23
|
+
},
|
|
20
24
|
load_all: async () => {
|
|
21
25
|
const arr = get_array(type);
|
|
22
26
|
return arr.map(x => JSON.stringify(x));
|
|
@@ -55,17 +59,16 @@ const _CreateRecordMemoryLoader = (loader, type) => {
|
|
|
55
59
|
}
|
|
56
60
|
};
|
|
57
61
|
};
|
|
58
|
-
|
|
59
|
-
const CreateRecordMemoryLoader = (loader) => {
|
|
62
|
+
const CreateRecordMemoryLoader_Browser = (loader) => {
|
|
60
63
|
return {
|
|
61
|
-
project:
|
|
62
|
-
task:
|
|
63
|
-
job:
|
|
64
|
-
database:
|
|
65
|
-
node:
|
|
66
|
-
log:
|
|
67
|
-
lib:
|
|
68
|
-
user:
|
|
64
|
+
project: _CreateRecordMemoryLoader(loader, interface_1.RecordType.PROJECT),
|
|
65
|
+
task: _CreateRecordMemoryLoader(loader, interface_1.RecordType.TASK),
|
|
66
|
+
job: _CreateRecordMemoryLoader(loader, interface_1.RecordType.JOB),
|
|
67
|
+
database: _CreateRecordMemoryLoader(loader, interface_1.RecordType.DATABASE),
|
|
68
|
+
node: _CreateRecordMemoryLoader(loader, interface_1.RecordType.NODE),
|
|
69
|
+
log: _CreateRecordMemoryLoader(loader, interface_1.RecordType.LOG),
|
|
70
|
+
lib: _CreateRecordMemoryLoader(loader, interface_1.RecordType.LIB),
|
|
71
|
+
user: _CreateRecordMemoryLoader(loader, interface_1.RecordType.USER),
|
|
69
72
|
};
|
|
70
73
|
};
|
|
71
|
-
exports.
|
|
74
|
+
exports.CreateRecordMemoryLoader_Browser = CreateRecordMemoryLoader_Browser;
|
package/dist/server/io2.d.ts
CHANGED
|
@@ -1,37 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Project, RecordType, Database, UserProfile, Library, ExecutionLog, Node, Task, Job } from "../interface";
|
|
3
|
-
import { RecordIOBase } from "./io";
|
|
4
|
-
export interface MemoryData {
|
|
5
|
-
projects: Array<Project>;
|
|
6
|
-
tasks: Array<Task>;
|
|
7
|
-
jobs: Array<Job>;
|
|
8
|
-
database: Array<Database>;
|
|
9
|
-
nodes: Array<Node>;
|
|
10
|
-
logs: Array<ExecutionLog>;
|
|
11
|
-
libs: Array<Library>;
|
|
12
|
-
user: Array<UserProfile>;
|
|
13
|
-
}
|
|
14
|
-
export interface RecordIOLoader {
|
|
15
|
-
load_all: (cache: boolean, token?: string) => Promise<Array<string>>;
|
|
16
|
-
delete_all: (token?: string) => Promise<Array<string>>;
|
|
17
|
-
list_all: (token?: string) => Promise<Array<string>>;
|
|
18
|
-
save: (uuid: string, data: string, token?: string) => Promise<boolean>;
|
|
19
|
-
load: (uuid: string, token?: string) => Promise<string>;
|
|
20
|
-
delete: (uuid: string, token?: string) => Promise<boolean>;
|
|
21
|
-
}
|
|
22
|
-
export interface RecordLoader {
|
|
23
|
-
project: RecordIOLoader;
|
|
24
|
-
task: RecordIOLoader;
|
|
25
|
-
job: RecordIOLoader;
|
|
26
|
-
database: RecordIOLoader;
|
|
27
|
-
node: RecordIOLoader;
|
|
28
|
-
log: RecordIOLoader;
|
|
29
|
-
lib: RecordIOLoader;
|
|
30
|
-
user: RecordIOLoader;
|
|
31
|
-
}
|
|
32
|
-
export declare const _CreateRecordMemoryLoader: (loader: MemoryData, type: RecordType) => RecordIOLoader;
|
|
33
|
-
export declare const _CreateRecordIOLoader: (loader: RecordIOBase, memory: MemoryData, type: RecordType, folder: string, ext?: string) => RecordIOLoader;
|
|
34
|
-
export declare const _CreateRecordMongoLoader: (loader: MongoClient, memory: MemoryData, type: RecordType, db: string, collection: string) => RecordIOLoader;
|
|
1
|
+
import { MemoryData, RecordIOBase, RecordLoader } from "./io";
|
|
35
2
|
export declare const CreateRecordMemoryLoader: (loader: MemoryData) => RecordLoader;
|
|
36
3
|
export declare const CreateRecordIOLoader: (loader: RecordIOBase, memory: MemoryData) => RecordLoader;
|
|
37
4
|
export declare const CreateRecordMongoLoader: (url: string, memory: MemoryData) => RecordLoader;
|
package/dist/server/io2.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.CreateRecordMongoLoader = exports.CreateRecordIOLoader = exports.CreateRecordMemoryLoader =
|
|
6
|
+
exports.CreateRecordMongoLoader = exports.CreateRecordIOLoader = exports.CreateRecordMemoryLoader = void 0;
|
|
7
7
|
const mongodb_1 = require("mongodb");
|
|
8
8
|
const interface_1 = require("../interface");
|
|
9
9
|
const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
@@ -98,7 +98,11 @@ const _CreateRecordMemoryLoader = (loader, type) => {
|
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
return {
|
|
101
|
-
|
|
101
|
+
fetch_all: async () => {
|
|
102
|
+
const arr = get_array(type);
|
|
103
|
+
return arr.map(x => JSON.stringify(x));
|
|
104
|
+
},
|
|
105
|
+
load_all: async (token) => {
|
|
102
106
|
return new Promise((resolve, reject) => {
|
|
103
107
|
const arr = get_array(type);
|
|
104
108
|
const pub = permissionGetPublic(arr).map(x => JSON.stringify(x));
|
|
@@ -298,26 +302,29 @@ const _CreateRecordMemoryLoader = (loader, type) => {
|
|
|
298
302
|
}
|
|
299
303
|
};
|
|
300
304
|
};
|
|
301
|
-
exports._CreateRecordMemoryLoader = _CreateRecordMemoryLoader;
|
|
302
305
|
const _CreateRecordIOLoader = (loader, memory, type, folder, ext = ".json") => {
|
|
303
|
-
const mem =
|
|
306
|
+
const mem = _CreateRecordMemoryLoader(memory, type);
|
|
304
307
|
return {
|
|
305
|
-
|
|
308
|
+
fetch_all: async () => {
|
|
306
309
|
const root = loader.join(loader.root, folder);
|
|
307
310
|
if (!loader.exists(root))
|
|
308
311
|
await loader.mkdir(root);
|
|
309
|
-
if (cache)
|
|
310
|
-
return mem.load_all(cache, token);
|
|
311
312
|
await obsoleteSupport(loader, type, folder);
|
|
312
313
|
const files = await loader.read_dir_file(root);
|
|
313
314
|
const r = files.map(x => loader.read_string(loader.join(root, x), { encoding: 'utf8', flag: 'r' }));
|
|
314
315
|
const p = await Promise.all(r);
|
|
315
316
|
const saver = p.map(x => {
|
|
316
317
|
const data = JSON.parse(x);
|
|
317
|
-
return mem.save(data.uuid, x
|
|
318
|
+
return mem.save(data.uuid, x);
|
|
318
319
|
});
|
|
319
320
|
await Promise.all(saver);
|
|
320
|
-
return mem.
|
|
321
|
+
return mem.fetch_all();
|
|
322
|
+
},
|
|
323
|
+
load_all: async (token) => {
|
|
324
|
+
const root = loader.join(loader.root, folder);
|
|
325
|
+
if (!loader.exists(root))
|
|
326
|
+
await loader.mkdir(root);
|
|
327
|
+
return mem.load_all(token);
|
|
321
328
|
},
|
|
322
329
|
delete_all: async (token) => {
|
|
323
330
|
const root = loader.join(loader.root, folder);
|
|
@@ -366,21 +373,21 @@ const _CreateRecordIOLoader = (loader, memory, type, folder, ext = ".json") => {
|
|
|
366
373
|
}
|
|
367
374
|
};
|
|
368
375
|
};
|
|
369
|
-
exports._CreateRecordIOLoader = _CreateRecordIOLoader;
|
|
370
376
|
const _CreateRecordMongoLoader = (loader, memory, type, db, collection) => {
|
|
371
|
-
const mem =
|
|
377
|
+
const mem = _CreateRecordMemoryLoader(memory, type);
|
|
372
378
|
return {
|
|
373
|
-
|
|
374
|
-
if (cache)
|
|
375
|
-
return mem.load_all(cache, token);
|
|
379
|
+
fetch_all: async () => {
|
|
376
380
|
const database = loader.db(db);
|
|
377
381
|
const col = database.collection(collection);
|
|
378
382
|
const data = await col.find({}).toArray();
|
|
379
383
|
const exec = data.map(x => {
|
|
380
|
-
return mem.save(x.uuid, JSON.stringify(x)
|
|
384
|
+
return mem.save(x.uuid, JSON.stringify(x));
|
|
381
385
|
});
|
|
382
386
|
await Promise.all(exec);
|
|
383
|
-
return mem.
|
|
387
|
+
return mem.fetch_all();
|
|
388
|
+
},
|
|
389
|
+
load_all: async (token) => {
|
|
390
|
+
return mem.load_all(token);
|
|
384
391
|
},
|
|
385
392
|
delete_all: async (token) => {
|
|
386
393
|
const c = await mem.delete_all(token);
|
|
@@ -418,44 +425,43 @@ const _CreateRecordMongoLoader = (loader, memory, type, db, collection) => {
|
|
|
418
425
|
}
|
|
419
426
|
};
|
|
420
427
|
};
|
|
421
|
-
exports._CreateRecordMongoLoader = _CreateRecordMongoLoader;
|
|
422
428
|
const CreateRecordMemoryLoader = (loader) => {
|
|
423
429
|
return {
|
|
424
|
-
project:
|
|
425
|
-
task:
|
|
426
|
-
job:
|
|
427
|
-
database:
|
|
428
|
-
node:
|
|
429
|
-
log:
|
|
430
|
-
lib:
|
|
431
|
-
user:
|
|
430
|
+
project: _CreateRecordMemoryLoader(loader, interface_1.RecordType.PROJECT),
|
|
431
|
+
task: _CreateRecordMemoryLoader(loader, interface_1.RecordType.TASK),
|
|
432
|
+
job: _CreateRecordMemoryLoader(loader, interface_1.RecordType.JOB),
|
|
433
|
+
database: _CreateRecordMemoryLoader(loader, interface_1.RecordType.DATABASE),
|
|
434
|
+
node: _CreateRecordMemoryLoader(loader, interface_1.RecordType.NODE),
|
|
435
|
+
log: _CreateRecordMemoryLoader(loader, interface_1.RecordType.LOG),
|
|
436
|
+
lib: _CreateRecordMemoryLoader(loader, interface_1.RecordType.LIB),
|
|
437
|
+
user: _CreateRecordMemoryLoader(loader, interface_1.RecordType.USER),
|
|
432
438
|
};
|
|
433
439
|
};
|
|
434
440
|
exports.CreateRecordMemoryLoader = CreateRecordMemoryLoader;
|
|
435
441
|
const CreateRecordIOLoader = (loader, memory) => {
|
|
436
442
|
return {
|
|
437
|
-
project:
|
|
438
|
-
task:
|
|
439
|
-
job:
|
|
440
|
-
database:
|
|
441
|
-
node:
|
|
442
|
-
log:
|
|
443
|
-
lib:
|
|
444
|
-
user:
|
|
443
|
+
project: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.PROJECT, "project"),
|
|
444
|
+
task: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.TASK, "task"),
|
|
445
|
+
job: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.JOB, "job"),
|
|
446
|
+
database: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.DATABASE, "database"),
|
|
447
|
+
node: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.NODE, "node"),
|
|
448
|
+
log: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.LOG, "log"),
|
|
449
|
+
lib: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.LIB, "lib"),
|
|
450
|
+
user: _CreateRecordIOLoader(loader, memory, interface_1.RecordType.USER, "user"),
|
|
445
451
|
};
|
|
446
452
|
};
|
|
447
453
|
exports.CreateRecordIOLoader = CreateRecordIOLoader;
|
|
448
454
|
const CreateRecordMongoLoader = (url, memory) => {
|
|
449
455
|
const loader = new mongodb_1.MongoClient(url);
|
|
450
456
|
return {
|
|
451
|
-
project:
|
|
452
|
-
task:
|
|
453
|
-
job:
|
|
454
|
-
database:
|
|
455
|
-
node:
|
|
456
|
-
log:
|
|
457
|
-
lib:
|
|
458
|
-
user:
|
|
457
|
+
project: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.PROJECT, interface_1.MONGODB_NAME, "project"),
|
|
458
|
+
task: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.TASK, interface_1.MONGODB_NAME, "task"),
|
|
459
|
+
job: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.JOB, interface_1.MONGODB_NAME, "job"),
|
|
460
|
+
database: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.DATABASE, interface_1.MONGODB_NAME, "database"),
|
|
461
|
+
node: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.NODE, interface_1.MONGODB_NAME, "node"),
|
|
462
|
+
log: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.LOG, interface_1.MONGODB_NAME, "log"),
|
|
463
|
+
lib: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.LIB, interface_1.MONGODB_NAME, "lib"),
|
|
464
|
+
user: _CreateRecordMongoLoader(loader, memory, interface_1.RecordType.USER, interface_1.MONGODB_NAME, "user"),
|
|
459
465
|
};
|
|
460
466
|
};
|
|
461
467
|
exports.CreateRecordMongoLoader = CreateRecordMongoLoader;
|
package/dist/server/server.js
CHANGED
|
@@ -25,7 +25,7 @@ class ServerBase {
|
|
|
25
25
|
detail;
|
|
26
26
|
module_project;
|
|
27
27
|
constructor() {
|
|
28
|
-
this.memory_loader = (0, io_1.
|
|
28
|
+
this.memory_loader = (0, io_1.CreateRecordMemoryLoader_Browser)(this.memory);
|
|
29
29
|
this.module_project = new project_1.Project_Module(this);
|
|
30
30
|
}
|
|
31
31
|
get current_loader() {
|
|
@@ -35,14 +35,14 @@ class ServerBase {
|
|
|
35
35
|
}
|
|
36
36
|
LoadFromDisk = () => {
|
|
37
37
|
const ts = [
|
|
38
|
-
this.current_loader.project.
|
|
39
|
-
this.current_loader.task.
|
|
40
|
-
this.current_loader.job.
|
|
41
|
-
this.current_loader.database.
|
|
42
|
-
this.current_loader.node.
|
|
43
|
-
this.current_loader.log.
|
|
44
|
-
this.current_loader.lib.
|
|
45
|
-
this.current_loader.user.
|
|
38
|
+
this.current_loader.project.fetch_all(),
|
|
39
|
+
this.current_loader.task.fetch_all(),
|
|
40
|
+
this.current_loader.job.fetch_all(),
|
|
41
|
+
this.current_loader.database.fetch_all(),
|
|
42
|
+
this.current_loader.node.fetch_all(),
|
|
43
|
+
this.current_loader.log.fetch_all(),
|
|
44
|
+
this.current_loader.lib.fetch_all(),
|
|
45
|
+
this.current_loader.user.fetch_all(),
|
|
46
46
|
];
|
|
47
47
|
return Promise.all(ts);
|
|
48
48
|
};
|
package/dist/server/server2.d.ts
CHANGED
package/dist/server/server2.js
CHANGED
|
@@ -3,24 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Server = void 0;
|
|
4
4
|
const server_1 = require("./server");
|
|
5
5
|
class Server extends server_1.ServerBase {
|
|
6
|
-
loader2 = undefined;
|
|
7
|
-
get current_loader2() {
|
|
8
|
-
if (this.loader)
|
|
9
|
-
return this.loader;
|
|
10
|
-
return this.memory_loader;
|
|
11
|
-
}
|
|
12
|
-
LoadFromDisk = () => {
|
|
13
|
-
const ts = [
|
|
14
|
-
this.current_loader2.project.load_all(false),
|
|
15
|
-
this.current_loader2.task.load_all(false),
|
|
16
|
-
this.current_loader2.job.load_all(false),
|
|
17
|
-
this.current_loader2.database.load_all(false),
|
|
18
|
-
this.current_loader2.node.load_all(false),
|
|
19
|
-
this.current_loader2.log.load_all(false),
|
|
20
|
-
this.current_loader2.lib.load_all(false),
|
|
21
|
-
this.current_loader2.user.load_all(false),
|
|
22
|
-
];
|
|
23
|
-
return Promise.all(ts);
|
|
24
|
-
};
|
|
25
6
|
}
|
|
26
7
|
exports.Server = Server;
|
package/package.json
CHANGED
package/src/server/io.ts
CHANGED
|
@@ -36,12 +36,13 @@ export interface MemoryData {
|
|
|
36
36
|
* FOr backend server action
|
|
37
37
|
*/
|
|
38
38
|
export interface RecordIOLoader {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
39
|
+
fetch_all: () => Promise<Array<string>>
|
|
40
|
+
load_all: (token?:string) => Promise<Array<string>>
|
|
41
|
+
delete_all: (token?:string) => Promise<Array<string>>
|
|
42
|
+
list_all: (token?:string) => Promise<Array<string>>
|
|
43
|
+
save: (uuid:string, data:string, token?:string) => Promise<boolean>
|
|
44
|
+
load: (uuid:string, token?:string) => Promise<string>
|
|
45
|
+
delete: (uuid:string, token?:string) => Promise<boolean>
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* **IO Function Interface**\
|
|
@@ -82,7 +83,7 @@ export interface RecordLoader {
|
|
|
82
83
|
* @param type Type of storage
|
|
83
84
|
* @returns Interface for calling
|
|
84
85
|
*/
|
|
85
|
-
|
|
86
|
+
const _CreateRecordMemoryLoader = (loader:MemoryData, type:RecordType):RecordIOLoader => {
|
|
86
87
|
const get_array = (type:RecordType):Array<Shareable & DataHeader> => {
|
|
87
88
|
switch(type){
|
|
88
89
|
default:
|
|
@@ -97,6 +98,10 @@ export const _CreateRecordMemoryLoader = (loader:MemoryData, type:RecordType):Re
|
|
|
97
98
|
}
|
|
98
99
|
}
|
|
99
100
|
return {
|
|
101
|
+
fetch_all: async ():Promise<Array<string>> => {
|
|
102
|
+
const arr = get_array(type)
|
|
103
|
+
return arr.map(x => JSON.stringify(x))
|
|
104
|
+
},
|
|
100
105
|
load_all: async ():Promise<Array<string>> => {
|
|
101
106
|
const arr = get_array(type)
|
|
102
107
|
return arr.map(x => JSON.stringify(x))
|
|
@@ -139,7 +144,7 @@ export const _CreateRecordMemoryLoader = (loader:MemoryData, type:RecordType):Re
|
|
|
139
144
|
* @param loader loader memory loader interface
|
|
140
145
|
* @returns Interface for server calling
|
|
141
146
|
*/
|
|
142
|
-
export const
|
|
147
|
+
export const CreateRecordMemoryLoader_Browser = (loader:MemoryData):RecordLoader => {
|
|
143
148
|
return {
|
|
144
149
|
project: _CreateRecordMemoryLoader(loader, RecordType.PROJECT),
|
|
145
150
|
task: _CreateRecordMemoryLoader(loader, RecordType.TASK),
|
package/src/server/io2.ts
CHANGED
|
@@ -5,15 +5,7 @@
|
|
|
5
5
|
// ========================
|
|
6
6
|
import { MongoClient } from "mongodb"
|
|
7
7
|
import {
|
|
8
|
-
Project,
|
|
9
8
|
RecordType,
|
|
10
|
-
Database,
|
|
11
|
-
UserProfile,
|
|
12
|
-
Library,
|
|
13
|
-
ExecutionLog,
|
|
14
|
-
Node,
|
|
15
|
-
Task,
|
|
16
|
-
Job,
|
|
17
9
|
Shareable,
|
|
18
10
|
ACLType,
|
|
19
11
|
JWT,
|
|
@@ -22,48 +14,7 @@ import {
|
|
|
22
14
|
MONGODB_NAME,
|
|
23
15
|
} from "../interface"
|
|
24
16
|
import jwt from 'jsonwebtoken'
|
|
25
|
-
import { RecordIOBase } from "./io"
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* **Record Data**
|
|
29
|
-
*/
|
|
30
|
-
export interface MemoryData {
|
|
31
|
-
projects: Array<Project>
|
|
32
|
-
tasks: Array<Task>
|
|
33
|
-
jobs: Array<Job>
|
|
34
|
-
database: Array<Database>
|
|
35
|
-
nodes: Array<Node>
|
|
36
|
-
logs: Array<ExecutionLog>
|
|
37
|
-
libs: Array<Library>
|
|
38
|
-
user: Array<UserProfile>
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* **Server Use Interface**\
|
|
43
|
-
* FOr backend server action
|
|
44
|
-
*/
|
|
45
|
-
export interface RecordIOLoader {
|
|
46
|
-
load_all: (cache:boolean, token?:string) => Promise<Array<string>>
|
|
47
|
-
delete_all: (token?:string) => Promise<Array<string>>
|
|
48
|
-
list_all: (token?:string) => Promise<Array<string>>
|
|
49
|
-
save: (uuid:string, data:string, token?:string) => Promise<boolean>
|
|
50
|
-
load: (uuid:string, token?:string) => Promise<string>
|
|
51
|
-
delete: (uuid:string, token?:string) => Promise<boolean>
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* **IO Loader Worker**\
|
|
55
|
-
* Fetch data from storage space, could be disk or mongoDB
|
|
56
|
-
*/
|
|
57
|
-
export interface RecordLoader {
|
|
58
|
-
project: RecordIOLoader
|
|
59
|
-
task: RecordIOLoader
|
|
60
|
-
job: RecordIOLoader
|
|
61
|
-
database: RecordIOLoader
|
|
62
|
-
node: RecordIOLoader
|
|
63
|
-
log: RecordIOLoader
|
|
64
|
-
lib: RecordIOLoader
|
|
65
|
-
user: RecordIOLoader
|
|
66
|
-
}
|
|
17
|
+
import { MemoryData, RecordIOBase, RecordIOLoader, RecordLoader } from "./io"
|
|
67
18
|
|
|
68
19
|
const permissionHelper = (x:Shareable & DataHeader, uuid:string) => {
|
|
69
20
|
const ispublic = x.owner == undefined || x.acl == ACLType.PUBLIC
|
|
@@ -146,7 +97,7 @@ const obsoleteSupport = async (loader:RecordIOBase, type:RecordType, folder:stri
|
|
|
146
97
|
* @param type Type of storage
|
|
147
98
|
* @returns Interface for calling
|
|
148
99
|
*/
|
|
149
|
-
|
|
100
|
+
const _CreateRecordMemoryLoader = (loader:MemoryData, type:RecordType):RecordIOLoader => {
|
|
150
101
|
const get_array = (type:RecordType):Array<Shareable & DataHeader> => {
|
|
151
102
|
switch(type){
|
|
152
103
|
default:
|
|
@@ -161,7 +112,11 @@ export const _CreateRecordMemoryLoader = (loader:MemoryData, type:RecordType):Re
|
|
|
161
112
|
}
|
|
162
113
|
}
|
|
163
114
|
return {
|
|
164
|
-
|
|
115
|
+
fetch_all: async ():Promise<Array<string>> => {
|
|
116
|
+
const arr = get_array(type)
|
|
117
|
+
return arr.map(x => JSON.stringify(x))
|
|
118
|
+
},
|
|
119
|
+
load_all: async (token?:string):Promise<Array<string>> => {
|
|
165
120
|
return new Promise<Array<string>>((resolve, reject) => {
|
|
166
121
|
const arr = get_array(type)
|
|
167
122
|
const pub = permissionGetPublic(arr).map(x => JSON.stringify(x))
|
|
@@ -380,13 +335,13 @@ export const _CreateRecordMemoryLoader = (loader:MemoryData, type:RecordType):Re
|
|
|
380
335
|
* @param ext Store file extension
|
|
381
336
|
* @returns Interface for calling
|
|
382
337
|
*/
|
|
383
|
-
|
|
338
|
+
const _CreateRecordIOLoader = (loader:RecordIOBase, memory:MemoryData, type:RecordType, folder:string, ext:string = ".json"):RecordIOLoader => {
|
|
384
339
|
const mem = _CreateRecordMemoryLoader(memory, type)
|
|
385
340
|
return {
|
|
386
|
-
|
|
341
|
+
fetch_all: async ():Promise<Array<string>> => {
|
|
387
342
|
const root = loader.join(loader.root, folder)
|
|
388
343
|
if(!loader.exists(root)) await loader.mkdir(root)
|
|
389
|
-
|
|
344
|
+
|
|
390
345
|
await obsoleteSupport(loader, type, folder)
|
|
391
346
|
const files = await loader.read_dir_file(root)
|
|
392
347
|
const r:Array<Promise<string>> = files.map(x =>
|
|
@@ -395,10 +350,15 @@ export const _CreateRecordIOLoader = (loader:RecordIOBase, memory:MemoryData, ty
|
|
|
395
350
|
const p = await Promise.all(r)
|
|
396
351
|
const saver = p.map(x => {
|
|
397
352
|
const data = JSON.parse(x)
|
|
398
|
-
return mem.save(data.uuid, x
|
|
353
|
+
return mem.save(data.uuid, x)
|
|
399
354
|
})
|
|
400
355
|
await Promise.all(saver)
|
|
401
|
-
return mem.
|
|
356
|
+
return mem.fetch_all()
|
|
357
|
+
},
|
|
358
|
+
load_all: async (token?:string):Promise<Array<string>> => {
|
|
359
|
+
const root = loader.join(loader.root, folder)
|
|
360
|
+
if(!loader.exists(root)) await loader.mkdir(root)
|
|
361
|
+
return mem.load_all(token)
|
|
402
362
|
},
|
|
403
363
|
delete_all: async (token?:string):Promise<Array<string>> => {
|
|
404
364
|
const root = loader.join(loader.root, folder)
|
|
@@ -455,19 +415,21 @@ export const _CreateRecordIOLoader = (loader:RecordIOBase, memory:MemoryData, ty
|
|
|
455
415
|
* @param collection Collection from database
|
|
456
416
|
* @returns Interface for calling
|
|
457
417
|
*/
|
|
458
|
-
|
|
418
|
+
const _CreateRecordMongoLoader = (loader:MongoClient, memory:MemoryData, type:RecordType, db:string, collection:string):RecordIOLoader => {
|
|
459
419
|
const mem = _CreateRecordMemoryLoader(memory, type)
|
|
460
420
|
return {
|
|
461
|
-
|
|
462
|
-
if(cache) return mem.load_all(cache, token)
|
|
421
|
+
fetch_all: async (): Promise<Array<string>> => {
|
|
463
422
|
const database = loader.db(db)
|
|
464
423
|
const col = database.collection(collection)
|
|
465
424
|
const data = await col.find({}).toArray()
|
|
466
425
|
const exec = data.map(x => {
|
|
467
|
-
return mem.save(x.uuid, JSON.stringify(x)
|
|
426
|
+
return mem.save(x.uuid, JSON.stringify(x))
|
|
468
427
|
})
|
|
469
428
|
await Promise.all(exec)
|
|
470
|
-
return mem.
|
|
429
|
+
return mem.fetch_all()
|
|
430
|
+
},
|
|
431
|
+
load_all: async (token?: string): Promise<Array<string>> => {
|
|
432
|
+
return mem.load_all(token)
|
|
471
433
|
},
|
|
472
434
|
delete_all: async (token?: string): Promise<Array<string>> => {
|
|
473
435
|
// Memory action
|
package/src/server/server.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// ========================
|
|
6
6
|
import { Execute_ConsoleServerManager, Header, PluginPageData } from "../interface";
|
|
7
7
|
import { ServerDetail } from "./detail";
|
|
8
|
-
import {
|
|
8
|
+
import { CreateRecordMemoryLoader_Browser, MemoryData, RecordIOBase, RecordLoader } from "./io";
|
|
9
9
|
import { Project_Module } from "./module/project";
|
|
10
10
|
import { PluginLoader } from "./plugin";
|
|
11
11
|
|
|
@@ -56,7 +56,7 @@ export class ServerBase {
|
|
|
56
56
|
module_project: Project_Module
|
|
57
57
|
|
|
58
58
|
constructor() {
|
|
59
|
-
this.memory_loader =
|
|
59
|
+
this.memory_loader = CreateRecordMemoryLoader_Browser(this.memory)
|
|
60
60
|
this.module_project = new Project_Module(this)
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -71,14 +71,14 @@ export class ServerBase {
|
|
|
71
71
|
*/
|
|
72
72
|
LoadFromDisk = ():Promise<Array<Array<string>>> => {
|
|
73
73
|
const ts = [
|
|
74
|
-
this.current_loader.project.
|
|
75
|
-
this.current_loader.task.
|
|
76
|
-
this.current_loader.job.
|
|
77
|
-
this.current_loader.database.
|
|
78
|
-
this.current_loader.node.
|
|
79
|
-
this.current_loader.log.
|
|
80
|
-
this.current_loader.lib.
|
|
81
|
-
this.current_loader.user.
|
|
74
|
+
this.current_loader.project.fetch_all(),
|
|
75
|
+
this.current_loader.task.fetch_all(),
|
|
76
|
+
this.current_loader.job.fetch_all(),
|
|
77
|
+
this.current_loader.database.fetch_all(),
|
|
78
|
+
this.current_loader.node.fetch_all(),
|
|
79
|
+
this.current_loader.log.fetch_all(),
|
|
80
|
+
this.current_loader.lib.fetch_all(),
|
|
81
|
+
this.current_loader.user.fetch_all(),
|
|
82
82
|
]
|
|
83
83
|
return Promise.all(ts)
|
|
84
84
|
}
|
package/src/server/server2.ts
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// Share Codebase
|
|
4
4
|
//
|
|
5
5
|
// ========================
|
|
6
|
-
import { RecordLoader } from "./io2";
|
|
7
6
|
import { ServerBase } from "./server";
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -11,28 +10,5 @@ import { ServerBase } from "./server";
|
|
|
11
10
|
* The task schedule server
|
|
12
11
|
*/
|
|
13
12
|
export class Server extends ServerBase {
|
|
14
|
-
loader2:RecordLoader | undefined = undefined
|
|
15
13
|
|
|
16
|
-
public get current_loader2() : RecordLoader {
|
|
17
|
-
if(this.loader) return this.loader
|
|
18
|
-
return this.memory_loader
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* **Data: Disk -> Memory**\
|
|
23
|
-
* Load every type of data from disk, store them into memory
|
|
24
|
-
*/
|
|
25
|
-
override LoadFromDisk = ():Promise<Array<Array<string>>> => {
|
|
26
|
-
const ts = [
|
|
27
|
-
this.current_loader2.project.load_all(false),
|
|
28
|
-
this.current_loader2.task.load_all(false),
|
|
29
|
-
this.current_loader2.job.load_all(false),
|
|
30
|
-
this.current_loader2.database.load_all(false),
|
|
31
|
-
this.current_loader2.node.load_all(false),
|
|
32
|
-
this.current_loader2.log.load_all(false),
|
|
33
|
-
this.current_loader2.lib.load_all(false),
|
|
34
|
-
this.current_loader2.user.load_all(false),
|
|
35
|
-
]
|
|
36
|
-
return Promise.all(ts)
|
|
37
|
-
}
|
|
38
14
|
}
|