Skip to content

Commit

Permalink
Cleaned up core interfaces.
Browse files Browse the repository at this point in the history
  • Loading branch information
Morgul committed May 20, 2024
1 parent b6d9bc4 commit 34962cb
Show file tree
Hide file tree
Showing 11 changed files with 100 additions and 68 deletions.
4 changes: 2 additions & 2 deletions src/client/lib/models/notebook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

//----------------------------------------------------------------------------------------------------------------------
74 changes: 8 additions & 66 deletions src/common/interfaces/common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Defaults extends Record<string, unknown>> {
id : string;
name : string;
description : string;
defaults : Defaults;
status : SupportStatus;
}

export type SystemDetails = SysDetails;

export type Character<Details extends SystemDetails = SystemDetails> = CharacterOptions<Details>;

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<Payload extends Record<string, unknown> = Record<string, unknown>>
{
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';

// ---------------------------------------------------------------------------------------------------------------------
3 changes: 3 additions & 0 deletions src/common/interfaces/models/account.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,7 @@ export interface AccountOptions {
settings ?: AccountSettings;
}

// FIXME: Once Models are removed, `AccountOptions` should be named 'Account'.
export type Account = AccountOptions;

//----------------------------------------------------------------------------------------------------------------------
3 changes: 3 additions & 0 deletions src/common/interfaces/models/character.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,7 @@ export interface CharacterOptions<Details extends SystemDetails = SystemDetails>
details : Details
}

// FIXME: Once Models are removed, `CharacterOptions` should be named 'Character'.
export type Character<Details extends SystemDetails = SystemDetails> = CharacterOptions<Details>;

//----------------------------------------------------------------------------------------------------------------------
16 changes: 16 additions & 0 deletions src/common/interfaces/models/dice.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
// ---------------------------------------------------------------------------------------------------------------------
// Dice
// ---------------------------------------------------------------------------------------------------------------------

import { Roll } from 'rpgdicejs';

// ---------------------------------------------------------------------------------------------------------------------

export interface DiceRoll
{
roll : Roll;
name : string;
display : string;
}

// ---------------------------------------------------------------------------------------------------------------------
31 changes: 31 additions & 0 deletions src/common/interfaces/models/messages.ts
Original file line number Diff line number Diff line change
@@ -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<Payload extends Record<string, unknown> = Record<string, unknown>>
{
type : 'event';
resource : string;
payload : Payload;
}

export type RPGKMessage = RPGKUpdateMessage | RPGKRemoveMessage | RPGKEventMessage;

// ---------------------------------------------------------------------------------------------------------------------
6 changes: 6 additions & 0 deletions src/common/interfaces/models/notebook.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;

//----------------------------------------------------------------------------------------------------------------------

3 changes: 3 additions & 0 deletions src/common/interfaces/models/reference.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ export interface ReferenceOptions {
productCode : string;
}

// FIXME: Once Models are removed, `ReferenceOptions` should be named 'Reference'.
export type Reference = ReferenceOptions;

//----------------------------------------------------------------------------------------------------------------------
3 changes: 3 additions & 0 deletions src/common/interfaces/models/role.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,7 @@ export interface RoleOptions {
permissions : string[];
}

// FIXME: Once Models are removed, `RoleOptions` should be named 'Role'.
export type Role = RoleOptions;

//----------------------------------------------------------------------------------------------------------------------
3 changes: 3 additions & 0 deletions src/common/interfaces/models/supplement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,7 @@ export interface SupplementOptions {
[ key : string ] : unknown;
}

// FIXME: Once Models are removed, `SupplementOptions` should be named 'Supplement'.
export type Supplement = SupplementOptions;

//----------------------------------------------------------------------------------------------------------------------
22 changes: 22 additions & 0 deletions src/common/interfaces/models/system.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// ---------------------------------------------------------------------------------------------------------------------
// System
// ---------------------------------------------------------------------------------------------------------------------

export const enum SupportStatus
{
InDevelopment = 'dev',
PublicBeta = 'beta',
Disabled = 'disabled'
}

export interface System<Defaults extends Record<string, unknown>>
{
id : string;
name : string;
description : string;
defaults : Defaults;
status : SupportStatus;
}


// ---------------------------------------------------------------------------------------------------------------------

0 comments on commit 34962cb

Please sign in to comment.