Bringing over stuff from the test files.
This commit is contained in:
3644
package-lock.json
generated
3644
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
17
src/module.json
Normal file
17
src/module.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"id": "testmodule",
|
||||||
|
"title": "Foundry TS",
|
||||||
|
"description": "A simple module using Typescript",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Josh Matthews",
|
||||||
|
"email": "josh@bringingfire.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": "1.0.0",
|
||||||
|
"compatibility": {
|
||||||
|
"minimum": "9",
|
||||||
|
"verified": "10"
|
||||||
|
},
|
||||||
|
"esmodules": ["scripts/module.js"]
|
||||||
|
}
|
||||||
62
src/proto/character.client.ts
Normal file
62
src/proto/character.client.ts
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
// @generated by protobuf-ts 2.11.0
|
||||||
|
// @generated from protobuf file "character.proto" (syntax proto3)
|
||||||
|
// tslint:disable
|
||||||
|
import type { RpcTransport } from "@protobuf-ts/runtime-rpc";
|
||||||
|
import type { ServiceInfo } from "@protobuf-ts/runtime-rpc";
|
||||||
|
import { CharacterManager } from "./character";
|
||||||
|
import type { ListCharacterResponse } from "./character";
|
||||||
|
import type { ListCharacterRequest } from "./character";
|
||||||
|
import type { GetCharacterRequest } from "./character";
|
||||||
|
import { stackIntercept } from "@protobuf-ts/runtime-rpc";
|
||||||
|
import type { Character } from "./character";
|
||||||
|
import type { CreateCharacterRequest } from "./character";
|
||||||
|
import type { UnaryCall } from "@protobuf-ts/runtime-rpc";
|
||||||
|
import type { RpcOptions } from "@protobuf-ts/runtime-rpc";
|
||||||
|
/**
|
||||||
|
* @generated from protobuf service CharacterManager
|
||||||
|
*/
|
||||||
|
export interface ICharacterManagerClient {
|
||||||
|
/**
|
||||||
|
* @generated from protobuf rpc: createCharacter
|
||||||
|
*/
|
||||||
|
createCharacter(input: CreateCharacterRequest, options?: RpcOptions): UnaryCall<CreateCharacterRequest, Character>;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf rpc: getCharacter
|
||||||
|
*/
|
||||||
|
getCharacter(input: GetCharacterRequest, options?: RpcOptions): UnaryCall<GetCharacterRequest, Character>;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf rpc: listCharacters
|
||||||
|
*/
|
||||||
|
listCharacters(input: ListCharacterRequest, options?: RpcOptions): UnaryCall<ListCharacterRequest, ListCharacterResponse>;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf service CharacterManager
|
||||||
|
*/
|
||||||
|
export class CharacterManagerClient implements ICharacterManagerClient, ServiceInfo {
|
||||||
|
typeName = CharacterManager.typeName;
|
||||||
|
methods = CharacterManager.methods;
|
||||||
|
options = CharacterManager.options;
|
||||||
|
constructor(private readonly _transport: RpcTransport) {
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf rpc: createCharacter
|
||||||
|
*/
|
||||||
|
createCharacter(input: CreateCharacterRequest, options?: RpcOptions): UnaryCall<CreateCharacterRequest, Character> {
|
||||||
|
const method = this.methods[0], opt = this._transport.mergeOptions(options);
|
||||||
|
return stackIntercept<CreateCharacterRequest, Character>("unary", this._transport, method, opt, input);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf rpc: getCharacter
|
||||||
|
*/
|
||||||
|
getCharacter(input: GetCharacterRequest, options?: RpcOptions): UnaryCall<GetCharacterRequest, Character> {
|
||||||
|
const method = this.methods[1], opt = this._transport.mergeOptions(options);
|
||||||
|
return stackIntercept<GetCharacterRequest, Character>("unary", this._transport, method, opt, input);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf rpc: listCharacters
|
||||||
|
*/
|
||||||
|
listCharacters(input: ListCharacterRequest, options?: RpcOptions): UnaryCall<ListCharacterRequest, ListCharacterResponse> {
|
||||||
|
const method = this.methods[2], opt = this._transport.mergeOptions(options);
|
||||||
|
return stackIntercept<ListCharacterRequest, ListCharacterResponse>("unary", this._transport, method, opt, input);
|
||||||
|
}
|
||||||
|
}
|
||||||
402
src/proto/character.ts
Normal file
402
src/proto/character.ts
Normal file
@@ -0,0 +1,402 @@
|
|||||||
|
// @generated by protobuf-ts 2.11.0
|
||||||
|
// @generated from protobuf file "character.proto" (syntax proto3)
|
||||||
|
// tslint:disable
|
||||||
|
import { ServiceType } from "@protobuf-ts/runtime-rpc";
|
||||||
|
import { WireType } from "@protobuf-ts/runtime";
|
||||||
|
import type { BinaryWriteOptions } from "@protobuf-ts/runtime";
|
||||||
|
import type { IBinaryWriter } from "@protobuf-ts/runtime";
|
||||||
|
import type { BinaryReadOptions } from "@protobuf-ts/runtime";
|
||||||
|
import type { IBinaryReader } from "@protobuf-ts/runtime";
|
||||||
|
import { UnknownFieldHandler } from "@protobuf-ts/runtime";
|
||||||
|
import type { PartialMessage } from "@protobuf-ts/runtime";
|
||||||
|
import { reflectionMergePartial } from "@protobuf-ts/runtime";
|
||||||
|
import { MessageType } from "@protobuf-ts/runtime";
|
||||||
|
/**
|
||||||
|
* @generated from protobuf message Empty
|
||||||
|
*/
|
||||||
|
export interface Empty {
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf message Character
|
||||||
|
*/
|
||||||
|
export interface Character {
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string PlayerName = 1
|
||||||
|
*/
|
||||||
|
playerName: string;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string CharacterName = 2
|
||||||
|
*/
|
||||||
|
characterName: string;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: repeated string CharacterAlias = 3
|
||||||
|
*/
|
||||||
|
characterAlias: string[];
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string Version = 4
|
||||||
|
*/
|
||||||
|
version: string;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string SourceTable = 5
|
||||||
|
*/
|
||||||
|
sourceTable: string;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string Json = 6
|
||||||
|
*/
|
||||||
|
json: string;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf message CreateCharacterRequest
|
||||||
|
*/
|
||||||
|
export interface CreateCharacterRequest {
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: Character characterData = 1
|
||||||
|
*/
|
||||||
|
characterData?: Character;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf message GetCharacterRequest
|
||||||
|
*/
|
||||||
|
export interface GetCharacterRequest {
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf message ListCharacterRequest
|
||||||
|
*/
|
||||||
|
export interface ListCharacterRequest {
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string PlayerName = 1
|
||||||
|
*/
|
||||||
|
playerName: string;
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: string CharacterName = 2
|
||||||
|
*/
|
||||||
|
characterName: string;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated from protobuf message ListCharacterResponse
|
||||||
|
*/
|
||||||
|
export interface ListCharacterResponse {
|
||||||
|
/**
|
||||||
|
* @generated from protobuf field: repeated Character characters = 1
|
||||||
|
*/
|
||||||
|
characters: Character[];
|
||||||
|
}
|
||||||
|
// @generated message type with reflection information, may provide speed optimized methods
|
||||||
|
class Empty$Type extends MessageType<Empty> {
|
||||||
|
constructor() {
|
||||||
|
super("Empty", []);
|
||||||
|
}
|
||||||
|
override create(value?: PartialMessage<Empty>): Empty {
|
||||||
|
const message = globalThis.Object.create((this.messagePrototype!));
|
||||||
|
if (value !== undefined)
|
||||||
|
reflectionMergePartial<Empty>(this, message, value);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Empty): Empty {
|
||||||
|
let message = target ?? this.create(), end = reader.pos + length;
|
||||||
|
while (reader.pos < end) {
|
||||||
|
let [fieldNo, wireType] = reader.tag();
|
||||||
|
switch (fieldNo) {
|
||||||
|
default:
|
||||||
|
let u = options.readUnknownField;
|
||||||
|
if (u === "throw")
|
||||||
|
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||||
|
let d = reader.skip(wireType);
|
||||||
|
if (u !== false)
|
||||||
|
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryWrite(message: Empty, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||||
|
let u = options.writeUnknownFields;
|
||||||
|
if (u !== false)
|
||||||
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated MessageType for protobuf message Empty
|
||||||
|
*/
|
||||||
|
export const Empty = new Empty$Type();
|
||||||
|
// @generated message type with reflection information, may provide speed optimized methods
|
||||||
|
class Character$Type extends MessageType<Character> {
|
||||||
|
constructor() {
|
||||||
|
super("Character", [
|
||||||
|
{ no: 1, name: "PlayerName", kind: "scalar", jsonName: "PlayerName", T: 9 /*ScalarType.STRING*/ },
|
||||||
|
{ no: 2, name: "CharacterName", kind: "scalar", jsonName: "CharacterName", T: 9 /*ScalarType.STRING*/ },
|
||||||
|
{ no: 3, name: "CharacterAlias", kind: "scalar", jsonName: "CharacterAlias", repeat: 2 /*RepeatType.UNPACKED*/, T: 9 /*ScalarType.STRING*/ },
|
||||||
|
{ no: 4, name: "Version", kind: "scalar", jsonName: "Version", T: 9 /*ScalarType.STRING*/ },
|
||||||
|
{ no: 5, name: "SourceTable", kind: "scalar", jsonName: "SourceTable", T: 9 /*ScalarType.STRING*/ },
|
||||||
|
{ no: 6, name: "Json", kind: "scalar", jsonName: "Json", T: 9 /*ScalarType.STRING*/ }
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
override create(value?: PartialMessage<Character>): Character {
|
||||||
|
const message = globalThis.Object.create((this.messagePrototype!));
|
||||||
|
message.playerName = "";
|
||||||
|
message.characterName = "";
|
||||||
|
message.characterAlias = [];
|
||||||
|
message.version = "";
|
||||||
|
message.sourceTable = "";
|
||||||
|
message.json = "";
|
||||||
|
if (value !== undefined)
|
||||||
|
reflectionMergePartial<Character>(this, message, value);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Character): Character {
|
||||||
|
let message = target ?? this.create(), end = reader.pos + length;
|
||||||
|
while (reader.pos < end) {
|
||||||
|
let [fieldNo, wireType] = reader.tag();
|
||||||
|
switch (fieldNo) {
|
||||||
|
case /* string PlayerName */ 1:
|
||||||
|
message.playerName = reader.string();
|
||||||
|
break;
|
||||||
|
case /* string CharacterName */ 2:
|
||||||
|
message.characterName = reader.string();
|
||||||
|
break;
|
||||||
|
case /* repeated string CharacterAlias */ 3:
|
||||||
|
message.characterAlias.push(reader.string());
|
||||||
|
break;
|
||||||
|
case /* string Version */ 4:
|
||||||
|
message.version = reader.string();
|
||||||
|
break;
|
||||||
|
case /* string SourceTable */ 5:
|
||||||
|
message.sourceTable = reader.string();
|
||||||
|
break;
|
||||||
|
case /* string Json */ 6:
|
||||||
|
message.json = reader.string();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
let u = options.readUnknownField;
|
||||||
|
if (u === "throw")
|
||||||
|
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||||
|
let d = reader.skip(wireType);
|
||||||
|
if (u !== false)
|
||||||
|
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryWrite(message: Character, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||||
|
/* string PlayerName = 1; */
|
||||||
|
if (message.playerName !== "")
|
||||||
|
writer.tag(1, WireType.LengthDelimited).string(message.playerName);
|
||||||
|
/* string CharacterName = 2; */
|
||||||
|
if (message.characterName !== "")
|
||||||
|
writer.tag(2, WireType.LengthDelimited).string(message.characterName);
|
||||||
|
/* repeated string CharacterAlias = 3; */
|
||||||
|
for (let i = 0; i < message.characterAlias.length; i++)
|
||||||
|
writer.tag(3, WireType.LengthDelimited).string(message.characterAlias[i]);
|
||||||
|
/* string Version = 4; */
|
||||||
|
if (message.version !== "")
|
||||||
|
writer.tag(4, WireType.LengthDelimited).string(message.version);
|
||||||
|
/* string SourceTable = 5; */
|
||||||
|
if (message.sourceTable !== "")
|
||||||
|
writer.tag(5, WireType.LengthDelimited).string(message.sourceTable);
|
||||||
|
/* string Json = 6; */
|
||||||
|
if (message.json !== "")
|
||||||
|
writer.tag(6, WireType.LengthDelimited).string(message.json);
|
||||||
|
let u = options.writeUnknownFields;
|
||||||
|
if (u !== false)
|
||||||
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated MessageType for protobuf message Character
|
||||||
|
*/
|
||||||
|
export const Character = new Character$Type();
|
||||||
|
// @generated message type with reflection information, may provide speed optimized methods
|
||||||
|
class CreateCharacterRequest$Type extends MessageType<CreateCharacterRequest> {
|
||||||
|
constructor() {
|
||||||
|
super("CreateCharacterRequest", [
|
||||||
|
{ no: 1, name: "characterData", kind: "message", T: () => Character }
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
override create(value?: PartialMessage<CreateCharacterRequest>): CreateCharacterRequest {
|
||||||
|
const message = globalThis.Object.create((this.messagePrototype!));
|
||||||
|
if (value !== undefined)
|
||||||
|
reflectionMergePartial<CreateCharacterRequest>(this, message, value);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: CreateCharacterRequest): CreateCharacterRequest {
|
||||||
|
let message = target ?? this.create(), end = reader.pos + length;
|
||||||
|
while (reader.pos < end) {
|
||||||
|
let [fieldNo, wireType] = reader.tag();
|
||||||
|
switch (fieldNo) {
|
||||||
|
case /* Character characterData */ 1:
|
||||||
|
message.characterData = Character.internalBinaryRead(reader, reader.uint32(), options, message.characterData);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
let u = options.readUnknownField;
|
||||||
|
if (u === "throw")
|
||||||
|
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||||
|
let d = reader.skip(wireType);
|
||||||
|
if (u !== false)
|
||||||
|
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryWrite(message: CreateCharacterRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||||
|
/* Character characterData = 1; */
|
||||||
|
if (message.characterData)
|
||||||
|
Character.internalBinaryWrite(message.characterData, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
|
||||||
|
let u = options.writeUnknownFields;
|
||||||
|
if (u !== false)
|
||||||
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated MessageType for protobuf message CreateCharacterRequest
|
||||||
|
*/
|
||||||
|
export const CreateCharacterRequest = new CreateCharacterRequest$Type();
|
||||||
|
// @generated message type with reflection information, may provide speed optimized methods
|
||||||
|
class GetCharacterRequest$Type extends MessageType<GetCharacterRequest> {
|
||||||
|
constructor() {
|
||||||
|
super("GetCharacterRequest", []);
|
||||||
|
}
|
||||||
|
override create(value?: PartialMessage<GetCharacterRequest>): GetCharacterRequest {
|
||||||
|
const message = globalThis.Object.create((this.messagePrototype!));
|
||||||
|
if (value !== undefined)
|
||||||
|
reflectionMergePartial<GetCharacterRequest>(this, message, value);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: GetCharacterRequest): GetCharacterRequest {
|
||||||
|
let message = target ?? this.create(), end = reader.pos + length;
|
||||||
|
while (reader.pos < end) {
|
||||||
|
let [fieldNo, wireType] = reader.tag();
|
||||||
|
switch (fieldNo) {
|
||||||
|
default:
|
||||||
|
let u = options.readUnknownField;
|
||||||
|
if (u === "throw")
|
||||||
|
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||||
|
let d = reader.skip(wireType);
|
||||||
|
if (u !== false)
|
||||||
|
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryWrite(message: GetCharacterRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||||
|
let u = options.writeUnknownFields;
|
||||||
|
if (u !== false)
|
||||||
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated MessageType for protobuf message GetCharacterRequest
|
||||||
|
*/
|
||||||
|
export const GetCharacterRequest = new GetCharacterRequest$Type();
|
||||||
|
// @generated message type with reflection information, may provide speed optimized methods
|
||||||
|
class ListCharacterRequest$Type extends MessageType<ListCharacterRequest> {
|
||||||
|
constructor() {
|
||||||
|
super("ListCharacterRequest", [
|
||||||
|
{ no: 1, name: "PlayerName", kind: "scalar", jsonName: "PlayerName", T: 9 /*ScalarType.STRING*/ },
|
||||||
|
{ no: 2, name: "CharacterName", kind: "scalar", jsonName: "CharacterName", T: 9 /*ScalarType.STRING*/ }
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
override create(value?: PartialMessage<ListCharacterRequest>): ListCharacterRequest {
|
||||||
|
const message = globalThis.Object.create((this.messagePrototype!));
|
||||||
|
message.playerName = "";
|
||||||
|
message.characterName = "";
|
||||||
|
if (value !== undefined)
|
||||||
|
reflectionMergePartial<ListCharacterRequest>(this, message, value);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListCharacterRequest): ListCharacterRequest {
|
||||||
|
let message = target ?? this.create(), end = reader.pos + length;
|
||||||
|
while (reader.pos < end) {
|
||||||
|
let [fieldNo, wireType] = reader.tag();
|
||||||
|
switch (fieldNo) {
|
||||||
|
case /* string PlayerName */ 1:
|
||||||
|
message.playerName = reader.string();
|
||||||
|
break;
|
||||||
|
case /* string CharacterName */ 2:
|
||||||
|
message.characterName = reader.string();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
let u = options.readUnknownField;
|
||||||
|
if (u === "throw")
|
||||||
|
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||||
|
let d = reader.skip(wireType);
|
||||||
|
if (u !== false)
|
||||||
|
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryWrite(message: ListCharacterRequest, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||||
|
/* string PlayerName = 1; */
|
||||||
|
if (message.playerName !== "")
|
||||||
|
writer.tag(1, WireType.LengthDelimited).string(message.playerName);
|
||||||
|
/* string CharacterName = 2; */
|
||||||
|
if (message.characterName !== "")
|
||||||
|
writer.tag(2, WireType.LengthDelimited).string(message.characterName);
|
||||||
|
let u = options.writeUnknownFields;
|
||||||
|
if (u !== false)
|
||||||
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated MessageType for protobuf message ListCharacterRequest
|
||||||
|
*/
|
||||||
|
export const ListCharacterRequest = new ListCharacterRequest$Type();
|
||||||
|
// @generated message type with reflection information, may provide speed optimized methods
|
||||||
|
class ListCharacterResponse$Type extends MessageType<ListCharacterResponse> {
|
||||||
|
constructor() {
|
||||||
|
super("ListCharacterResponse", [
|
||||||
|
{ no: 1, name: "characters", kind: "message", repeat: 2 /*RepeatType.UNPACKED*/, T: () => Character }
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
override create(value?: PartialMessage<ListCharacterResponse>): ListCharacterResponse {
|
||||||
|
const message = globalThis.Object.create((this.messagePrototype!));
|
||||||
|
message.characters = [];
|
||||||
|
if (value !== undefined)
|
||||||
|
reflectionMergePartial<ListCharacterResponse>(this, message, value);
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: ListCharacterResponse): ListCharacterResponse {
|
||||||
|
let message = target ?? this.create(), end = reader.pos + length;
|
||||||
|
while (reader.pos < end) {
|
||||||
|
let [fieldNo, wireType] = reader.tag();
|
||||||
|
switch (fieldNo) {
|
||||||
|
case /* repeated Character characters */ 1:
|
||||||
|
message.characters.push(Character.internalBinaryRead(reader, reader.uint32(), options));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
let u = options.readUnknownField;
|
||||||
|
if (u === "throw")
|
||||||
|
throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
|
||||||
|
let d = reader.skip(wireType);
|
||||||
|
if (u !== false)
|
||||||
|
(u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return message;
|
||||||
|
}
|
||||||
|
override internalBinaryWrite(message: ListCharacterResponse, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter {
|
||||||
|
/* repeated Character characters = 1; */
|
||||||
|
for (let i = 0; i < message.characters.length; i++)
|
||||||
|
Character.internalBinaryWrite(message.characters[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join();
|
||||||
|
let u = options.writeUnknownFields;
|
||||||
|
if (u !== false)
|
||||||
|
(u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
|
||||||
|
return writer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* @generated MessageType for protobuf message ListCharacterResponse
|
||||||
|
*/
|
||||||
|
export const ListCharacterResponse = new ListCharacterResponse$Type();
|
||||||
|
/**
|
||||||
|
* @generated ServiceType for protobuf service CharacterManager
|
||||||
|
*/
|
||||||
|
export const CharacterManager = new ServiceType("CharacterManager", [
|
||||||
|
{ name: "createCharacter", options: {}, I: CreateCharacterRequest, O: Character },
|
||||||
|
{ name: "getCharacter", options: {}, I: GetCharacterRequest, O: Character },
|
||||||
|
{ name: "listCharacters", options: {}, I: ListCharacterRequest, O: ListCharacterResponse }
|
||||||
|
]);
|
||||||
20
src/templates/CharacterBrowser.hbs
Normal file
20
src/templates/CharacterBrowser.hbs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<section>
|
||||||
|
<header class="flex-header">
|
||||||
|
<h1>
|
||||||
|
Dog Browser
|
||||||
|
</h1>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="module-control"
|
||||||
|
title="Fetch random dog photo"
|
||||||
|
data-action="randomize-dog"
|
||||||
|
>
|
||||||
|
<i class="fas fa-random fa-fw"></i>
|
||||||
|
</button>
|
||||||
|
</header>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<p>
|
||||||
|
🐶
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
21
src/templates/NewCharacter.hbs
Normal file
21
src/templates/NewCharacter.hbs
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
<section>
|
||||||
|
<header class="flex-header">
|
||||||
|
<h1>
|
||||||
|
Create Character
|
||||||
|
</h1>
|
||||||
|
<input/>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="module-control"
|
||||||
|
title="Fetch random dog photo"
|
||||||
|
data-action="randomize-dog"
|
||||||
|
>
|
||||||
|
<i class="fas fa-random fa-fw"></i>
|
||||||
|
</button>
|
||||||
|
</header>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<p>
|
||||||
|
🐶
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
13
src/ts/apps/CharacterBrowser.ts
Normal file
13
src/ts/apps/CharacterBrowser.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { id as moduleId } from "../../module.json";
|
||||||
|
|
||||||
|
export default class DogBrowser extends Application {
|
||||||
|
static override get defaultOptions(): ApplicationOptions {
|
||||||
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
|
id: "dog-browser",
|
||||||
|
title: "Dog Browser",
|
||||||
|
template: `modules/${moduleId}/templates/CharacterBrowser.hbs`,
|
||||||
|
width: 720,
|
||||||
|
height: 720,
|
||||||
|
}) as ApplicationOptions;
|
||||||
|
}
|
||||||
|
}
|
||||||
13
src/ts/apps/NewCharacter.ts
Normal file
13
src/ts/apps/NewCharacter.ts
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
import { id as moduleId } from "../../module.json";
|
||||||
|
|
||||||
|
export default class DogBrowser extends Application {
|
||||||
|
static override get defaultOptions(): ApplicationOptions {
|
||||||
|
return foundry.utils.mergeObject(super.defaultOptions, {
|
||||||
|
id: "dog-browser",
|
||||||
|
title: "Dog Browser",
|
||||||
|
template: `modules/${moduleId}/templates/NewCharacter.hbs`,
|
||||||
|
width: 720,
|
||||||
|
height: 720,
|
||||||
|
}) as ApplicationOptions;
|
||||||
|
}
|
||||||
|
}
|
||||||
45
src/ts/module.ts
Normal file
45
src/ts/module.ts
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
import { CharacterManagerClient } from "../proto/character.client";
|
||||||
|
import { GetCharacterRequest } from '../proto/character'
|
||||||
|
import { GrpcWebFetchTransport } from '@protobuf-ts/grpcweb-transport'
|
||||||
|
|
||||||
|
import { ModuleData } from "@league-of-foundry-developers/foundry-vtt-types/src/foundry/common/packages.mjs";
|
||||||
|
import { id as moduleId } from "../module.json";
|
||||||
|
import DogBrowser from "./apps/NewCharacter";
|
||||||
|
|
||||||
|
|
||||||
|
interface MyModule extends Game.ModuleData<ModuleData> {
|
||||||
|
dogBrowser: DogBrowser;
|
||||||
|
}
|
||||||
|
|
||||||
|
let module: MyModule;
|
||||||
|
|
||||||
|
Hooks.once("init", async () => {
|
||||||
|
console.log("hello world!");
|
||||||
|
|
||||||
|
|
||||||
|
const client = new CharacterManagerClient(
|
||||||
|
new GrpcWebFetchTransport({
|
||||||
|
baseUrl: 'http://localhost/api',
|
||||||
|
format: 'binary',
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
console.log("Potato");
|
||||||
|
let request = GetCharacterRequest.fromJson({
|
||||||
|
})
|
||||||
|
console.log("Potato");
|
||||||
|
let a = await client.getCharacter(request).then((res) => {
|
||||||
|
console.log(res)
|
||||||
|
return res
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log(a.response)
|
||||||
|
|
||||||
|
console.log("Potato");
|
||||||
|
|
||||||
|
console.log(`Initializing ${moduleId}`);
|
||||||
|
|
||||||
|
module = (game as Game).modules.get(moduleId) as MyModule;
|
||||||
|
module.dogBrowser = new DogBrowser();
|
||||||
|
module.dogBrowser.render(true);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user