Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
125 commits
Select commit Hold shift + click to select a range
4efd8da
Add type definitions for Broadcast, Logger, Player and Room classes
clagiordano Apr 8, 2020
dc297da
Export namespace instead to declare class to allow definition of clas…
clagiordano Apr 8, 2020
030403e
Add missing Broadcast methods and types
clagiordano Apr 8, 2020
276282a
Add Account definition
clagiordano Apr 8, 2020
e851849
Add definitions for AccountManger and EntityLoader
clagiordano Apr 8, 2020
2332528
Fix some import and add types to package.json
clagiordano Apr 8, 2020
97cc85f
Drop folder path from types declaration on package.json
clagiordano Apr 8, 2020
3e536ee
Add definition for Area
clagiordano Apr 8, 2020
cf38dda
Refactor definitions to allow extends, add some new definitions
clagiordano Apr 9, 2020
c75d1eb
Mixin (Scriptable and Metadataable) definitions and placeholder for …
clagiordano Apr 9, 2020
dd435da
Export definitions for new entitities
clagiordano Apr 9, 2020
0df9268
Update Account definition
clagiordano Apr 12, 2020
468ba41
Add EventManager definition and update Behavior manager
clagiordano Apr 12, 2020
dba5b64
Add missing docblock paramter for BundleManager
clagiordano Apr 12, 2020
69832be
Export new type definitions
clagiordano Apr 12, 2020
66e345d
Fix some docblocks on source classes
clagiordano Apr 12, 2020
b4641b3
Update denfinitions for DataSource and EntityLoaders classes
clagiordano Apr 12, 2020
0f5dea8
Update docblock
clagiordano Apr 12, 2020
4f4006c
Export new definitions
clagiordano Apr 12, 2020
e8e03d4
Fix docblock on CommandQueue class
clagiordano Apr 12, 2020
5aa6196
Rename ChannelOptions as AudienceOptions
clagiordano Apr 12, 2020
2cf4523
Add definition for Channel
clagiordano Apr 12, 2020
0531cce
Add missing parameter on Channel docblock
clagiordano Apr 12, 2020
031db81
Add definition for PlayerRoles and refactor definition for CommandType
clagiordano Apr 12, 2020
c03e2f5
Add definition for SkillType
clagiordano Apr 12, 2020
d97535a
Add new definitions for Effect and SkillErrors, some definition fixes
clagiordano Apr 13, 2020
3667f35
Drop unnecessary space
clagiordano Apr 13, 2020
331f8d7
Fix map property Map types
clagiordano Apr 20, 2020
c424d9f
Declare and export AccountConfig interface to use as argument for Acc…
clagiordano Apr 20, 2020
e1a93e3
Prettier fix
clagiordano Apr 20, 2020
552c21f
Add missing deleted and metadata property on AccountConfig definition
clagiordano Apr 20, 2020
e2a9ed6
Add basic properties definition for Character class and export empty …
clagiordano Apr 20, 2020
fd621ce
Lint fix
clagiordano Apr 20, 2020
8c85d8d
Export new definition classes
clagiordano Apr 20, 2020
b110def
Complete and export definition for Character and CharacterConfig inte…
clagiordano Apr 21, 2020
851130c
Add missing import on Character definition
clagiordano Apr 21, 2020
ed6c3d4
Sort imports
clagiordano Apr 21, 2020
ce9f331
Add placeholder types.
Sep 18, 2020
fb5d872
Add types to .npmignore exclusions so they are available in node_modu…
Sep 18, 2020
6f1e9ff
Newline eof
Sep 18, 2020
fea04a4
Fix some of the typing syntax for EventManager, including typing for …
Sep 18, 2020
3d52964
Type Set in EventManager
Sep 18, 2020
411e9a2
Add some static keywords to defs
Sep 18, 2020
eee3239
Add more to Data
Sep 18, 2020
eb7a0f4
Add static keyword to Logger
Sep 18, 2020
ef26a1d
Fix typo, formatting issues
Sep 18, 2020
7efe54e
Fix async keyword use -- not allowed in *.d.ts, have to set return ty…
Sep 18, 2020
e651b3b
Fallback should be optional
Sep 18, 2020
f06441e
Having placeholder as type w/ same name as class caused issues
Sep 18, 2020
3934915
Merge pull request #1 from seanohue/add-placeholders-fix-npmignore
clagiordano Sep 19, 2020
21264d3
Merge pull request #4 from seanohue/fix-bundlemanager
clagiordano Sep 19, 2020
5872e6b
Merge pull request #2 from seanohue/fix-eventmanager-typedef
clagiordano Sep 19, 2020
cd29347
Merge pull request #3 from seanohue/add-some-static-methods
clagiordano Sep 19, 2020
4b1fdd8
Make EntityReference type a string, make Room types more accurate.
Sep 25, 2020
f94a486
Export interfaces
Sep 25, 2020
65ab7c2
Resolve conflicts
Sep 25, 2020
8dc6195
Remove unused import
Sep 25, 2020
7c60bae
Define find using an overload
Sep 25, 2020
14c7c3d
Add PlayerManager definitions, better variable name in PlayerManager.
Sep 25, 2020
6a46fb4
Improve types for Account, add serialized type
Sep 25, 2020
d5f7513
Improve DataSource and EntityLoader defs
Sep 25, 2020
682886a
Add Command definition, and fix definition for Room interfaces
Sep 25, 2020
787e21b
Arg0 for commands is in fact optional
Sep 25, 2020
58e2a08
Remove I prefix for consistency
Sep 25, 2020
520ebd1
Typing for Heal, Inventory, improve on others
Sep 25, 2020
799e6b4
Define Item and ItemType
Sep 25, 2020
6a5d946
Merge branch 'feature/type-definitions' into many-typedef-improvements
seanohue Sep 26, 2020
eefe463
Consistently add new line at EOF
Sep 26, 2020
9b2f41c
TSC caught some issues finally
Sep 26, 2020
d4d2f50
Merge pull request #6 from seanohue/many-typedef-improvements
clagiordano Sep 26, 2020
daf069c
Add optional parameter to Account.save()
nelsonsbrian Oct 10, 2020
57647cd
Add members to Damage
Oct 10, 2020
e1c06ed
Formatting
Oct 10, 2020
0489bb3
Fix Damage constructor types
Oct 10, 2020
4cf2027
Merge pull request #8 from seanohue/feature/fix-damage-types
clagiordano Oct 15, 2020
44994e8
Merge pull request #7 from nelsonsbrian/feature/type-definitions
clagiordano Oct 15, 2020
f5fd2c4
Minor fix for return type of AreaAudience and AccountManager classes
clagiordano Dec 4, 2020
8510ab7
Update Command definition
clagiordano Dec 5, 2020
c09d4b6
Add definition for DataSourceRegistry
clagiordano Dec 5, 2020
828ae31
Add definition for EffectableEntity
clagiordano Dec 5, 2020
d04832f
Fix DataSourceRegistry definition
clagiordano Dec 5, 2020
b7fa586
Add initial test for account
clagiordano Dec 5, 2020
221c1a9
Update tests for Account
clagiordano Dec 5, 2020
226f8b9
Minor fix
clagiordano Dec 5, 2020
c521b78
Add definitions for EffectConfig (type used by effect factory) and Ef…
clagiordano Dec 5, 2020
c286501
Add type definition for EffectFlag enum
clagiordano Dec 5, 2020
6781b75
Add definition for EffectList
clagiordano Dec 5, 2020
a4ad073
Drop placeholders for already exported types
clagiordano Dec 5, 2020
e7be9e9
Add @types/node definition for TS as dev dependency
clagiordano Dec 5, 2020
b10e620
Fix some definition issue using tsc compiler
clagiordano Dec 5, 2020
e4065db
Add missing type definition for CommandExecutable
clagiordano Dec 5, 2020
27511f9
Export type CommandExecutable definition
clagiordano Dec 5, 2020
b585bd1
Fix some wrong definitions
clagiordano Dec 5, 2020
98a18e2
Fix some definition issue
clagiordano Dec 5, 2020
cbda06e
Fix all errors on types definitions
clagiordano Dec 5, 2020
ac2c358
Format index.d.ts
clagiordano Dec 5, 2020
7bb19c5
Add definition for EntityFactory
clagiordano Dec 5, 2020
b1d38a4
Add definition for EntityLoaderRegistry
clagiordano Dec 6, 2020
dccff29
Add definitions for EquipErrors
clagiordano Dec 6, 2020
dd72770
Add definition for EventUtil
clagiordano Dec 6, 2020
61319e6
Add definition for GameServer
clagiordano Dec 6, 2020
79e96e0
Add definitions for Helpfile and HelpfileOptions
clagiordano Dec 6, 2020
9030d2d
Add definition for HelpManager
clagiordano Dec 6, 2020
ed00ff9
Add definition for ItemFactory
clagiordano Dec 6, 2020
4cbed66
Add definition for ItemManager
clagiordano Dec 6, 2020
27ee8c3
Add definition for MobFactory
clagiordano Dec 6, 2020
ba1cf88
Add definition for MobManager
clagiordano Dec 6, 2020
33f0f82
Complete definition for Npc
clagiordano Dec 6, 2020
4af3e1e
Add definition for PartyAudience
clagiordano Dec 6, 2020
b868c72
Add definitions for Party and PartyManager
clagiordano Dec 6, 2020
bc4ce42
Update PlayerManager definition
clagiordano Dec 6, 2020
1c33abe
Add definition for PrivateAudience
clagiordano Dec 6, 2020
c767a8f
Add definitions for Quest, QuestGoals, QuestRewards and its subtypes
clagiordano Dec 6, 2020
ed5b9f8
Add definition for QuestFactory
clagiordano Dec 6, 2020
36a2f0f
Add definition for QuestTracker
clagiordano Dec 6, 2020
d4a46f5
Add definition for QuestGoalManager
clagiordano Dec 6, 2020
d6fd885
Add definition for QuestRewardManager
clagiordano Dec 6, 2020
c4f68be
Add definition for RoleAudience
clagiordano Dec 6, 2020
379bb0f
Add definition for RoomAudience
clagiordano Dec 6, 2020
09ebc9b
Add definition for RoomFactory
clagiordano Dec 6, 2020
00d0338
Add definition for RoomManager
clagiordano Dec 6, 2020
71b55ed
Add definitio for Skill, SkillFlag and SkillManager
clagiordano Dec 6, 2020
c4af796
Add definition for TransportStream and WorldAudience
clagiordano Dec 6, 2020
00b9a28
Add definition for Util
clagiordano Dec 6, 2020
7a779af
Add typescript as dev dependency
clagiordano Dec 6, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@
!LICENSE.txt
!src/*
!index.js
!index.d.ts
!types/*
!package*
104 changes: 104 additions & 0 deletions index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
export { Account, AccountConfig } from './types/Account';
export { AccountManager } from './types/AccountManager';
export { Area } from './types/Area';
export { AreaAudience } from './types/AreaAudience';
export { AreaFactory } from './types/AreaFactory';
export { AreaFloor } from './types/AreaFloor';
export { AreaManager } from './types/AreaManager';
export { AreaOfEffectDamage } from './types/AreaOfEffectDamage';
export { AreaOfEffectHeal } from './types/AreaOfEffectHeal';
export { Attribute, AttributeFormula } from './types/Attribute';
export { AttributeFactory } from './types/AttributeFactory';
export { Attributes } from './types/Attributes';
export { BehaviorManager } from './types/BehaviorManager';
export { Broadcast, Broadcastable } from './types/Broadcast';
export { BundleManager } from './types/BundleManager';
export {
ChannelConfig,
Channel,
NoMessageError,
NoPartyError,
NoRecipientError,
} from './types/Channel';
export { AudienceOptions, ChannelAudience } from './types/ChannelAudience';
export { ChannelManager } from './types/ChannelManager';
export { Character, CharacterConfig } from './types/Character';
export { CommandManager } from './types/CommandManager';
export { CommandExecutable, CommandQueue } from './types/CommandQueue';
export { CommandType } from './types/CommandType';
export { Config } from './types/Config';
export { Command } from './types/Command';
export { Damage } from './types/Damage';
export { Data } from './types/Data';
export { DataSourceRegistry } from './types/DataSourceRegistry';
export { DataSource } from './types/DataSource';
export { Effect, EffectConfig, EffectModifiers } from './types/Effect';
export { EffectableEntity } from './types/EffectableEntity';
export {
EffectConfig as EffectFactoryType,
EffectFactory,
} from './types/EffectFactory';
export { EffectFlag } from './types/EffectFlag';
export { EffectList } from './types/EffectList';
export { EntityFactory } from './types/EntityFactory';
export { EntityLoader } from './types/EntityLoader';
export { EntityLoaderRegistry } from './types/EntityLoaderRegistry';
export { EntityReference } from './types/EntityReference';
export { EventManager } from './types/EventManager';
export { EventUtil } from './types/EventUtil';
export {
EquipAlreadyEquippedError,
EquipSlotTakenError,
} from './types/EquipErrors';
export { GameEntity } from './types/GameEntity';
export { GameServer } from './types/GameServer';
export { GameState } from './types/GameState';
export { Heal } from './types/Heal';
export { Helpfile, HelpfileOptions } from './types/Helpfile';
export { HelpManager } from './types/HelpManager';
export { Item } from './types/Item';
export { ItemManager } from './types/ItemManager';
export { Inventory, InventoryFullError } from './types/Inventory';
export { ItemFactory } from './types/ItemFactory';
export { Logger } from './types/Logger';
export { Metadatable, MetadatableClass } from './types/Metadatable';
export { MobFactory } from './types/MobFactory';
export { MobManager } from './types/MobManager';
export { Npc } from './types/Npc';
export { Party } from './types/Party';
export { PartyManager } from './types/PartyManager';
export { PartyAudience } from './types/PartyAudience';
export { Player } from './types/Player';
export { PlayerManager } from './types/PlayerManager';
export { PlayerRoles } from './types/PlayerRoles';
export { PrivateAudience } from './types/PrivateAudience';
export { Quest, QuestConfig } from './types/Quest';
export { QuestFactory } from './types/QuestFactory';
export {
QuestGoal,
QuestGoalConfig,
QuestGoalProgress,
QuestGoalSerialized,
} from './types/QuestGoal';
export { QuestGoalManager } from './types/QuestGoalManager';
export { QuestReward, QuestRewardConfig } from './types/QuestReward';
export { QuestRewardManager } from './types/QuestRewardManager';
export { QuestTracker, SerializedQuestTracker } from './types/QuestTracker';
export { RoleAudience} from './types/RoleAudience';
export { Room, Door, Exit } from './types/Room';
export { RoomAudience } from './types/RoomAudience';
export { RoomFactory } from './types/RoomFactory';
export { RoomManager } from './types/RoomManager';
export { Scriptable, ScriptableClass } from './types/Scriptable';
export { Skill } from './types/Skill';
export {
CooldownError,
NotEnoughResourcesError,
PassiveError,
} from './types/SkillErrors';
export { SkillFlag } from './types/SkillFlag';
export { SkillManager } from './types/SkillManager';
export { SkillType } from './types/SkillType';
export { TransportStream } from './types/TransportStream';
export { Util } from './types/Util';
export { WorldAudience } from './types/WorldAudience';
23 changes: 20 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
"main": "index.js",
"types": "index.d.ts",
"dependencies": {
"bcryptjs": "^2.4.0",
"js-yaml": "^3.12.0",
Expand All @@ -29,6 +30,8 @@
"devDependencies": {
"coveralls": "^3.0.2",
"mocha": "^5.2.0",
"nyc": "^13.1.0"
"nyc": "^13.1.0",
"@types/node": "^10.12",
"typescript": "4.1.2"
}
}
2 changes: 1 addition & 1 deletion src/Area.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ class Area extends GameEntity {
* This method is automatically called every N milliseconds where N is defined in the
* `setInterval` call to `GameState.AreaMAnager.tickAll` in the `ranvier` executable. It, in turn,
* will fire the `updateTick` event on all its rooms and npcs
*
*
* @param {GameState} state
* @fires Room#updateTick
* @fires Npc#updateTick
Expand Down
6 changes: 3 additions & 3 deletions src/Attribute.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ class Attribute {
* @param {object} metadata={}
*/
constructor(name, base, delta = 0, formula = null, metadata = {}) {
if (isNaN(base)) {
throw new TypeError(`Base attribute must be a number, got ${base}.`);
if (isNaN(base)) {
throw new TypeError(`Base attribute must be a number, got ${base}.`);
}
if (isNaN(delta)) {
throw new TypeError(`Attribute delta must be a number, got ${delta}.`);
Expand Down Expand Up @@ -66,7 +66,7 @@ class Attribute {

/**
* Bypass raise/lower, directly setting the delta
* @param {amount}
* @param {number} amount
*/
setDelta(amount) {
this.delta = Math.min(amount, 0);
Expand Down
1 change: 1 addition & 0 deletions src/AttributeFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ class AttributeFactory {

/**
* @param {string} name
* @param {number} base
* @param {number} delta
* @return {Attribute}
*/
Expand Down
1 change: 1 addition & 0 deletions src/BehaviorManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ class BehaviorManager {

/**
* @param {string} behaviorName
* @param {string} event
* @param {Function} listener
*/
addListener(behaviorName, event, listener) {
Expand Down
11 changes: 6 additions & 5 deletions src/BundleManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ const srcPath = __dirname + '/';
*/
class BundleManager {
/**
* @param {string} path
* @param {GameState} state
*/
constructor(path, state) {
Expand All @@ -41,6 +42,7 @@ class BundleManager {

/**
* Load in all bundles
* @param {boolean} distribute
*/
async loadBundles(distribute = true) {
Logger.verbose('LOAD: BUNDLES');
Expand Down Expand Up @@ -317,7 +319,7 @@ class BundleManager {
* @param {string} areaName
* @param {string} type
* @param {EntityFactory} factory
* @return {Array<entityReference>}
* @return {Array<string>}
*/
async loadEntities(bundle, areaName, type, factory) {
const loader = this.loaderRegistry.get(type);
Expand Down Expand Up @@ -355,7 +357,7 @@ class BundleManager {

/**
* @param {EntityFactory} factory Instance of EntityFactory that the item/npc will be loaded into
* @param {EntityReference} entityRef
* @param {string} entityRef
* @param {string} scriptPath
*/
loadEntityScript(factory, entityRef, scriptPath) {
Expand All @@ -369,9 +371,9 @@ class BundleManager {
}

/**
* @param {string} bundle
* @param {string} areaName
* @param {string} questsFile
* @return {Promise<Array<entityReference>>}
* @return {Promise<Array<string>>}
*/
async loadQuests(bundle, areaName) {
const loader = this.loaderRegistry.get('quests');
Expand Down Expand Up @@ -455,7 +457,6 @@ class BundleManager {

/**
* @param {string} bundle
* @param {string} helpDir
*/
async loadHelp(bundle) {
Logger.verbose(`\tLOAD: Help...`);
Expand Down
1 change: 1 addition & 0 deletions src/Channel.js
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ class Channel {
* How to render the message the player just sent to the channel
* E.g., you may want "chat" to say "You chat, 'message here'"
* @param {Player} sender
* @param {Player} target
* @param {string} message
* @param {Function} colorify
* @return {string}
Expand Down
2 changes: 1 addition & 1 deletion src/CommandQueue.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ class CommandQueue {
/**
* @param {CommandExecutable} executable Thing to run with an execute and a queue label
* @param {number} lag Amount of lag to apply to the queue after the command is run
* @returns {number}
*/
enqueue(executable, lag) {
let newIndex = this.commands.push(Object.assign(executable, { lag })) - 1;
Expand Down Expand Up @@ -100,7 +101,6 @@ class CommandQueue {
/**
* For a given command index find how many seconds until it will run
* @param {number} commandIndex
* @param {boolean} milliseconds
* @return {number}
*/
getTimeTilRun(commandIndex) {
Expand Down
2 changes: 1 addition & 1 deletion src/Effect.js
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ class Effect extends EventEmitter {
* Elapsed time in milliseconds since event was activated
* @type {number}
*/
get elapsed () {
get elapsed() {
if (!this.startedAt) {
return null;
}
Expand Down
3 changes: 1 addition & 2 deletions src/Item.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ const uuid = require('uuid/v4');
const GameEntity = require('./GameEntity');
const ItemType = require('./ItemType');
const Logger = require('./Logger');
const Metadatable = require('./Metadatable');
const Player = require('./Player');

const { Inventory, InventoryFullError } = require('./Inventory');

/**
Expand Down
8 changes: 4 additions & 4 deletions src/PlayerManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,11 @@ class PlayerManager extends EventEmitter {
}

/**
* @param {Function} fn Filter function
* @return {array}
* @param {Function} predicate Filter function
* @return {array},
*/
filter(fn) {
return this.getPlayersAsArray().filter(fn);
filter(predicate) {
return this.getPlayersAsArray().filter(predicate);
}

/**
Expand Down
Loading