Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions eslint.config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ export default tseslint.config(
'node_modules/**',
'dist/**',
'jest.config.js',
'src/protos/**/*.ts',
],
},
// TypeScript configuration for source files (type-aware linting)
Expand Down
183 changes: 161 additions & 22 deletions package-lock.json

Large diffs are not rendered by default.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage",
"fix": "npm run format && npm run lint -- --fix"
"fix": "npm run format && npm run lint -- --fix",
"proto:gen": "./proto-gen.sh"
},
"keywords": [],
"author": "",
Expand Down Expand Up @@ -41,6 +42,8 @@
"typescript-eslint": "^8.38.0"
},
"dependencies": {
"@grpc/grpc-js": "^1.13.4",
"@grpc/proto-loader": "^0.8.0",
"cors": "^2.8.5",
"dotenv": "^17.2.1",
"express": "^5.1.0",
Expand Down
3 changes: 3 additions & 0 deletions proto-gen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

npx proto-loader-gen-types --grpcLib=@grpc/grpc-js --outDir=src/protos/ src/protos/*.proto
25 changes: 25 additions & 0 deletions src/protos/media-signaling.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
syntax = "proto3";

package media_signaling_package;

// Service definition for bidirectional communication
service MediaSignaling {
// Health check
rpc HealthCheck(HealthCheckRequest) returns (HealthCheckResponse);
}


// Health check messages
message HealthCheckRequest {
string service = 1;
}

message HealthCheckResponse {
enum ServingStatus {
UNKNOWN = 0;
SERVING = 1;
NOT_SERVING = 2;
SERVICE_UNKNOWN = 3;
}
ServingStatus status = 1;
}
39 changes: 39 additions & 0 deletions src/protos/media-signaling.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import type * as grpc from '@grpc/grpc-js';
import type { MessageTypeDefinition } from '@grpc/proto-loader';

import type {
HealthCheckRequest as _media_signaling_package_HealthCheckRequest,
HealthCheckRequest__Output as _media_signaling_package_HealthCheckRequest__Output,
} from './media_signaling_package/HealthCheckRequest';
import type {
HealthCheckResponse as _media_signaling_package_HealthCheckResponse,
HealthCheckResponse__Output as _media_signaling_package_HealthCheckResponse__Output,
} from './media_signaling_package/HealthCheckResponse';
import type {
MediaSignalingClient as _media_signaling_package_MediaSignalingClient,
MediaSignalingDefinition as _media_signaling_package_MediaSignalingDefinition,
} from './media_signaling_package/MediaSignaling';

type SubtypeConstructor<
Constructor extends new (...args: any) => any,
Subtype,
> = {
new (...args: ConstructorParameters<Constructor>): Subtype;
};

export interface ProtoGrpcType {
media_signaling_package: {
HealthCheckRequest: MessageTypeDefinition<
_media_signaling_package_HealthCheckRequest,
_media_signaling_package_HealthCheckRequest__Output
>;
HealthCheckResponse: MessageTypeDefinition<
_media_signaling_package_HealthCheckResponse,
_media_signaling_package_HealthCheckResponse__Output
>;
MediaSignaling: SubtypeConstructor<
typeof grpc.Client,
_media_signaling_package_MediaSignalingClient
> & { service: _media_signaling_package_MediaSignalingDefinition };
};
}
10 changes: 10 additions & 0 deletions src/protos/mediaSignalingPackage/HealthCheckRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Original file: src/protos/media-signaling.proto


export interface HealthCheckRequest {
'service'?: (string);
}

export interface HealthCheckRequest__Output {
'service'?: (string);
}
31 changes: 31 additions & 0 deletions src/protos/mediaSignalingPackage/HealthCheckResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Original file: src/protos/media-signaling.proto


// Original file: src/protos/media-signaling.proto

export const _mediaSignalingPackage_HealthCheckResponse_ServingStatus = {
UNKNOWN: 0,
SERVING: 1,
NOT_SERVING: 2,
SERVICE_UNKNOWN: 3,
} as const;

export type _mediaSignalingPackage_HealthCheckResponse_ServingStatus =
| 'UNKNOWN'
| 0
| 'SERVING'
| 1
| 'NOT_SERVING'
| 2
| 'SERVICE_UNKNOWN'
| 3

export type _mediaSignalingPackage_HealthCheckResponse_ServingStatus__Output = typeof _mediaSignalingPackage_HealthCheckResponse_ServingStatus[keyof typeof _mediaSignalingPackage_HealthCheckResponse_ServingStatus]

export interface HealthCheckResponse {
'status'?: (_mediaSignalingPackage_HealthCheckResponse_ServingStatus);
}

export interface HealthCheckResponse__Output {
'status'?: (_mediaSignalingPackage_HealthCheckResponse_ServingStatus__Output);
}
73 changes: 73 additions & 0 deletions src/protos/mediaSignalingPackage/MediaSignalingService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
// Original file: src/protos/media-signaling.proto

import type * as grpc from '@grpc/grpc-js';
import type { MethodDefinition } from '@grpc/proto-loader';
import type {
HealthCheckRequest as _mediaSignalingPackage_HealthCheckRequest,
HealthCheckRequest__Output as _mediaSignalingPackage_HealthCheckRequest__Output,
} from './HealthCheckRequest';
import type {
HealthCheckResponse as _mediaSignalingPackage_HealthCheckResponse,
HealthCheckResponse__Output as _mediaSignalingPackage_HealthCheckResponse__Output,
} from './HealthCheckResponse';

export interface MediaSignalingServiceClient extends grpc.Client {
HealthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
metadata: grpc.Metadata,
options: grpc.CallOptions,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
HealthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
metadata: grpc.Metadata,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
HealthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
options: grpc.CallOptions,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
HealthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
metadata: grpc.Metadata,
options: grpc.CallOptions,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
metadata: grpc.Metadata,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
options: grpc.CallOptions,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _mediaSignalingPackage_HealthCheckRequest,
callback: grpc.requestCallback<_mediaSignalingPackage_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
}

export interface MediaSignalingServiceHandlers
extends grpc.UntypedServiceImplementation {
HealthCheck: grpc.handleUnaryCall<
_mediaSignalingPackage_HealthCheckRequest__Output,
_mediaSignalingPackage_HealthCheckResponse
>;
}

export interface MediaSignalingServiceDefinition
extends grpc.ServiceDefinition {
HealthCheck: MethodDefinition<
_mediaSignalingPackage_HealthCheckRequest,
_mediaSignalingPackage_HealthCheckResponse,
_mediaSignalingPackage_HealthCheckRequest__Output,
_mediaSignalingPackage_HealthCheckResponse__Output
>;
}
10 changes: 10 additions & 0 deletions src/protos/media_signaling_package/HealthCheckRequest.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Original file: src/protos/media-signaling.proto


export interface HealthCheckRequest {
'service'?: (string);
}

export interface HealthCheckRequest__Output {
'service'?: (string);
}
31 changes: 31 additions & 0 deletions src/protos/media_signaling_package/HealthCheckResponse.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
// Original file: src/protos/media-signaling.proto


// Original file: src/protos/media-signaling.proto

export const _media_signaling_package_HealthCheckResponse_ServingStatus = {
UNKNOWN: 0,
SERVING: 1,
NOT_SERVING: 2,
SERVICE_UNKNOWN: 3,
} as const;

export type _media_signaling_package_HealthCheckResponse_ServingStatus =
| 'UNKNOWN'
| 0
| 'SERVING'
| 1
| 'NOT_SERVING'
| 2
| 'SERVICE_UNKNOWN'
| 3

export type _media_signaling_package_HealthCheckResponse_ServingStatus__Output = typeof _media_signaling_package_HealthCheckResponse_ServingStatus[keyof typeof _media_signaling_package_HealthCheckResponse_ServingStatus]

export interface HealthCheckResponse {
'status'?: (_media_signaling_package_HealthCheckResponse_ServingStatus);
}

export interface HealthCheckResponse__Output {
'status'?: (_media_signaling_package_HealthCheckResponse_ServingStatus__Output);
}
72 changes: 72 additions & 0 deletions src/protos/media_signaling_package/MediaSignaling.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
// Original file: src/protos/media-signaling.proto

import type * as grpc from '@grpc/grpc-js';
import type { MethodDefinition } from '@grpc/proto-loader';
import type {
HealthCheckRequest as _media_signaling_package_HealthCheckRequest,
HealthCheckRequest__Output as _media_signaling_package_HealthCheckRequest__Output,
} from './HealthCheckRequest';
import type {
HealthCheckResponse as _media_signaling_package_HealthCheckResponse,
HealthCheckResponse__Output as _media_signaling_package_HealthCheckResponse__Output,
} from './HealthCheckResponse';

export interface MediaSignalingClient extends grpc.Client {
HealthCheck(
argument: _media_signaling_package_HealthCheckRequest,
metadata: grpc.Metadata,
options: grpc.CallOptions,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
HealthCheck(
argument: _media_signaling_package_HealthCheckRequest,
metadata: grpc.Metadata,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
HealthCheck(
argument: _media_signaling_package_HealthCheckRequest,
options: grpc.CallOptions,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
HealthCheck(
argument: _media_signaling_package_HealthCheckRequest,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _media_signaling_package_HealthCheckRequest,
metadata: grpc.Metadata,
options: grpc.CallOptions,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _media_signaling_package_HealthCheckRequest,
metadata: grpc.Metadata,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _media_signaling_package_HealthCheckRequest,
options: grpc.CallOptions,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
healthCheck(
argument: _media_signaling_package_HealthCheckRequest,
callback: grpc.requestCallback<_media_signaling_package_HealthCheckResponse__Output>
): grpc.ClientUnaryCall;
}

export interface MediaSignalingHandlers
extends grpc.UntypedServiceImplementation {
HealthCheck: grpc.handleUnaryCall<
_media_signaling_package_HealthCheckRequest__Output,
_media_signaling_package_HealthCheckResponse
>;
}

export interface MediaSignalingDefinition extends grpc.ServiceDefinition {
HealthCheck: MethodDefinition<
_media_signaling_package_HealthCheckRequest,
_media_signaling_package_HealthCheckResponse,
_media_signaling_package_HealthCheckRequest__Output,
_media_signaling_package_HealthCheckResponse__Output
>;
}
Loading