Skip to content

Dependencies within monorepo are not loaded #453

@philihp

Description

@philihp

Hathora is not loading installing dependencies from packages within the monorepo

Demo repo: https://github.com/philihp/hathora-et-labora/tree/69b1a8dfe3828544a1580d35ff0eef46c679057f

The package has a dependency declared at https://github.com/philihp/hathora-et-labora/blob/69b1a8dfe3828544a1580d35ff0eef46c679057f/game/package.json
and loaded at
https://github.com/philihp/hathora-et-labora/blob/69b1a8dfe3828544a1580d35ff0eef46c679057f/game/src/commands/start.ts

file:///Users/philihp/work/hathora-et-labora/game/src/commands/start.ts:34
  const shuffledColors = fastShuffle(playerOrderSeed, colors)
                         ^
TypeError: fastShuffle is not a function
    at start (file:///Users/philihp/work/hathora-et-labora/game/src/commands/start.ts:34:26)
    at handler (file:///Users/philihp/work/hathora-et-labora/game/src/reducer.ts:101:7)
    at n.run (file:///Users/philihp/work/hathora-et-labora/game/node_modules/ts-pattern/src/match.ts:162:12)
    at n.e.otherwise (file:///Users/philihp/work/hathora-et-labora/game/node_modules/ts-pattern/src/match.ts:131:7)
    at reducer (file:///Users/philihp/work/hathora-et-labora/game/src/reducer.ts:106:6)
    at Impl.start (file:///Users/philihp/work/hathora-et-labora/server/impl.ts:88:22)
    at ImplWrapper._getResult (file:///Users/philihp/work/hathora-et-labora/server/.hathora/wrapper.ts:50:21)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async ImplWrapper.getResult (file:///Users/philihp/work/hathora-et-labora/server/.hathora/wrapper.ts:29:17)
    at async Store.onMessage (file:///Users/philihp/work/hathora-et-labora/server/.hathora/store.ts:106:22)

Specifically for this case, I could dependency-inject a chance.js from impl, but the problem will still exist for other dependencies.

Could you advise what the correct way to include dependencies in a game is? Should game logic be kept as external dependencies?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions