Webatrice: improve prebuild steps and add .env configs (#4564)

* create .env file for server configuration

* render client version

* automate env file

* add prestart command

* create server-props.json instead of using .env

* automate master proto file

Co-authored-by: Jeremy Letto <jeremy.letto@datasite.com>
This commit is contained in:
Jeremy Letto 2022-02-12 17:58:47 -06:00 committed by GitHub
parent 408a13c937
commit 88b861d632
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 119 additions and 21175 deletions

View file

@ -12,7 +12,7 @@ import { RegistrationDialog, RequestPasswordResetDialog, ResetPasswordDialog, Ac
import { LoginForm } from 'forms';
import { useReduxEffect, useFireOnce } from 'hooks';
import { Images } from 'images';
import { HostDTO } from 'services';
import { HostDTO, serverProps } from 'services';
import { RouteEnum, WebSocketConnectOptions, getHostPort } from 'types';
import { ServerSelectors, ServerTypes } from 'store';
@ -256,9 +256,16 @@ const Login = ({ state, description }: LoginProps) => {
<span>Not registered yet?</span>
<Button color="primary" onClick={openRegistrationDialog}>Create an account</Button>
</div>
<Typography variant="subtitle2" className="login-footer__copyright">
<Typography variant="subtitle2">
Cockatrice is an open source project. { new Date().getUTCFullYear() }
</Typography>
{
serverProps.REACT_APP_VERSION && (
<Typography variant="subtitle2">
Version: { serverProps.REACT_APP_VERSION }
</Typography>
)
}
</div>
</div>
<div className="login-content__description">

View file

@ -0,0 +1,9 @@
import props from '../server-props.json';
class ServerProps {
get REACT_APP_VERSION() {
return props?.REACT_APP_VERSION;
}
}
export const serverProps = new ServerProps();

View file

@ -1,2 +1,3 @@
export * from './CardImporterService';
export * from './ServerProps';
export * from './dexie';

View file

@ -1,156 +0,0 @@
const ProtoFiles = [
'admin_commands.proto',
'card_attributes.proto',
'color.proto',
'command_attach_card.proto',
'command_change_zone_properties.proto',
'command_concede.proto',
'command_create_arrow.proto',
'command_create_counter.proto',
'command_create_token.proto',
'command_deck_del.proto',
'command_deck_del_dir.proto',
'command_deck_download.proto',
'command_deck_list.proto',
'command_deck_new_dir.proto',
'command_deck_select.proto',
'command_deck_upload.proto',
'command_del_counter.proto',
'command_delete_arrow.proto',
'command_draw_cards.proto',
'command_dump_zone.proto',
'command_flip_card.proto',
'command_game_say.proto',
'command_inc_card_counter.proto',
'command_inc_counter.proto',
'command_kick_from_game.proto',
'command_leave_game.proto',
'command_move_card.proto',
'command_mulligan.proto',
'command_next_turn.proto',
'command_ready_start.proto',
'command_replay_delete_match.proto',
'command_replay_download.proto',
'command_replay_list.proto',
'command_replay_modify_match.proto',
'command_reveal_cards.proto',
'command_roll_die.proto',
'command_set_active_phase.proto',
'command_set_card_attr.proto',
'command_set_card_counter.proto',
'command_set_counter.proto',
'command_set_sideboard_lock.proto',
'command_set_sideboard_plan.proto',
'command_shuffle.proto',
'command_undo_draw.proto',
'commands.proto',
'context_concede.proto',
'context_connection_state_changed.proto',
'context_deck_select.proto',
'context_move_card.proto',
'context_mulligan.proto',
'context_ping_changed.proto',
'context_ready_start.proto',
'context_set_sideboard_lock.proto',
'context_undo_draw.proto',
'event_add_to_list.proto',
'event_attach_card.proto',
'event_change_zone_properties.proto',
'event_connection_closed.proto',
'event_create_arrow.proto',
'event_create_counter.proto',
'event_create_token.proto',
'event_del_counter.proto',
'event_delete_arrow.proto',
'event_destroy_card.proto',
'event_draw_cards.proto',
'event_dump_zone.proto',
'event_flip_card.proto',
'event_game_closed.proto',
'event_game_host_changed.proto',
'event_game_joined.proto',
'event_game_say.proto',
'event_game_state_changed.proto',
'event_join.proto',
'event_join_room.proto',
'event_kicked.proto',
'event_leave.proto',
'event_leave_room.proto',
'event_list_games.proto',
'event_list_rooms.proto',
'event_move_card.proto',
'event_notify_user.proto',
'event_player_properties_changed.proto',
'event_remove_from_list.proto',
'event_replay_added.proto',
'event_reveal_cards.proto',
'event_roll_die.proto',
'event_room_say.proto',
'event_server_complete_list.proto',
'event_server_identification.proto',
'event_server_message.proto',
'event_server_shutdown.proto',
'event_set_active_phase.proto',
'event_set_active_player.proto',
'event_set_card_attr.proto',
'event_set_card_counter.proto',
'event_set_counter.proto',
'event_shuffle.proto',
'event_user_joined.proto',
'event_user_left.proto',
'event_user_message.proto',
'game_commands.proto',
'game_event.proto',
'game_event_container.proto',
'game_event_context.proto',
'game_replay.proto',
'isl_message.proto',
'moderator_commands.proto',
'move_card_to_zone.proto',
'response.proto',
'response_activate.proto',
'response_adjust_mod.proto',
'response_ban_history.proto',
'response_deck_download.proto',
'response_deck_list.proto',
'response_deck_upload.proto',
'response_dump_zone.proto',
'response_forgotpasswordrequest.proto',
'response_get_games_of_user.proto',
'response_get_user_info.proto',
'response_join_room.proto',
'response_list_users.proto',
'response_login.proto',
'response_password_salt.proto',
'response_register.proto',
'response_replay_download.proto',
'response_replay_list.proto',
'response_viewlog_history.proto',
'response_warn_history.proto',
'response_warn_list.proto',
'room_commands.proto',
'room_event.proto',
'server_message.proto',
'serverinfo_arrow.proto',
'serverinfo_ban.proto',
'serverinfo_card.proto',
'serverinfo_cardcounter.proto',
'serverinfo_chat_message.proto',
'serverinfo_counter.proto',
'serverinfo_deckstorage.proto',
'serverinfo_game.proto',
'serverinfo_gametype.proto',
'serverinfo_player.proto',
'serverinfo_playerping.proto',
'serverinfo_playerproperties.proto',
'serverinfo_replay.proto',
'serverinfo_replay_match.proto',
'serverinfo_room.proto',
'serverinfo_user.proto',
'serverinfo_warning.proto',
'serverinfo_zone.proto',
'session_commands.proto',
'session_event.proto',
];
export default ProtoFiles;

View file

@ -1,10 +1,10 @@
import protobuf from 'protobufjs';
import ProtoFiles from '../ProtoFiles';
import { WebClient } from '../WebClient';
import { RoomEvents, SessionEvents } from '../events';
import { SessionPersistence } from '../persistence';
import { WebClient } from '../WebClient';
import ProtoFiles from '../../proto-files.json';
export interface ProtobufEvents {
[event: string]: Function;