The process of checking for directory existence then creating
A directory was causing race conditions when running scripts
In parallel. I inverted the logic to always try to
Create the directory without checking 1st, then handle any errors.
* feat(core): add cwd option to commands runner
* docs(core): add docs for new cwd option in commands runner
* cleanup(core): remove unecesarry import in test
* fix(core): fix failing unit test
* feat(core): allow additionalProperties for run commands
* docs(core): format docs for command runner
* fix(core): perform package.json update if one of the deps is missing
* fix(core): add test for package.json update
Co-authored-by: Juri Strumpflohner <juri.strumpflohner@gmail.com>
* Revert "Revert "fix(core): sort node names for module resolution""
This reverts commit 0b77072fcfe63f8d02fccb73ba138aca99cb7f66.
* fix(core): add target project locator
This will sort nodes by length of the root (high to low) then nodes that have no root.
It also uses TypeScript to first try and resolve a module. If it is not found via TypeScript, it will
fall back to using a string match.
* feat(core): add support for interactive mode when using presets
* fix(angular): get interactive flag from schematic context for preset task
* docs(core): add note about using interactive mode with presets
* fix(core): update parsing of interactive argument for preset
* fix(testing): fix race condition in tests for parallel commands runner
We are now checking for the presence of both command outputs regardless of the order they were
written in to the file
* fix(testing): check if the runner schedules all tasks when running in parallel
In addition to checking whether the tasks complete and they write to the file, we are now also
checking if the runner creates all the tasks synchronously when invoked with parallel: true, vs.
zero or at most 1 when ran in serial mode.
* fix(testing): wait a micro-tick for the serial cmd test runner
Due to differences in implementation between serial and parallel runner, we need to wait for a
micro-tick in the serial test runner tests before checking for calls to spawn-process, otherwise it
would be zero.
buildable libraries should only be able to import other buildable libraries
to avoid confusion. Importing non-buildable libs would effectively
mean embedding their src into the buildable libs, even potentially
multiple times.