no issue
- When adding more methods under test to this file the require statement will becom difficult to read in one long line. Multiline statement is way nicer to track in git history too
refs bd6a295674
- earlier this week I refactored this block of code to get rid of
explicit `stat` calls, to make the fs operations a little more
lightweight
- I inadvertantly forgot that readdir doesn't follow symlinks, and we
were previously use stat that does, so it was ignoring themes that were
symlinked into `content/themes`
- instead of rolling back my change, I've added an if-statement to call
`fs.stat` and check the origin of the symlink to see if it's a
directory
- also added a test that fails without this change
- we don't need to do both a `fs.readdir` and a `fs.stat` because
`fs.readdir` has the `withFileTypes` which returns the directory entry
info and so this avoids an extra stat syscall
- in the event we get an unknown error bubble up, we don't handle the
templating on the error name
- `@tryghost/tpl` throws an error because we pass an undefined string:
`Cannot read properties of undefined (reading 'replace')`
- this commit adds handling to fallback to a different user message in
that event so we don't cause a 500 error
no issue
Change to error handling caused all theme errors to be reported in Sentry, this fix (and a respective fix in Ghost) allows the error to be prepared for sentry before replacing the stack
refs: https://github.com/TryGhost/Team/issues/1369
If we prepare the error for users to view before using Sentry, then the error passed to Sentry will have the stack trace removed for production environments.
@tryghost/errors@1.2.5 also made it so that the error is not mutated, but cloned and a new one is returned.
refs https://github.com/TryGhost/Toolbox/issues/174
- ok, iteration 3 on how this library should work
- 95% of my use cases just need to pass an knex instance and return if
it's mysql/sqlite
- i don't want to have to initialize the class in this library to get
that
- this commit reworks the public interface to return a function with
some simple `is*` functions for those uses cases, or to return the
class otherwise
refs https://github.com/TryGhost/Toolbox/issues/174
- this exposes `isMySQL` and `isSQLite` functions which can be used
within Ghost to figure out which DB we are using
- also cleans up public properties of the class
refs https://github.com/TryGhost/Toolbox/issues/203
- without `--all`, c8 will ignore files that aren't covered in tests, so
they won't pull the test coverage down
- this means we have artificially high coverage scores
- this commit adds `--all` where previously missing