Because tryResolveAppPath returns undefined when it can’t resolve a
path the debug output for directories that cannot be resolved is fairly
useless.
You get output like this:
loopback👢compiler Skipping unknown module source dir undefined
+0ms
When you want output like this:
loopback👢compiler Skipping unknown module source dir "./models"
+0ms
* Support iisnode using named pipes as PORT value (Jonathan Sheely)
* support 'mixinsources' option (Pradnya Baviskar)
* compiler: Simplify verifyModelDefinitions() (Miroslav Bajtoš)
* Fix coding style issues, add API docs (Miroslav Bajtoš)
* Extend options arg to support custom model definitions (Shlomi Assaf)
* add support for mixins - [mixinDirs]: List of directories to look for files containing model mixin definition. (Pradnya Baviskar)
Port can't be number checked to support iisnode. Using a parseInt()
or number isNumber function won't work if we want to support iisnode
which uses named pipes for ports (ex. \\.\pipe\mypipe)
Extend the options argument of boot/compile to allow the developer
to supply custom model definitions (to replace the result of
findModelDefinitions). Together with the existing options.models,
it allows to specify all model-related data and still use the benefits
which loopback-boot provides (most notably loading models in order
defined by inheritance, i.e. base models are loaded before models that
are extending them).
Use the global `isFinite` function to find the first valid port
number. This is the same behaviour as `_.isFinite` in lodash@2.x.
As a result, only values that are a valid number are accepted, e.g.
"0" is accepted but "0xy" is not.
* Upgrade lodash and drop underscore.string (Bryan Clark)
* add console.error message to a bad require in a boot script (Bryan Clark)
* Support per-application registry of models (Miroslav Bajtoš)
* Use filename as default value for Model name (Pradnya Baviskar)
* compiler: code cleanup (Miroslav Bajtoš)
* Improve the resolution of relative paths - resolve module relative path for component - prioritize coffeescript over json (Pradnya Baviskar)
* Resolve module paths as relative to appRootDir - for middleware (Pradnya Baviskar)
* Support for multiple apps in browserified bundle. (Krishna Raman)
* Resolve missing file extension for module relative paths (Pradnya Baviskar)
* Resolve module paths as relative to appRootDir (Pradnya Baviskar)
* Resolve relative paths in using appRootDir (Pradnya Baviskar)
* Add feature to disable component (Pradnya Baviskar)
* Fix test for different line endings on Windows (Pradnya Baviskar)
* Refactor unit test assertions to be more specific (Simon Ho)
* Add unit test to verify `app.booting flag status (Simon Ho)
Update to the latest version of "lodash" to use the string functions
included and drop the usage of "underscore.string".
Existing tests run checks for `flying-car` definitions to be named
`FlyingCar` so there doesn’t seem to be a need to add more checks.
`isFinite` changed from the older version of lodash to no longer coerce
strings into numbers, this commit adds a call of `parseInt` before
checking whether the value is a finite number.
`parseInt` on an undefined returns NaN which isFinite does not identify
as a number.
While changing this part, the code was reworked to use `Number.isFinite`
and thus the executor no longer depends on lodash. This should reduce
the size of the browser bundle.
- Ensure `app.booting` is initially `undefined`
- Ensure `app.booting` is set to true during boot execution
- Ensure `app.booting` is set to false upon boot completion