- The Snowboard and PluginLoader objects are now frozen and cannot be modified.
- Added a Proxy in front of Snowboard to handle plugin loading
- Plugin "Snowboard" instances are blocked from running certain methods
- Update tests to check hardening
- Deprecate "runPluginRefreshCommand" method and replace with "instantiatePlugin", to better describe the functionality within.
- Use namespace to guess plugin being detected, falling back to path if there is no namespace given - this fixes testing for symlinked plugins.
- Add type hints and return types for most methods
This ensures that the mix:compile command returns the correct exit codes based on the status of the compilation. It also adds the following option flags to `mix:compile`:
- `--silent`: Runs the compilation process silently without outputting any details from Webpack / Mix
- `--stop-on-error`: Exits the compilation if an error is encountered
- `--manifest`: Defines the package.json file to be used for the compilation
This splits the testing suite into the separate modules as appropriate in order to improve the reliability of the testing suite as a whole and make it easier for developers to have an up to date testing suite from the core to build off of. Additionally the tests are now namespaced and some minor improvements to the PluginManager were made.
Now the PluginManager will internally treat plugin identifiers as lower case strings, only transforming them to their normalized versions when requested by methods like getPlugins() & getAllPlugins(). The idea behind this is that it provides a much simpler way to internally handle checking, especially for plugin replacement where casing could cause issues.
Replaces #576. Fixes#575.