@webda/async 2.0.0-beta.3 → 2.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/lib/index.d.ts +4 -4
- package/lib/index.js +4 -20
- package/lib/index.js.map +1 -1
- package/lib/models.js +4 -9
- package/lib/models.js.map +1 -1
- package/lib/services/asyncjobservice.d.ts +3 -4
- package/lib/services/asyncjobservice.js +160 -182
- package/lib/services/asyncjobservice.js.map +1 -1
- package/lib/services/localrunner.d.ts +4 -3
- package/lib/services/localrunner.js +48 -54
- package/lib/services/localrunner.js.map +1 -1
- package/lib/services/runner.d.ts +3 -3
- package/lib/services/runner.js +6 -12
- package/lib/services/runner.js.map +1 -1
- package/package.json +13 -10
- package/webda.module.json +448 -2
|
@@ -1,76 +1,70 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.LocalRunnerParameters = void 0;
|
|
13
|
-
const child_process_1 = require("child_process");
|
|
14
|
-
const runner_1 = require("./runner");
|
|
15
|
-
class LocalRunnerParameters extends runner_1.RunnerParameters {
|
|
1
|
+
import { spawn } from "child_process";
|
|
2
|
+
import { Runner, RunnerParameters } from "./runner.js";
|
|
3
|
+
export class LocalRunnerParameters extends RunnerParameters {
|
|
16
4
|
constructor(params) {
|
|
17
|
-
var _a
|
|
18
|
-
var _c;
|
|
5
|
+
var _a;
|
|
19
6
|
super(params);
|
|
20
|
-
|
|
21
|
-
(
|
|
7
|
+
this.options ?? (this.options = {});
|
|
8
|
+
(_a = this.options).env ?? (_a.env = {});
|
|
22
9
|
}
|
|
23
10
|
}
|
|
24
|
-
exports.LocalRunnerParameters = LocalRunnerParameters;
|
|
25
11
|
/**
|
|
26
12
|
* Run a Job locally on the server by spawning a child process
|
|
27
13
|
*
|
|
28
14
|
* @WebdaModda
|
|
29
15
|
*/
|
|
30
|
-
class LocalRunner extends
|
|
16
|
+
export default class LocalRunner extends Runner {
|
|
31
17
|
/**
|
|
32
18
|
* @inheritdoc
|
|
33
19
|
*/
|
|
34
20
|
loadParameters(params) {
|
|
35
21
|
return new LocalRunnerParameters(params);
|
|
36
22
|
}
|
|
23
|
+
spawn(command, args, options) {
|
|
24
|
+
/* c8 ignore next 2 */
|
|
25
|
+
return spawn(command, args, options);
|
|
26
|
+
}
|
|
37
27
|
/**
|
|
38
28
|
* @inheritdoc
|
|
39
29
|
*/
|
|
40
|
-
launchAction(action, info) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
child.stderr.on("data", data => {
|
|
53
|
-
action.getStore().upsertItemToCollection(action.getUuid(), "logs", data);
|
|
54
|
-
});
|
|
55
|
-
// As this is local just and mostly used for batch auto status it
|
|
56
|
-
yield action.getStore().patch({ uuid: action.getUuid(), status: "RUNNING" });
|
|
57
|
-
child.on("exit", (code) => __awaiter(this, void 0, void 0, function* () {
|
|
58
|
-
if (code !== 0) {
|
|
59
|
-
this.log("INFO", "Job", action.getUuid(), "errored with", code);
|
|
60
|
-
yield action.getStore().patch({ uuid: action.getUuid(), status: "ERROR" });
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
this.log("INFO", "Job", action.getUuid(), "successful");
|
|
64
|
-
yield action.getStore().patch({ uuid: action.getUuid(), status: "SUCCESS" });
|
|
65
|
-
}
|
|
66
|
-
}));
|
|
67
|
-
}
|
|
68
|
-
return {
|
|
69
|
-
agent: runner_1.Runner.getAgentInfo(),
|
|
70
|
-
pid: child.pid
|
|
71
|
-
};
|
|
30
|
+
async launchAction(action, info) {
|
|
31
|
+
let envs = {
|
|
32
|
+
...this.parameters.options?.env,
|
|
33
|
+
...info
|
|
34
|
+
};
|
|
35
|
+
this.log("INFO", "Job", action.getUuid(), "started with", Object.keys(envs)
|
|
36
|
+
.map(k => `${k}=${envs[k]}`)
|
|
37
|
+
.join(" "), this.parameters.command, this.parameters.args ? this.parameters.args.map(a => `'${a}'`).join(" ") : "");
|
|
38
|
+
const child = this.spawn(this.parameters.command, this.parameters.args || [], {
|
|
39
|
+
...this.parameters.options,
|
|
40
|
+
env: envs,
|
|
41
|
+
detached: true
|
|
72
42
|
});
|
|
43
|
+
// AutoStatus based on process info
|
|
44
|
+
if (this.parameters.autoStatus && child) {
|
|
45
|
+
child.stdout?.on("data", data => {
|
|
46
|
+
action.getStore().upsertItemToCollection(action.getUuid(), "logs", data);
|
|
47
|
+
});
|
|
48
|
+
child.stderr?.on("data", data => {
|
|
49
|
+
action.getStore().upsertItemToCollection(action.getUuid(), "logs", data);
|
|
50
|
+
});
|
|
51
|
+
// As this is local just and mostly used for batch auto status it
|
|
52
|
+
await action.getStore().patch({ uuid: action.getUuid(), status: "RUNNING" });
|
|
53
|
+
child.on("exit", async (code) => {
|
|
54
|
+
if (code !== 0) {
|
|
55
|
+
this.log("INFO", "Job", action.getUuid(), "errored with", code);
|
|
56
|
+
await action.getStore().patch({ uuid: action.getUuid(), status: "ERROR" });
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.log("INFO", "Job", action.getUuid(), "successful");
|
|
60
|
+
await action.getStore().patch({ uuid: action.getUuid(), status: "SUCCESS" });
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
agent: Runner.getAgentInfo(),
|
|
66
|
+
pid: child?.pid || -1
|
|
67
|
+
};
|
|
73
68
|
}
|
|
74
69
|
}
|
|
75
|
-
exports.default = LocalRunner;
|
|
76
70
|
//# sourceMappingURL=localrunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localrunner.js","sourceRoot":"","sources":["../../src/services/localrunner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"localrunner.js","sourceRoot":"","sources":["../../src/services/localrunner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAgB,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAa,MAAM,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D,MAAM,OAAO,qBAAsB,SAAQ,gBAAgB;IAoBzD,YAAY,MAAW;;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,EAAC;QACpB,MAAA,IAAI,CAAC,OAAO,EAAC,GAAG,QAAH,GAAG,GAAK,EAAE,EAAC;IAC1B,CAAC;CACF;AAUD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,WAAqE,SAAQ,MAAS;IACzG;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc,EAAE,OAAkC;QACvE,sBAAsB;QACtB,OAAO,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAAmB,EAAE,IAAa;QACnD,IAAI,IAAI,GAA8B;YACpC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG;YAC/B,GAAG,IAAI;SACR,CAAC;QACF,IAAI,CAAC,GAAG,CACN,MAAM,EACN,KAAK,EACL,MAAM,CAAC,OAAO,EAAE,EAChB,cAAc,EACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aACd,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;aAC3B,IAAI,CAAC,GAAG,CAAC,EACZ,IAAI,CAAC,UAAU,CAAC,OAAO,EACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAC9E,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE;YAC5E,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;YAC1B,GAAG,EAAE,IAAI;YACT,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,mCAAmC;QACnC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,KAAK,EAAE;YACvC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC9B,MAAM,CAAC,QAAQ,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,iEAAiE;YACjE,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YAC7E,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE;gBAC5B,IAAI,IAAI,KAAK,CAAC,EAAE;oBACd,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;oBAChE,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;iBAC5E;qBAAM;oBACL,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;oBACxD,MAAM,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;iBAC9E;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE;YAC5B,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;SACtB,CAAC;IACJ,CAAC;CACF"}
|
package/lib/services/runner.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AsyncAction } from "../models";
|
|
3
|
-
import { JobInfo } from "./asyncjobservice";
|
|
1
|
+
import { Service, ServiceParameters } from "@webda/core";
|
|
2
|
+
import { AsyncAction } from "../models.js";
|
|
3
|
+
import { JobInfo } from "./asyncjobservice.js";
|
|
4
4
|
export declare class RunnerParameters extends ServiceParameters {
|
|
5
5
|
/**
|
|
6
6
|
* Actions managed by the runner
|
package/lib/services/runner.js
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("@webda/core");
|
|
5
|
-
const os = require("os");
|
|
6
|
-
class RunnerParameters extends core_1.ServiceParameters {
|
|
1
|
+
import { Service, ServiceParameters } from "@webda/core";
|
|
2
|
+
import * as os from "os";
|
|
3
|
+
export class RunnerParameters extends ServiceParameters {
|
|
7
4
|
constructor(params) {
|
|
8
|
-
var _a;
|
|
9
5
|
super(params);
|
|
10
|
-
|
|
6
|
+
this.actions ?? (this.actions = []);
|
|
11
7
|
}
|
|
12
8
|
}
|
|
13
|
-
exports.RunnerParameters = RunnerParameters;
|
|
14
9
|
/**
|
|
15
10
|
* Runner take and launch an action
|
|
16
11
|
*/
|
|
17
|
-
class Runner extends
|
|
12
|
+
export class Runner extends Service {
|
|
18
13
|
/**
|
|
19
14
|
* @inheritdoc
|
|
20
15
|
*/
|
|
@@ -27,7 +22,7 @@ class Runner extends core_1.Service {
|
|
|
27
22
|
* @returns
|
|
28
23
|
*/
|
|
29
24
|
handleType(type) {
|
|
30
|
-
return this.parameters.actions
|
|
25
|
+
return this.parameters.actions?.includes(type) ?? false;
|
|
31
26
|
}
|
|
32
27
|
/**
|
|
33
28
|
* Return agent information
|
|
@@ -43,5 +38,4 @@ class Runner extends core_1.Service {
|
|
|
43
38
|
};
|
|
44
39
|
}
|
|
45
40
|
}
|
|
46
|
-
exports.Runner = Runner;
|
|
47
41
|
//# sourceMappingURL=runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/services/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAIzB,MAAM,OAAO,gBAAiB,SAAQ,iBAAiB;IAOrD,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,EAAC;IACtB,CAAC;CACF;AAoBD;;GAEG;AACH,MAAM,OAAgB,MAAsD,SAAQ,OAAU;IAC5F;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IACD;;;;OAIG;IACH,UAAU,CAAC,IAAY;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY;QACjB,OAAO;YACL,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE;YACvB,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;YACrB,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;YACrB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;SAChB,CAAC;IACJ,CAAC;CAMF"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/async",
|
|
3
|
-
"version": "2.0.0
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Async System",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"build": "tsc",
|
|
7
|
+
"build": "tsc-esm",
|
|
8
|
+
"build:module": "webda build",
|
|
8
9
|
"pretest": "npm run build",
|
|
9
|
-
"test": "
|
|
10
|
+
"test": "c8 mocha --recursive --exit --timeout=100000 -r ../../node_modules/ts-node/register src/**/*.spec.ts",
|
|
10
11
|
"run": "node core"
|
|
11
12
|
},
|
|
12
13
|
"keywords": [
|
|
@@ -19,21 +20,19 @@
|
|
|
19
20
|
],
|
|
20
21
|
"dependencies": {
|
|
21
22
|
"@types/node": "^16.4.14",
|
|
22
|
-
"@webda/core": "^2.0.0
|
|
23
|
+
"@webda/core": "^2.0.0",
|
|
23
24
|
"axios": "^0.27.2"
|
|
24
25
|
},
|
|
25
26
|
"devDependencies": {
|
|
26
|
-
"@
|
|
27
|
-
"@
|
|
27
|
+
"@types/node": "14.6.0",
|
|
28
|
+
"@webda/tsc-esm": "^1.0.0",
|
|
28
29
|
"mocha": "^10.0.0",
|
|
29
|
-
"nyc": "^15.1.0",
|
|
30
30
|
"sinon": "^14.0.0",
|
|
31
31
|
"source-map-support": "^0.5.19",
|
|
32
32
|
"ts-node": "^10.2.0",
|
|
33
33
|
"typescript": "~4.7.2"
|
|
34
34
|
},
|
|
35
|
-
"
|
|
36
|
-
"extends": "@istanbuljs/nyc-config-typescript",
|
|
35
|
+
"c8": {
|
|
37
36
|
"report-dir": "./reports",
|
|
38
37
|
"reporter": [
|
|
39
38
|
"html",
|
|
@@ -59,5 +58,9 @@
|
|
|
59
58
|
"webda": {
|
|
60
59
|
"namespace": "Webda"
|
|
61
60
|
},
|
|
62
|
-
"
|
|
61
|
+
"type": "module",
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=14.6.0"
|
|
64
|
+
},
|
|
65
|
+
"gitHead": "5764db57432f146c84b2e8f52cf49fb5ded3af29"
|
|
63
66
|
}
|