Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/gitpod-protocol/src/headless-workspace-log.ts
2498 views
1
/**
2
* Copyright (c) 2020 Gitpod GmbH. All rights reserved.
3
* Licensed under the GNU Affero General Public License (AGPL).
4
* See License.AGPL.txt in the project root for license information.
5
*/
6
7
export enum HeadlessWorkspaceEventType {
8
LogOutput = "log-output",
9
FinishedSuccessfully = "finish-success",
10
FinishedButFailed = "finish-fail",
11
AbortedTimedOut = "aborted-timeout",
12
Aborted = "aborted",
13
Failed = "failed",
14
Started = "started",
15
}
16
export namespace HeadlessWorkspaceEventType {
17
export function isRunning(t: HeadlessWorkspaceEventType) {
18
return t === HeadlessWorkspaceEventType.LogOutput;
19
}
20
export function didFinish(t: HeadlessWorkspaceEventType) {
21
return (
22
t === HeadlessWorkspaceEventType.FinishedButFailed || t === HeadlessWorkspaceEventType.FinishedSuccessfully
23
);
24
}
25
}
26
27
export interface HeadlessWorkspaceEvent {
28
workspaceID: string;
29
type: HeadlessWorkspaceEventType;
30
}
31
32
export interface HeadlessLogUrls {
33
// A map of id to URL
34
streams: { [streamID: string]: string };
35
36
// Whether the workspace is online
37
online?: boolean;
38
}
39
40
/** cmp. @const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX */
41
export const HEADLESS_LOG_STREAM_STATUS_CODE = "X-LogStream-StatusCode";
42
export const HEADLESS_LOG_STREAM_STATUS_CODE_REGEX = /X-LogStream-StatusCode: ([0-9]{3})/;
43
44