From 34962cb3abda4cde8661cd76ec99f54f1655e001 Mon Sep 17 00:00:00 2001 From: "Christopher S. Case" Date: Sun, 19 May 2024 22:30:21 -0500 Subject: [PATCH] Cleaned up core interfaces. --- src/client/lib/models/notebook.ts | 4 +- src/common/interfaces/common.ts | 74 +++------------------- src/common/interfaces/models/account.ts | 3 + src/common/interfaces/models/character.ts | 3 + src/common/interfaces/models/dice.ts | 16 +++++ src/common/interfaces/models/messages.ts | 31 +++++++++ src/common/interfaces/models/notebook.ts | 6 ++ src/common/interfaces/models/reference.ts | 3 + src/common/interfaces/models/role.ts | 3 + src/common/interfaces/models/supplement.ts | 3 + src/common/interfaces/models/system.ts | 22 +++++++ 11 files changed, 100 insertions(+), 68 deletions(-) create mode 100644 src/common/interfaces/models/dice.ts create mode 100644 src/common/interfaces/models/messages.ts create mode 100644 src/common/interfaces/models/system.ts diff --git a/src/client/lib/models/notebook.ts b/src/client/lib/models/notebook.ts index 95aef6cb..6672e78a 100644 --- a/src/client/lib/models/notebook.ts +++ b/src/client/lib/models/notebook.ts @@ -3,11 +3,11 @@ //---------------------------------------------------------------------------------------------------------------------- // Models -import { Notes, NotePage } from '../../../common/interfaces/common'; +import { NotebookOptions, NotePage } from '../../../common/interfaces/common'; //---------------------------------------------------------------------------------------------------------------------- export type NotebookPage = NotePage; -export type Notebook = Notes; +export type Notebook = NotebookOptions; //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/common.ts b/src/common/interfaces/common.ts index e7c5aa52..4516b2a3 100644 --- a/src/common/interfaces/common.ts +++ b/src/common/interfaces/common.ts @@ -2,71 +2,13 @@ // Common Interfaces // --------------------------------------------------------------------------------------------------------------------- -import { AccountOptions, AccountSettings as Settings } from './models/account'; -import { SupplementOptions } from './models/supplement'; -import { NotebookOptions, NotebookPageOptions } from './models/notebook'; -import { CharacterOptions, SystemDetails as SysDetails } from './models/character'; -import { Roll } from 'rpgdicejs'; -import { RoleOptions } from './models/role'; - -// --------------------------------------------------------------------------------------------------------------------- - -export const enum SupportStatus -{ - InDevelopment = 'dev', - PublicBeta = 'beta', - Disabled = 'disabled' -} - -export type Account = AccountOptions; -export type AccountSettings = Settings; - -export type Role = RoleOptions; - -export interface System> { - id : string; - name : string; - description : string; - defaults : Defaults; - status : SupportStatus; -} - -export type SystemDetails = SysDetails; - -export type Character
= CharacterOptions
; - -export type Supplement = SupplementOptions; - -export type Notes = NotebookOptions; -export type NotePage = NotebookPageOptions; - -export interface RPGKUpdateMessage -{ - type : 'update'; - resource : string; - payload : Character; -} - -export interface RPGKRemoveMessage -{ - type : 'remove'; - resource : string; -} - -export interface RPGKEventMessage = Record> -{ - type : 'event'; - resource : string; - payload : Payload; -} - -export type RPGKMessage = RPGKUpdateMessage | RPGKRemoveMessage | RPGKEventMessage; - -export interface DiceRoll -{ - roll : Roll; - name : string; - display : string; -} +export { AccountOptions, AccountSettings, Account } from './models/account'; +export { CharacterOptions, SystemDetails, Character } from './models/character'; +export { DiceRoll } from './models/dice'; +export { NotebookOptions, NotebookPageOptions, Notebook, NotePage } from './models/notebook'; +export { RoleOptions, Role } from './models/role'; +export { RPGKMessage, RPGKEventMessage, RPGKRemoveMessage, RPGKUpdateMessage } from './models/messages'; +export { SupplementOptions, Supplement } from './models/supplement'; +export { SupportStatus, System } from './models/system'; // --------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/account.ts b/src/common/interfaces/models/account.ts index 8da76aa7..cddf9d8c 100644 --- a/src/common/interfaces/models/account.ts +++ b/src/common/interfaces/models/account.ts @@ -17,4 +17,7 @@ export interface AccountOptions { settings ?: AccountSettings; } +// FIXME: Once Models are removed, `AccountOptions` should be named 'Account'. +export type Account = AccountOptions; + //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/character.ts b/src/common/interfaces/models/character.ts index da5ea66a..cf37a903 100644 --- a/src/common/interfaces/models/character.ts +++ b/src/common/interfaces/models/character.ts @@ -18,4 +18,7 @@ export interface CharacterOptions
details : Details } +// FIXME: Once Models are removed, `CharacterOptions` should be named 'Character'. +export type Character
= CharacterOptions
; + //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/dice.ts b/src/common/interfaces/models/dice.ts new file mode 100644 index 00000000..d8bf2ea0 --- /dev/null +++ b/src/common/interfaces/models/dice.ts @@ -0,0 +1,16 @@ +// --------------------------------------------------------------------------------------------------------------------- +// Dice +// --------------------------------------------------------------------------------------------------------------------- + +import { Roll } from 'rpgdicejs'; + +// --------------------------------------------------------------------------------------------------------------------- + +export interface DiceRoll +{ + roll : Roll; + name : string; + display : string; +} + +// --------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/messages.ts b/src/common/interfaces/models/messages.ts new file mode 100644 index 00000000..ae39fcc3 --- /dev/null +++ b/src/common/interfaces/models/messages.ts @@ -0,0 +1,31 @@ +// --------------------------------------------------------------------------------------------------------------------- +// Messages +// --------------------------------------------------------------------------------------------------------------------- + +import { Character } from './character'; + +// --------------------------------------------------------------------------------------------------------------------- + +export interface RPGKUpdateMessage +{ + type : 'update'; + resource : string; + payload : Character; +} + +export interface RPGKRemoveMessage +{ + type : 'remove'; + resource : string; +} + +export interface RPGKEventMessage = Record> +{ + type : 'event'; + resource : string; + payload : Payload; +} + +export type RPGKMessage = RPGKUpdateMessage | RPGKRemoveMessage | RPGKEventMessage; + +// --------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/notebook.ts b/src/common/interfaces/models/notebook.ts index 8a292536..29c23f80 100644 --- a/src/common/interfaces/models/notebook.ts +++ b/src/common/interfaces/models/notebook.ts @@ -15,5 +15,11 @@ export interface NotebookPageOptions { notebookID : string; } +// FIXME: Once Models are removed, `NotebookOptions` should be named 'Notebook'. +export type Notebook = NotebookOptions; + +// FIXME: Once Models are removed, `NotebookPageOptions` should be named 'NotePage'. +export type NotePage = NotebookPageOptions; + //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/reference.ts b/src/common/interfaces/models/reference.ts index 045b4f6b..f835d0e5 100644 --- a/src/common/interfaces/models/reference.ts +++ b/src/common/interfaces/models/reference.ts @@ -8,4 +8,7 @@ export interface ReferenceOptions { productCode : string; } +// FIXME: Once Models are removed, `ReferenceOptions` should be named 'Reference'. +export type Reference = ReferenceOptions; + //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/role.ts b/src/common/interfaces/models/role.ts index 990f8e65..be818fd3 100644 --- a/src/common/interfaces/models/role.ts +++ b/src/common/interfaces/models/role.ts @@ -8,4 +8,7 @@ export interface RoleOptions { permissions : string[]; } +// FIXME: Once Models are removed, `RoleOptions` should be named 'Role'. +export type Role = RoleOptions; + //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/supplement.ts b/src/common/interfaces/models/supplement.ts index a6c76f7d..2fcdaed4 100644 --- a/src/common/interfaces/models/supplement.ts +++ b/src/common/interfaces/models/supplement.ts @@ -13,4 +13,7 @@ export interface SupplementOptions { [ key : string ] : unknown; } +// FIXME: Once Models are removed, `SupplementOptions` should be named 'Supplement'. +export type Supplement = SupplementOptions; + //---------------------------------------------------------------------------------------------------------------------- diff --git a/src/common/interfaces/models/system.ts b/src/common/interfaces/models/system.ts new file mode 100644 index 00000000..6e1aebbd --- /dev/null +++ b/src/common/interfaces/models/system.ts @@ -0,0 +1,22 @@ +// --------------------------------------------------------------------------------------------------------------------- +// System +// --------------------------------------------------------------------------------------------------------------------- + +export const enum SupportStatus +{ + InDevelopment = 'dev', + PublicBeta = 'beta', + Disabled = 'disabled' +} + +export interface System> +{ + id : string; + name : string; + description : string; + defaults : Defaults; + status : SupportStatus; +} + + +// ---------------------------------------------------------------------------------------------------------------------