module

libWrapper

Endorsements
24
Installs
82.0073%
Comments
2
Latest version1.13.2.0
Minimum Core0.6.5
Compatible Core12
Last updated5 months ago
Created4 years ago
Authors
Languages English
Español
Polski
Português (Brasil)
Português (Portugal)
日本語
Systems All systems
Project source Project URL
Report bugs Bug tracker URL

FVTT libWrapper

Library for Foundry VTT which provides package developers with a simple way to modify core Foundry VTT code, while reducing the likelihood of conflict with other packages and making troubleshooting easier.

 

Why?

The libWrapper library is intended to be used as a replacement for traditional monkey-patching methods, to make interoperability and troubleshooting easier.

It provides a standardized API, improving consistency and compatibility while reducing the likelihood of mistakes.

Its wrapping mechanisms attempt to detect and prevent conflicts between different packages. When conflicts cannot be prevented, libWrapper aids troubleshooting by notifying the game master of what went wrong, and which packages are responsible.

  Traditional monkey-patching libWrapper
Conflict troubleshooting Requires waiting until something goes wrong.
User is responsible for figuring out if an error is caused by a conflict, and which package(s) caused it.
Able to detect most conflicts and warn the user, in many cases automatically upon game launch.
Error Detection None by default. When any error occurs, libWrapper will detect which package(s) caused it (if any), and tell the user.
API None.
Each developer is on their own.
Provides a standard API enforcing best-practices with included error-checking.
Wrapper execution order Package execution order, i.e. random. Customizable.
Developers can request to run first or last, if their module requires it.
Game masters can troubleshoot conflicts by prioritising or deprioritising packages.
Edge cases Each developer must understand the intricacies of Javascript. Handled automatically and transparently.

 

Examples

Note: Images may be out-of-date.

 

Usage

See the project Github page for usage and documentation.

2
0
Would love your thoughts, please comment.x
()
x