@theia/process 1.32.0-next.5 → 1.32.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/common/process-manager-types.d.ts +36 -0
- package/lib/common/process-manager-types.d.ts.map +1 -0
- package/lib/common/process-manager-types.js +24 -0
- package/lib/common/process-manager-types.js.map +1 -0
- package/lib/node/process-manager.d.ts +5 -4
- package/lib/node/process-manager.d.ts.map +1 -1
- package/lib/node/process-manager.js.map +1 -1
- package/lib/node/process.d.ts +5 -24
- package/lib/node/process.d.ts.map +1 -1
- package/lib/node/process.js +3 -7
- package/lib/node/process.js.map +1 -1
- package/package.json +4 -4
- package/src/common/process-manager-types.ts +58 -0
- package/src/node/process-manager.ts +6 -5
- package/src/node/process.ts +4 -28
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Event } from '@theia/core';
|
|
2
|
+
export interface ManagedProcessManager {
|
|
3
|
+
register(process: ManagedProcess): number;
|
|
4
|
+
unregister(process: ManagedProcess): void;
|
|
5
|
+
get(id: number): ManagedProcess | undefined;
|
|
6
|
+
}
|
|
7
|
+
export interface ManagedProcess {
|
|
8
|
+
readonly id: number;
|
|
9
|
+
readonly onStart: Event<IProcessStartEvent>;
|
|
10
|
+
readonly onExit: Event<IProcessExitEvent>;
|
|
11
|
+
readonly onClose: Event<IProcessExitEvent>;
|
|
12
|
+
readonly onError: Event<ProcessErrorEvent>;
|
|
13
|
+
readonly killed: boolean;
|
|
14
|
+
kill(): void;
|
|
15
|
+
}
|
|
16
|
+
export interface IProcessExitEvent {
|
|
17
|
+
readonly code?: number;
|
|
18
|
+
readonly signal?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Data emitted when a process has been successfully started.
|
|
22
|
+
*/
|
|
23
|
+
export interface IProcessStartEvent {
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Data emitted when a process has failed to start.
|
|
27
|
+
*/
|
|
28
|
+
export interface ProcessErrorEvent extends Error {
|
|
29
|
+
/** An errno-like error string (e.g. ENOENT). */
|
|
30
|
+
code: string;
|
|
31
|
+
}
|
|
32
|
+
export declare enum ProcessType {
|
|
33
|
+
'Raw' = 0,
|
|
34
|
+
'Terminal' = 1
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=process-manager-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-manager-types.d.ts","sourceRoot":"","sources":["../../src/common/process-manager-types.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC;IAC1C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC1C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;CAC/C;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,IAAI,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAE9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,KAAK;IAC5C,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,oBAAY,WAAW;IACnB,KAAK,IAAA;IACL,UAAU,IAAA;CACb"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ProcessType = void 0;
|
|
19
|
+
var ProcessType;
|
|
20
|
+
(function (ProcessType) {
|
|
21
|
+
ProcessType[ProcessType["Raw"] = 0] = "Raw";
|
|
22
|
+
ProcessType[ProcessType["Terminal"] = 1] = "Terminal";
|
|
23
|
+
})(ProcessType = exports.ProcessType || (exports.ProcessType = {}));
|
|
24
|
+
//# sourceMappingURL=process-manager-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-manager-types.js","sourceRoot":"","sources":["../../src/common/process-manager-types.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;AAwChF,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,2CAAK,CAAA;IACL,qDAAU,CAAA;AACd,CAAC,EAHW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAGtB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { Process } from './process';
|
|
2
1
|
import { Emitter, Event } from '@theia/core/lib/common';
|
|
3
2
|
import { ILogger } from '@theia/core/lib/common/logger';
|
|
4
3
|
import { BackendApplicationContribution } from '@theia/core/lib/node';
|
|
5
|
-
|
|
4
|
+
import { ManagedProcessManager, ManagedProcess } from '../common/process-manager-types';
|
|
5
|
+
import { Process } from './process';
|
|
6
|
+
export declare class ProcessManager implements ManagedProcessManager, BackendApplicationContribution {
|
|
6
7
|
protected logger: ILogger;
|
|
7
8
|
protected readonly processes: Map<number, Process>;
|
|
8
9
|
protected readonly deleteEmitter: Emitter<number>;
|
|
@@ -24,8 +25,8 @@ export declare class ProcessManager implements BackendApplicationContribution {
|
|
|
24
25
|
*
|
|
25
26
|
* @param process the process to unregister from this process manager.
|
|
26
27
|
*/
|
|
27
|
-
unregister(process:
|
|
28
|
-
get(id: number):
|
|
28
|
+
unregister(process: ManagedProcess): void;
|
|
29
|
+
get(id: number): ManagedProcess | undefined;
|
|
29
30
|
get onDelete(): Event<number>;
|
|
30
31
|
onStop(): void;
|
|
31
32
|
private getProcessLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../../src/node/process-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../../src/node/process-manager.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAExF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBACa,cAAe,YAAW,qBAAqB,EAAE,8BAA8B;IAMjD,SAAS,CAAC,MAAM,EAAE,OAAO;IAJhE,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAGD,MAAM,EAAE,OAAO;IAMhE;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAOlC;;OAEG;IACH,SAAS,CAAC,UAAU,IAAI,MAAM;IAW9B;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAezC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,CAE5B;IAED,MAAM,IAAI,IAAI;IAUd,OAAO,CAAC,eAAe;CAI1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../../src/node/process-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,4DAAyE;
|
|
1
|
+
{"version":3,"file":"process-manager.js","sourceRoot":"","sources":["../../src/node/process-manager.ts"],"names":[],"mappings":"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"}
|
package/lib/node/process.d.ts
CHANGED
|
@@ -1,27 +1,8 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { ProcessManager } from './process-manager';
|
|
3
2
|
import { ILogger, Emitter, Event } from '@theia/core/lib/common';
|
|
4
3
|
import { Readable, Writable } from 'stream';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
readonly signal?: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Data emitted when a process has been successfully started.
|
|
11
|
-
*/
|
|
12
|
-
export interface IProcessStartEvent {
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Data emitted when a process has failed to start.
|
|
16
|
-
*/
|
|
17
|
-
export interface ProcessErrorEvent extends Error {
|
|
18
|
-
/** An errno-like error string (e.g. ENOENT). */
|
|
19
|
-
code: string;
|
|
20
|
-
}
|
|
21
|
-
export declare enum ProcessType {
|
|
22
|
-
'Raw' = 0,
|
|
23
|
-
'Terminal' = 1
|
|
24
|
-
}
|
|
4
|
+
import { IProcessStartEvent, IProcessExitEvent, ProcessErrorEvent, ProcessType, ManagedProcessManager, ManagedProcess } from '../common/process-manager-types';
|
|
5
|
+
export { IProcessStartEvent, IProcessExitEvent, ProcessErrorEvent, ProcessType };
|
|
25
6
|
/**
|
|
26
7
|
* Options to spawn a new process (`spawn`).
|
|
27
8
|
*
|
|
@@ -50,8 +31,8 @@ export interface ForkOptions {
|
|
|
50
31
|
args?: string[];
|
|
51
32
|
options?: object;
|
|
52
33
|
}
|
|
53
|
-
export declare abstract class Process {
|
|
54
|
-
protected readonly processManager:
|
|
34
|
+
export declare abstract class Process implements ManagedProcess {
|
|
35
|
+
protected readonly processManager: ManagedProcessManager;
|
|
55
36
|
protected readonly logger: ILogger;
|
|
56
37
|
protected readonly type: ProcessType;
|
|
57
38
|
protected readonly options: ProcessOptions | ForkOptions;
|
|
@@ -77,7 +58,7 @@ export declare abstract class Process {
|
|
|
77
58
|
* The stdin stream.
|
|
78
59
|
*/
|
|
79
60
|
abstract readonly inputStream: Writable;
|
|
80
|
-
constructor(processManager:
|
|
61
|
+
constructor(processManager: ManagedProcessManager, logger: ILogger, type: ProcessType, options: ProcessOptions | ForkOptions);
|
|
81
62
|
abstract kill(signal?: string): void;
|
|
82
63
|
get killed(): boolean;
|
|
83
64
|
get onStart(): Event<IProcessStartEvent>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/node/process.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/node/process.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC/J,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE;QAEN,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACrB,CAAA;CACJ;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,8BACsB,OAAQ,YAAW,cAAc;IA8B/C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB;IACxD,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;IACrB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW;IACjD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,WAAW;IA/B5D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAqC;IACjG,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAoC;IAC9F,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAoC;IAC/F,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAoC;IAC/F,SAAS,CAAC,OAAO,UAAS;IAE1B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;gBAGjB,cAAc,EAAE,qBAAqB,EACrC,MAAM,EAAE,OAAO,EACF,IAAI,EAAE,WAAW,EAC9B,OAAO,EAAE,cAAc,GAAG,WAAW;IAM5D,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAEpC,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAEvC;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAErC;IAED,IAAI,OAAO,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAEtC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAEtC;IAED,SAAS,CAAC,aAAa,IAAI,IAAI;IAI/B;;;OAGG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAM1D;;;OAGG;IACH,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3D,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAStD,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;cAKnC,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzE,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKvD,SAAS,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,WAAW;IAIjE,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAEtC;;OAEG;IACI,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CA2BtC"}
|
package/lib/node/process.js
CHANGED
|
@@ -29,17 +29,13 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
29
29
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
30
|
exports.Process = exports.ProcessType = void 0;
|
|
31
31
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
32
|
-
const process_manager_1 = require("./process-manager");
|
|
33
32
|
const common_1 = require("@theia/core/lib/common");
|
|
34
33
|
const node_1 = require("@theia/core/lib/node");
|
|
35
34
|
const core_1 = require("@theia/core");
|
|
36
35
|
const child_process_1 = require("child_process");
|
|
37
36
|
const fs = require("fs");
|
|
38
|
-
|
|
39
|
-
(function (
|
|
40
|
-
ProcessType[ProcessType["Raw"] = 0] = "Raw";
|
|
41
|
-
ProcessType[ProcessType["Terminal"] = 1] = "Terminal";
|
|
42
|
-
})(ProcessType = exports.ProcessType || (exports.ProcessType = {}));
|
|
37
|
+
const process_manager_types_1 = require("../common/process-manager-types");
|
|
38
|
+
Object.defineProperty(exports, "ProcessType", { enumerable: true, get: function () { return process_manager_types_1.ProcessType; } });
|
|
43
39
|
let Process = class Process {
|
|
44
40
|
constructor(processManager, logger, type, options) {
|
|
45
41
|
this.processManager = processManager;
|
|
@@ -152,7 +148,7 @@ let Process = class Process {
|
|
|
152
148
|
Process = __decorate([
|
|
153
149
|
(0, inversify_1.injectable)(),
|
|
154
150
|
__param(2, (0, inversify_1.unmanaged)()),
|
|
155
|
-
__metadata("design:paramtypes", [
|
|
151
|
+
__metadata("design:paramtypes", [Object, Object, Number, Object])
|
|
156
152
|
], Process);
|
|
157
153
|
exports.Process = Process;
|
|
158
154
|
//# sourceMappingURL=process.js.map
|
package/lib/node/process.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/node/process.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;;;;AAEhF,4DAAqE;AACrE,
|
|
1
|
+
{"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/node/process.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/process",
|
|
3
|
-
"version": "1.32.0
|
|
3
|
+
"version": "1.32.0",
|
|
4
4
|
"description": "Theia process support.",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.32.0
|
|
6
|
+
"@theia/core": "1.32.0",
|
|
7
7
|
"node-pty": "0.11.0-beta17",
|
|
8
8
|
"string-argv": "^0.1.1"
|
|
9
9
|
},
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"watch": "theiaext watch"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@theia/ext-scripts": "1.
|
|
47
|
+
"@theia/ext-scripts": "1.32.0"
|
|
48
48
|
},
|
|
49
49
|
"nyc": {
|
|
50
50
|
"extends": "../../configs/nyc.json"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "789d0148748b4dc9dea398520b5a3dd2998d71ec"
|
|
53
53
|
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2022 Ericsson and others.
|
|
3
|
+
//
|
|
4
|
+
// This program and the accompanying materials are made available under the
|
|
5
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
//
|
|
8
|
+
// This Source Code may also be made available under the following Secondary
|
|
9
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
// with the GNU Classpath Exception which is available at
|
|
12
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
//
|
|
14
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
// *****************************************************************************
|
|
16
|
+
|
|
17
|
+
import { Event } from '@theia/core';
|
|
18
|
+
|
|
19
|
+
export interface ManagedProcessManager {
|
|
20
|
+
register(process: ManagedProcess): number;
|
|
21
|
+
unregister(process: ManagedProcess): void;
|
|
22
|
+
get(id: number): ManagedProcess | undefined;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export interface ManagedProcess {
|
|
26
|
+
readonly id: number;
|
|
27
|
+
readonly onStart: Event<IProcessStartEvent>;
|
|
28
|
+
readonly onExit: Event<IProcessExitEvent>;
|
|
29
|
+
readonly onClose: Event<IProcessExitEvent>;
|
|
30
|
+
readonly onError: Event<ProcessErrorEvent>;
|
|
31
|
+
readonly killed: boolean;
|
|
32
|
+
kill(): void;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface IProcessExitEvent {
|
|
36
|
+
// Exactly one of code and signal will be set.
|
|
37
|
+
readonly code?: number,
|
|
38
|
+
readonly signal?: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Data emitted when a process has been successfully started.
|
|
43
|
+
*/
|
|
44
|
+
export interface IProcessStartEvent {
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Data emitted when a process has failed to start.
|
|
49
|
+
*/
|
|
50
|
+
export interface ProcessErrorEvent extends Error {
|
|
51
|
+
/** An errno-like error string (e.g. ENOENT). */
|
|
52
|
+
code: string;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export enum ProcessType {
|
|
56
|
+
'Raw',
|
|
57
|
+
'Terminal'
|
|
58
|
+
}
|
|
@@ -14,14 +14,15 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
import { injectable, inject, named } from '@theia/core/shared/inversify';
|
|
17
|
-
import { Process } from './process';
|
|
18
17
|
import { Emitter, Event } from '@theia/core/lib/common';
|
|
19
18
|
import { ILogger } from '@theia/core/lib/common/logger';
|
|
20
19
|
import { BackendApplicationContribution } from '@theia/core/lib/node';
|
|
20
|
+
import { ManagedProcessManager, ManagedProcess } from '../common/process-manager-types';
|
|
21
21
|
import { MAX_SAFE_INTEGER } from '@theia/core/lib/common/numbers';
|
|
22
|
+
import { Process } from './process';
|
|
22
23
|
|
|
23
24
|
@injectable()
|
|
24
|
-
export class ProcessManager implements BackendApplicationContribution {
|
|
25
|
+
export class ProcessManager implements ManagedProcessManager, BackendApplicationContribution {
|
|
25
26
|
|
|
26
27
|
protected readonly processes: Map<number, Process>;
|
|
27
28
|
protected readonly deleteEmitter: Emitter<number>;
|
|
@@ -66,7 +67,7 @@ export class ProcessManager implements BackendApplicationContribution {
|
|
|
66
67
|
*
|
|
67
68
|
* @param process the process to unregister from this process manager.
|
|
68
69
|
*/
|
|
69
|
-
unregister(process:
|
|
70
|
+
unregister(process: ManagedProcess): void {
|
|
70
71
|
const processLabel = this.getProcessLabel(process);
|
|
71
72
|
this.logger.debug(`Unregistering process. ${processLabel}`);
|
|
72
73
|
if (!process.killed) {
|
|
@@ -81,7 +82,7 @@ export class ProcessManager implements BackendApplicationContribution {
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
|
|
84
|
-
get(id: number):
|
|
85
|
+
get(id: number): ManagedProcess | undefined {
|
|
85
86
|
return this.processes.get(id);
|
|
86
87
|
}
|
|
87
88
|
|
|
@@ -99,7 +100,7 @@ export class ProcessManager implements BackendApplicationContribution {
|
|
|
99
100
|
}
|
|
100
101
|
}
|
|
101
102
|
|
|
102
|
-
private getProcessLabel(process:
|
|
103
|
+
private getProcessLabel(process: ManagedProcess): string {
|
|
103
104
|
return `[ID: ${process.id}]`;
|
|
104
105
|
}
|
|
105
106
|
|
package/src/node/process.ts
CHANGED
|
@@ -15,38 +15,14 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, unmanaged } from '@theia/core/shared/inversify';
|
|
18
|
-
import { ProcessManager } from './process-manager';
|
|
19
18
|
import { ILogger, Emitter, Event } from '@theia/core/lib/common';
|
|
20
19
|
import { FileUri } from '@theia/core/lib/node';
|
|
21
20
|
import { isOSX, isWindows } from '@theia/core';
|
|
22
21
|
import { Readable, Writable } from 'stream';
|
|
23
22
|
import { exec } from 'child_process';
|
|
24
23
|
import * as fs from 'fs';
|
|
25
|
-
|
|
26
|
-
export
|
|
27
|
-
// Exactly one of code and signal will be set.
|
|
28
|
-
readonly code?: number,
|
|
29
|
-
readonly signal?: string
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Data emitted when a process has been successfully started.
|
|
34
|
-
*/
|
|
35
|
-
export interface IProcessStartEvent {
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Data emitted when a process has failed to start.
|
|
40
|
-
*/
|
|
41
|
-
export interface ProcessErrorEvent extends Error {
|
|
42
|
-
/** An errno-like error string (e.g. ENOENT). */
|
|
43
|
-
code: string;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export enum ProcessType {
|
|
47
|
-
'Raw',
|
|
48
|
-
'Terminal'
|
|
49
|
-
}
|
|
24
|
+
import { IProcessStartEvent, IProcessExitEvent, ProcessErrorEvent, ProcessType, ManagedProcessManager, ManagedProcess } from '../common/process-manager-types';
|
|
25
|
+
export { IProcessStartEvent, IProcessExitEvent, ProcessErrorEvent, ProcessType };
|
|
50
26
|
|
|
51
27
|
/**
|
|
52
28
|
* Options to spawn a new process (`spawn`).
|
|
@@ -80,7 +56,7 @@ export interface ForkOptions {
|
|
|
80
56
|
}
|
|
81
57
|
|
|
82
58
|
@injectable()
|
|
83
|
-
export abstract class Process {
|
|
59
|
+
export abstract class Process implements ManagedProcess {
|
|
84
60
|
|
|
85
61
|
readonly id: number;
|
|
86
62
|
protected readonly startEmitter: Emitter<IProcessStartEvent> = new Emitter<IProcessStartEvent>();
|
|
@@ -110,7 +86,7 @@ export abstract class Process {
|
|
|
110
86
|
abstract readonly inputStream: Writable;
|
|
111
87
|
|
|
112
88
|
constructor(
|
|
113
|
-
protected readonly processManager:
|
|
89
|
+
protected readonly processManager: ManagedProcessManager,
|
|
114
90
|
protected readonly logger: ILogger,
|
|
115
91
|
@unmanaged() protected readonly type: ProcessType,
|
|
116
92
|
protected readonly options: ProcessOptions | ForkOptions
|