From 39a3783ebdc81f7b4652deec4ce5b7f2af34be7f Mon Sep 17 00:00:00 2001 From: iamBadgers Date: Thu, 12 Jun 2025 19:28:42 -0700 Subject: [PATCH] add reflection service to valut --- vault/Dockerfile | 2 - vault/character.ts | 561 ++++++++++++++++++++------------- vault/package-lock.json | 15 + vault/package.json | 4 +- vault/src/character_service.ts | 39 ++- 5 files changed, 383 insertions(+), 238 deletions(-) diff --git a/vault/Dockerfile b/vault/Dockerfile index 47730d8..1154883 100644 --- a/vault/Dockerfile +++ b/vault/Dockerfile @@ -3,8 +3,6 @@ FROM node:22.16 WORKDIR /srv/proto COPY proto/ . -# RUN npm install -# RUN npm run build WORKDIR /srv/vault diff --git a/vault/character.ts b/vault/character.ts index 3099c45..b3f9c0c 100644 --- a/vault/character.ts +++ b/vault/character.ts @@ -3,258 +3,371 @@ * compiler version: 3.20.3 * source: character.proto * git: https://github.com/thesayyn/protoc-gen-ts */ -import * as pb_1 from "google-protobuf"; -import * as grpc_1 from "@grpc/grpc-js"; +import * as pb_1 from 'google-protobuf' +import * as grpc_1 from '@grpc/grpc-js' export class Character extends pb_1.Message { - #one_of_decls: number[][] = []; - constructor(data?: any[] | { - PlayerName?: string; - CharacterName?: string; - CharacterAlias?: string[]; - }) { - super(); - pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [3], this.#one_of_decls); - if (!Array.isArray(data) && typeof data == "object") { - if ("PlayerName" in data && data.PlayerName != undefined) { - this.PlayerName = data.PlayerName; - } - if ("CharacterName" in data && data.CharacterName != undefined) { - this.CharacterName = data.CharacterName; - } - if ("CharacterAlias" in data && data.CharacterAlias != undefined) { - this.CharacterAlias = data.CharacterAlias; - } - } + #one_of_decls: number[][] = [] + constructor( + data?: + | any[] + | { + PlayerName?: string + CharacterName?: string + CharacterAlias?: string[] + }, + ) { + super() + pb_1.Message.initialize( + this, + Array.isArray(data) ? data : [], + 0, + -1, + [3], + this.#one_of_decls, + ) + if (!Array.isArray(data) && typeof data == 'object') { + if ('PlayerName' in data && data.PlayerName != undefined) { + this.PlayerName = data.PlayerName + } + if ('CharacterName' in data && data.CharacterName != undefined) { + this.CharacterName = data.CharacterName + } + if ('CharacterAlias' in data && data.CharacterAlias != undefined) { + this.CharacterAlias = data.CharacterAlias + } } - get PlayerName() { - return pb_1.Message.getFieldWithDefault(this, 1, "") as string; + } + get PlayerName() { + return pb_1.Message.getFieldWithDefault(this, 1, '') as string + } + set PlayerName(value: string) { + pb_1.Message.setField(this, 1, value) + } + get CharacterName() { + return pb_1.Message.getFieldWithDefault(this, 2, '') as string + } + set CharacterName(value: string) { + pb_1.Message.setField(this, 2, value) + } + get CharacterAlias() { + return pb_1.Message.getFieldWithDefault(this, 3, []) as string[] + } + set CharacterAlias(value: string[]) { + pb_1.Message.setField(this, 3, value) + } + static fromObject(data: { + PlayerName?: string + CharacterName?: string + CharacterAlias?: string[] + }): Character { + const message = new Character({}) + if (data.PlayerName != null) { + message.PlayerName = data.PlayerName } - set PlayerName(value: string) { - pb_1.Message.setField(this, 1, value); + if (data.CharacterName != null) { + message.CharacterName = data.CharacterName } - get CharacterName() { - return pb_1.Message.getFieldWithDefault(this, 2, "") as string; + if (data.CharacterAlias != null) { + message.CharacterAlias = data.CharacterAlias } - set CharacterName(value: string) { - pb_1.Message.setField(this, 2, value); + return message + } + toObject() { + const data: { + PlayerName?: string + CharacterName?: string + CharacterAlias?: string[] + } = {} + if (this.PlayerName != null) { + data.PlayerName = this.PlayerName } - get CharacterAlias() { - return pb_1.Message.getFieldWithDefault(this, 3, []) as string[]; + if (this.CharacterName != null) { + data.CharacterName = this.CharacterName } - set CharacterAlias(value: string[]) { - pb_1.Message.setField(this, 3, value); + if (this.CharacterAlias != null) { + data.CharacterAlias = this.CharacterAlias } - static fromObject(data: { - PlayerName?: string; - CharacterName?: string; - CharacterAlias?: string[]; - }): Character { - const message = new Character({}); - if (data.PlayerName != null) { - message.PlayerName = data.PlayerName; - } - if (data.CharacterName != null) { - message.CharacterName = data.CharacterName; - } - if (data.CharacterAlias != null) { - message.CharacterAlias = data.CharacterAlias; - } - return message; - } - toObject() { - const data: { - PlayerName?: string; - CharacterName?: string; - CharacterAlias?: string[]; - } = {}; - if (this.PlayerName != null) { - data.PlayerName = this.PlayerName; - } - if (this.CharacterName != null) { - data.CharacterName = this.CharacterName; - } - if (this.CharacterAlias != null) { - data.CharacterAlias = this.CharacterAlias; - } - return data; - } - serialize(): Uint8Array; - serialize(w: pb_1.BinaryWriter): void; - serialize(w?: pb_1.BinaryWriter): Uint8Array | void { - const writer = w || new pb_1.BinaryWriter(); - if (this.PlayerName.length) - writer.writeString(1, this.PlayerName); - if (this.CharacterName.length) - writer.writeString(2, this.CharacterName); - if (this.CharacterAlias.length) - writer.writeRepeatedString(3, this.CharacterAlias); - if (!w) - return writer.getResultBuffer(); - } - static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Character { - const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new Character(); - while (reader.nextField()) { - if (reader.isEndGroup()) - break; - switch (reader.getFieldNumber()) { - case 1: - message.PlayerName = reader.readString(); - break; - case 2: - message.CharacterName = reader.readString(); - break; - case 3: - pb_1.Message.addToRepeatedField(message, 3, reader.readString()); - break; - default: reader.skipField(); - } - } - return message; - } - serializeBinary(): Uint8Array { - return this.serialize(); - } - static deserializeBinary(bytes: Uint8Array): Character { - return Character.deserialize(bytes); + return data + } + serialize(): Uint8Array + serialize(w: pb_1.BinaryWriter): void + serialize(w?: pb_1.BinaryWriter): Uint8Array | void { + const writer = w || new pb_1.BinaryWriter() + if (this.PlayerName.length) writer.writeString(1, this.PlayerName) + if (this.CharacterName.length) writer.writeString(2, this.CharacterName) + if (this.CharacterAlias.length) + writer.writeRepeatedString(3, this.CharacterAlias) + if (!w) return writer.getResultBuffer() + } + static deserialize(bytes: Uint8Array | pb_1.BinaryReader): Character { + const reader = + bytes instanceof pb_1.BinaryReader + ? bytes + : new pb_1.BinaryReader(bytes), + message = new Character() + while (reader.nextField()) { + if (reader.isEndGroup()) break + switch (reader.getFieldNumber()) { + case 1: + message.PlayerName = reader.readString() + break + case 2: + message.CharacterName = reader.readString() + break + case 3: + pb_1.Message.addToRepeatedField(message, 3, reader.readString()) + break + default: + reader.skipField() + } } + return message + } + serializeBinary(): Uint8Array { + return this.serialize() + } + static deserializeBinary(bytes: Uint8Array): Character { + return Character.deserialize(bytes) + } } export class CreateCharacterRequest extends pb_1.Message { - #one_of_decls: number[][] = []; - constructor(data?: any[] | {}) { - super(); - pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); - if (!Array.isArray(data) && typeof data == "object") { } + #one_of_decls: number[][] = [] + constructor(data?: any[] | {}) { + super() + pb_1.Message.initialize( + this, + Array.isArray(data) ? data : [], + 0, + -1, + [], + this.#one_of_decls, + ) + if (!Array.isArray(data) && typeof data == 'object') { } - static fromObject(data: {}): CreateCharacterRequest { - const message = new CreateCharacterRequest({}); - return message; - } - toObject() { - const data: {} = {}; - return data; - } - serialize(): Uint8Array; - serialize(w: pb_1.BinaryWriter): void; - serialize(w?: pb_1.BinaryWriter): Uint8Array | void { - const writer = w || new pb_1.BinaryWriter(); - if (!w) - return writer.getResultBuffer(); - } - static deserialize(bytes: Uint8Array | pb_1.BinaryReader): CreateCharacterRequest { - const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new CreateCharacterRequest(); - while (reader.nextField()) { - if (reader.isEndGroup()) - break; - switch (reader.getFieldNumber()) { - default: reader.skipField(); - } - } - return message; - } - serializeBinary(): Uint8Array { - return this.serialize(); - } - static deserializeBinary(bytes: Uint8Array): CreateCharacterRequest { - return CreateCharacterRequest.deserialize(bytes); + } + static fromObject(data: {}): CreateCharacterRequest { + const message = new CreateCharacterRequest({}) + return message + } + toObject() { + const data: {} = {} + return data + } + serialize(): Uint8Array + serialize(w: pb_1.BinaryWriter): void + serialize(w?: pb_1.BinaryWriter): Uint8Array | void { + const writer = w || new pb_1.BinaryWriter() + if (!w) return writer.getResultBuffer() + } + static deserialize( + bytes: Uint8Array | pb_1.BinaryReader, + ): CreateCharacterRequest { + const reader = + bytes instanceof pb_1.BinaryReader + ? bytes + : new pb_1.BinaryReader(bytes), + message = new CreateCharacterRequest() + while (reader.nextField()) { + if (reader.isEndGroup()) break + switch (reader.getFieldNumber()) { + default: + reader.skipField() + } } + return message + } + serializeBinary(): Uint8Array { + return this.serialize() + } + static deserializeBinary(bytes: Uint8Array): CreateCharacterRequest { + return CreateCharacterRequest.deserialize(bytes) + } } export class GetCharacterRequest extends pb_1.Message { - #one_of_decls: number[][] = []; - constructor(data?: any[] | {}) { - super(); - pb_1.Message.initialize(this, Array.isArray(data) ? data : [], 0, -1, [], this.#one_of_decls); - if (!Array.isArray(data) && typeof data == "object") { } + #one_of_decls: number[][] = [] + constructor(data?: any[] | {}) { + super() + pb_1.Message.initialize( + this, + Array.isArray(data) ? data : [], + 0, + -1, + [], + this.#one_of_decls, + ) + if (!Array.isArray(data) && typeof data == 'object') { } - static fromObject(data: {}): GetCharacterRequest { - const message = new GetCharacterRequest({}); - return message; - } - toObject() { - const data: {} = {}; - return data; - } - serialize(): Uint8Array; - serialize(w: pb_1.BinaryWriter): void; - serialize(w?: pb_1.BinaryWriter): Uint8Array | void { - const writer = w || new pb_1.BinaryWriter(); - if (!w) - return writer.getResultBuffer(); - } - static deserialize(bytes: Uint8Array | pb_1.BinaryReader): GetCharacterRequest { - const reader = bytes instanceof pb_1.BinaryReader ? bytes : new pb_1.BinaryReader(bytes), message = new GetCharacterRequest(); - while (reader.nextField()) { - if (reader.isEndGroup()) - break; - switch (reader.getFieldNumber()) { - default: reader.skipField(); - } - } - return message; - } - serializeBinary(): Uint8Array { - return this.serialize(); - } - static deserializeBinary(bytes: Uint8Array): GetCharacterRequest { - return GetCharacterRequest.deserialize(bytes); + } + static fromObject(data: {}): GetCharacterRequest { + const message = new GetCharacterRequest({}) + return message + } + toObject() { + const data: {} = {} + return data + } + serialize(): Uint8Array + serialize(w: pb_1.BinaryWriter): void + serialize(w?: pb_1.BinaryWriter): Uint8Array | void { + const writer = w || new pb_1.BinaryWriter() + if (!w) return writer.getResultBuffer() + } + static deserialize( + bytes: Uint8Array | pb_1.BinaryReader, + ): GetCharacterRequest { + const reader = + bytes instanceof pb_1.BinaryReader + ? bytes + : new pb_1.BinaryReader(bytes), + message = new GetCharacterRequest() + while (reader.nextField()) { + if (reader.isEndGroup()) break + switch (reader.getFieldNumber()) { + default: + reader.skipField() + } } + return message + } + serializeBinary(): Uint8Array { + return this.serialize() + } + static deserializeBinary(bytes: Uint8Array): GetCharacterRequest { + return GetCharacterRequest.deserialize(bytes) + } } interface GrpcUnaryServiceInterface { - (message: P, metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback): grpc_1.ClientUnaryCall; - (message: P, metadata: grpc_1.Metadata, callback: grpc_1.requestCallback): grpc_1.ClientUnaryCall; - (message: P, options: grpc_1.CallOptions, callback: grpc_1.requestCallback): grpc_1.ClientUnaryCall; - (message: P, callback: grpc_1.requestCallback): grpc_1.ClientUnaryCall; + ( + message: P, + metadata: grpc_1.Metadata, + options: grpc_1.CallOptions, + callback: grpc_1.requestCallback, + ): grpc_1.ClientUnaryCall + ( + message: P, + metadata: grpc_1.Metadata, + callback: grpc_1.requestCallback, + ): grpc_1.ClientUnaryCall + ( + message: P, + options: grpc_1.CallOptions, + callback: grpc_1.requestCallback, + ): grpc_1.ClientUnaryCall + (message: P, callback: grpc_1.requestCallback): grpc_1.ClientUnaryCall } interface GrpcStreamServiceInterface { - (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream; - (message: P, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream; + ( + message: P, + metadata: grpc_1.Metadata, + options?: grpc_1.CallOptions, + ): grpc_1.ClientReadableStream + (message: P, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream } interface GrpWritableServiceInterface { - (metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback): grpc_1.ClientWritableStream

; - (metadata: grpc_1.Metadata, callback: grpc_1.requestCallback): grpc_1.ClientWritableStream

; - (options: grpc_1.CallOptions, callback: grpc_1.requestCallback): grpc_1.ClientWritableStream

; - (callback: grpc_1.requestCallback): grpc_1.ClientWritableStream

; + ( + metadata: grpc_1.Metadata, + options: grpc_1.CallOptions, + callback: grpc_1.requestCallback, + ): grpc_1.ClientWritableStream

+ ( + metadata: grpc_1.Metadata, + callback: grpc_1.requestCallback, + ): grpc_1.ClientWritableStream

+ ( + options: grpc_1.CallOptions, + callback: grpc_1.requestCallback, + ): grpc_1.ClientWritableStream

+ (callback: grpc_1.requestCallback): grpc_1.ClientWritableStream

} interface GrpcChunkServiceInterface { - (metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream; - (options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream; + ( + metadata: grpc_1.Metadata, + options?: grpc_1.CallOptions, + ): grpc_1.ClientDuplexStream + (options?: grpc_1.CallOptions): grpc_1.ClientDuplexStream } interface GrpcPromiseServiceInterface { - (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): Promise; - (message: P, options?: grpc_1.CallOptions): Promise; + ( + message: P, + metadata: grpc_1.Metadata, + options?: grpc_1.CallOptions, + ): Promise + (message: P, options?: grpc_1.CallOptions): Promise } export abstract class UnimplementedCharacterManagerService { - static definition = { - createCharacter: { - path: "/CharacterManager/createCharacter", - requestStream: false, - responseStream: false, - requestSerialize: (message: CreateCharacterRequest) => Buffer.from(message.serialize()), - requestDeserialize: (bytes: Buffer) => CreateCharacterRequest.deserialize(new Uint8Array(bytes)), - responseSerialize: (message: Character) => Buffer.from(message.serialize()), - responseDeserialize: (bytes: Buffer) => Character.deserialize(new Uint8Array(bytes)) - }, - getCharacter: { - path: "/CharacterManager/getCharacter", - requestStream: false, - responseStream: false, - requestSerialize: (message: GetCharacterRequest) => Buffer.from(message.serialize()), - requestDeserialize: (bytes: Buffer) => GetCharacterRequest.deserialize(new Uint8Array(bytes)), - responseSerialize: (message: Character) => Buffer.from(message.serialize()), - responseDeserialize: (bytes: Buffer) => Character.deserialize(new Uint8Array(bytes)) - } - }; - [method: string]: grpc_1.UntypedHandleCall; - abstract createCharacter(call: grpc_1.ServerUnaryCall, callback: grpc_1.sendUnaryData): void; - abstract getCharacter(call: grpc_1.ServerUnaryCall, callback: grpc_1.sendUnaryData): void; + static definition = { + createCharacter: { + path: '/CharacterManager/createCharacter', + requestStream: false, + responseStream: false, + requestSerialize: (message: CreateCharacterRequest) => + Buffer.from(message.serialize()), + requestDeserialize: (bytes: Buffer) => + CreateCharacterRequest.deserialize(new Uint8Array(bytes)), + responseSerialize: (message: Character) => + Buffer.from(message.serialize()), + responseDeserialize: (bytes: Buffer) => + Character.deserialize(new Uint8Array(bytes)), + }, + getCharacter: { + path: '/CharacterManager/getCharacter', + requestStream: false, + responseStream: false, + requestSerialize: (message: GetCharacterRequest) => + Buffer.from(message.serialize()), + requestDeserialize: (bytes: Buffer) => + GetCharacterRequest.deserialize(new Uint8Array(bytes)), + responseSerialize: (message: Character) => + Buffer.from(message.serialize()), + responseDeserialize: (bytes: Buffer) => + Character.deserialize(new Uint8Array(bytes)), + }, + }; + [method: string]: grpc_1.UntypedHandleCall + abstract createCharacter( + call: grpc_1.ServerUnaryCall, + callback: grpc_1.sendUnaryData, + ): void + abstract getCharacter( + call: grpc_1.ServerUnaryCall, + callback: grpc_1.sendUnaryData, + ): void } -export class CharacterManagerClient extends grpc_1.makeGenericClientConstructor(UnimplementedCharacterManagerService.definition, "CharacterManager", {}) { - constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial) { - super(address, credentials, options); - } - createCharacter: GrpcUnaryServiceInterface = (message: CreateCharacterRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback, options?: grpc_1.CallOptions | grpc_1.requestCallback, callback?: grpc_1.requestCallback): grpc_1.ClientUnaryCall => { - return super.createCharacter(message, metadata, options, callback); - }; - getCharacter: GrpcUnaryServiceInterface = (message: GetCharacterRequest, metadata: grpc_1.Metadata | grpc_1.CallOptions | grpc_1.requestCallback, options?: grpc_1.CallOptions | grpc_1.requestCallback, callback?: grpc_1.requestCallback): grpc_1.ClientUnaryCall => { - return super.getCharacter(message, metadata, options, callback); - }; +export class CharacterManagerClient extends grpc_1.makeGenericClientConstructor( + UnimplementedCharacterManagerService.definition, + 'CharacterManager', + {}, +) { + constructor( + address: string, + credentials: grpc_1.ChannelCredentials, + options?: Partial, + ) { + super(address, credentials, options) + } + createCharacter: GrpcUnaryServiceInterface< + CreateCharacterRequest, + Character + > = ( + message: CreateCharacterRequest, + metadata: + | grpc_1.Metadata + | grpc_1.CallOptions + | grpc_1.requestCallback, + options?: grpc_1.CallOptions | grpc_1.requestCallback, + callback?: grpc_1.requestCallback, + ): grpc_1.ClientUnaryCall => { + return super.createCharacter(message, metadata, options, callback) + } + getCharacter: GrpcUnaryServiceInterface = ( + message: GetCharacterRequest, + metadata: + | grpc_1.Metadata + | grpc_1.CallOptions + | grpc_1.requestCallback, + options?: grpc_1.CallOptions | grpc_1.requestCallback, + callback?: grpc_1.requestCallback, + ): grpc_1.ClientUnaryCall => { + return super.getCharacter(message, metadata, options, callback) + } } diff --git a/vault/package-lock.json b/vault/package-lock.json index 4e9b8a5..36bd090 100644 --- a/vault/package-lock.json +++ b/vault/package-lock.json @@ -10,6 +10,8 @@ "license": "ISC", "dependencies": { "@grpc/grpc-js": "^1.13.4", + "@grpc/proto-loader": "^0.7.15", + "@grpc/reflection": "^1.0.4", "@protobuf-ts/protoc": "^2.11.0", "express": "^5.1.0", "google-protobuf": "^3.21.4", @@ -260,6 +262,19 @@ "node": ">=6" } }, + "node_modules/@grpc/reflection": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@grpc/reflection/-/reflection-1.0.4.tgz", + "integrity": "sha512-znA8v4AviOD3OPOxy11pxrtP8k8DanpefeTymS8iGW1fVr1U2cHuzfhYqDPHnVNDf4qvF9E25KtSihPy2DBWfQ==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.7.13", + "protobufjs": "^7.2.5" + }, + "peerDependencies": { + "@grpc/grpc-js": "^1.8.21" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", diff --git a/vault/package.json b/vault/package.json index 4c8b588..6a581e6 100644 --- a/vault/package.json +++ b/vault/package.json @@ -4,7 +4,7 @@ "description": "backend for rush cahracter archive", "main": "index.js", "scripts": { - "build_protos": "mkdir -p src/proto & npx protoc -I=../proto/ --ts_out=server_grpc1:./src/proto --proto_path ../proto ../proto/*.proto", + "build_protos": "mkdir -p src/proto && npx protoc -I=../proto/ --ts_out=server_grpc1:./src/proto --proto_path ../proto ../proto/*.proto && cp ../proto/*.proto ./src/proto", "build": "tsc", "start": "tsc && node dist/app.js", "dev": "npx ts-node-dev src/app.ts", @@ -29,6 +29,8 @@ }, "dependencies": { "@grpc/grpc-js": "^1.13.4", + "@grpc/proto-loader": "^0.7.15", + "@grpc/reflection": "^1.0.4", "@protobuf-ts/protoc": "^2.11.0", "express": "^5.1.0", "google-protobuf": "^3.21.4", diff --git a/vault/src/character_service.ts b/vault/src/character_service.ts index c24a15e..91eecef 100644 --- a/vault/src/character_service.ts +++ b/vault/src/character_service.ts @@ -1,4 +1,11 @@ -import { Server, ServerUnaryCall, sendUnaryData } from '@grpc/grpc-js' +import { + Server, + ServerUnaryCall, + sendUnaryData, + loadPackageDefinition, +} from '@grpc/grpc-js' +import { ReflectionService } from '@grpc/reflection' +import { loadSync } from '@grpc/proto-loader' import { Character, @@ -6,35 +13,45 @@ import { CreateCharacterRequest, } from './proto/character' -import { characterManagerDefinition } from "./proto/character.grpc-server" +import { characterManagerDefinition } from './proto/character.grpc-server' export function initCharacterService(server: Server) { server.addService(characterManagerDefinition, { createCharacter: createCharacter_Call, getCharacter: getCharacter_Call, }) + + new ReflectionService(loadSync('./src/proto/character.proto')).addToServer( + server, + ) } -function createCharacter_Call(call: ServerUnaryCall, callback: sendUnaryData) { +function createCharacter_Call( + call: ServerUnaryCall, + callback: sendUnaryData, +) { callback(null, createCharacter(call.request)) } function createCharacter(request: CreateCharacterRequest): Character { - return { - playerName: "test player", - characterName: "test character", - characterAlias: ["test alias"] + return { + playerName: 'test player', + characterName: 'test character', + characterAlias: ['test alias'], } } -function getCharacter_Call(call: ServerUnaryCall, callback: sendUnaryData) { +function getCharacter_Call( + call: ServerUnaryCall, + callback: sendUnaryData, +) { callback(null, getCharacter(call.request)) } function getCharacter(request: GetCharacterRequest): Character { return { - playerName: "test player", - characterName: "test character", - characterAlias: ["test alias"] + playerName: 'test player', + characterName: 'test character', + characterAlias: ['test alias'], } }