- Limit error catching and suppression to
TimeoutError
s infetchWithRetry()
; all other error types thrown - Update dependency versions to latest
- Rename
fetchWithRetry()
configuration optionretryMax
toretries
- Refactor
fetchWithRetry()
to use fewer lines of code - Update target Bun version from
1.1.8
to1.1.10
- Update dependency versions to latest
- Add
/config
directory to NPM package contents
- Fix measured
Server-Timing
durations which were incorrectly using constructor execution as start time instead ofRouter.prototype.handleRequest()
- Update dependency versions to latest
- Handle unexpected and error responses more correctly in
startDevelopmentServer()
by always showing a500
response and timing in the response row - Update target Bun version from
1.1.7
to1.1.8
- Add function
measureElapsedTime()
tosrc/timeUtils.mts
- Change 2nd parameter of
startDevelopmentServer()
to use Bun'sServer['fetch']
type - Update dependency versions to latest
- Add missing
server
2nd parameter tostartDevelopmentServer()
'sentrypointFunction
parameter - Update dependency versions to latest
- Iterate on
scripts/bun/startDevelopmentServer.mts
script
- Adjust newline output when
muteMetadata
is passed tobuildAndShowMetadata()
- Add missing type documentation
- Add
muteMetadata
parameter tobuildAndShowMetadata()
to optionally prevent printing build metadata to the console - Renamed retry option
changeRetryDelay
toonChangeRetryDelay
to better reflect its meaning - Documentation cleanup: removed manual options object descriptions from description sections in favor of documenting types directly
- Add message to build output specifying which environment is being targetted according to environment variable
NODE_ENV
; defaults to"development"
- Widen the count column so there are 2 space characters minimum between its visible characters and the filename column for
printBuildMetadata()
- Improves visibility for outputs where dimmed text isn't possible such as GitHub Actions
- Change alignment of category column from using raw tab characters to computing proper max column width
- Update target Bun version from
1.1.5
to1.1.7
- Update dependency versions to latest
- Enforce
outdir
with types instead of throwing an exception inbuildAndShowMetadata()
- Add type exports to all modules wherein type use during documentation build is flagged as a warning
- Add function
buildAndShowMetadata()
for a simple, straightforward UX for code building (insrc/buildUtils.mts
) - Update dependency versions to latest
- Update target Bun version from
1.1.4
to1.1.5
- Update dependency versions to latest
- Improve clarity of documentation for function
usingNewTemporaryFile
- Change the function interface for
usingNewTemporaryFile
to use an options object, disable disk flush by default, and allow writer customization
- Add
import
s to examples in the documentation without them
- Add function
usingNewTemporaryFile
to allow seamless creation, appending, and auto-deletion of temporary files via theusing
declaration (insrc/filesystemUtils.mts
)
- Add
fetchWithRetry
debugging insight by showing all retry settings attributable to each logged error
- Improved
fetchWithRetry
- Error response codes cause an error to be thrown if retries remain so the request is retried
- Setting environment variable
DEBUG
to a truthy value logs caught and ignored retry errors
- Change the function signature of
getPerformanceLabel
andgetElapsedTimeFormatted
to accept an options object including a newunitsMinimum
parameter - Update dependency versions to latest
- Change the return value of the development server to be a
Promise
resolving to the return value ofBun.serve()
- Correct documentation for the development server
- Make development server more configurable
- Add ability to set
error
error handler to override'sBun.serve()
's default error page - Add ability to set
serverName
andlowMemoryMode
HTTPS options port
option now takes precedence over existingDEVELOPMENT_SERVER_PORT
environment variable value
- Add ability to set
- Add a 10 second default timeout to
fetchWithRetry
; can be overridden with a newtimeout
parameter (insrc/networkUtils.mts
) - Update dependency versions to latest
- Rename build output label from
Entry-point
toEntry point
(insrc/buildUtils.mts
)
- Fix bugs in new functions
fetchWithRetry
: allow 2nd parameter and all 3 custom options to be optional parameterssleep
: correctly callresolve()
- Add new functions
fetchWithRetry
for auto-retrying failedfetch
requests (insrc/networkUtils.mts
)sleep
for a Promise-based ability to pause execution to be used withawait
(insrc/timeUtils.mts
)
- Update target Bun version from
1.1.3
to1.1.4
- Replace all mention of "utility functions" with "utilities"
- Add function
measureServerTiming()
to easily measure and report execution time of blocks of code using theServer-Timing
header (insrc/timeUtils.mts
)
- Allow
0
to be passed in asstartTime
inbuildServerTimingHeader()
(insrc/timeUtils.mts
)
- Add more detailed documentation to the
Router
class insrc/routerUtils.mts
- Add explanation about how to use eager vs. lazy-loaded and named vs. default module exports for route handlers
- Add example usage for each route instance HTTP method function type
- Fix NPM package error that didn't include the new
src/
directory
- Moved all utility function source files from
utils/
tosrc/
- Added recommended VSCode extensions related to this project
- Cleaned up documentation across most utility function files
- The
Router
now appendsServer-Timing
values for route loading duration to the request object's headers - Added new function
buildServerTimingHeader()
to createServer-Timing
header values - Added new parameters to the
Router
constructor (inutils/routerUtils.mts
)startTime
is the start time of loading a route; used to computeServer-Timing
duration.usesServerTiming
is a boolean indicating ifServer-Timing
headers are sent or not
- Update example usage for
Router
in the documentation (inutils/routerUtils.mts
)
- Fix lazy loading route handlers to actually load lazily instead of eagerly (in
utils/routerUtils.mts
)
- Make
Router
instanceroutes
array private (inutils/routerUtils.mts
)
- In the
Router
class inutils/routerUtils.mts
, path matching is now performed byBun.Glob
- In the
Router
class inutils/routerUtils.mts
, renamehandleMethod
to#handleMethod
to make it a private instance method
- Added lots more features to the
Router
class- Added glob-like route matching with
*
and**
- Added ability to match any route method with
.all()
convenience method - Added more convenience methods. The full list now includes most HTTP methods (see the documentation for more details):
delete
get
head
options
patch
post
put
- Created new utils file
utils/routerUtils.mts
for router utils- Create a new package export
/router
pointing to it - Moved
Router
class fromutils/networkUtils.mts
to here
- Create a new package export
- Added JSDoc documentation to the
Router
class inutils/routerUtils.mts
- Added glob-like route matching with
- Fix bug in the
Router
class inutils/networkUtils.mts
so calling a lazy-loaded route handler function works correctly
- Add lazy-loaded route handler support to the
Router
class inutils/networkUtils.mts
- Add a
Router
class toutils/networkUtils.mts
- Refactor
utils/networkUtils.mts
->startDevelopmentServer()
to check file paths withBun.file().exists()
instead ofaccess
fromnode:fs/promises
- Update the pull request template to include a reminder to build new documentation
- Document the use of the
DEBUG
environment variable inutils/networkUtils.mts
->startDevelopmentServer()
- Add documentation how configuration options map back to those in
Bun.serve()
inutils/networkUtils.mts
->startDevelopmentServer()
- Document default values for
port
configuration option inutils/networkUtils.mts
->startDevelopmentServer()
- Changed configuration options interface in
utils/networkUtils.mts
->startDevelopmentServer()
- Renamed options
certificate
->certificatePath
certificateAuthority
->certificateAuthorityPath
privateKey
->privateKeyPath
- Added optional ability to pass an array of paths to the above options
port
can be astring
or anumber
- Renamed options
- Fix TypeScript example documentation consistency error in
utils/networkUtils.mts
->startDevelopmentServer()
- Fix the documentation's configuration object display in
utils/networkUtils.mts
->startDevelopmentServer()
- Changed the function signature of
utils/networkUtils.mts
->startDevelopmentServer()
to accept a single configuration object instead of multiple configuration parameters- Documentation updated
- Disabled rule
jsdoc/check-line-alignment
- Disabled JSDoc parameter expansion so parameters are more clearly shown; type information now only lives in parameter detail tables
- Enable links to source code in documentation
- Update dependency versions to latest
- Add
@mangs
as code owner - Update pull request template to remove link to
package.json
- Update Bun target version from
1.1.2
to1.1.3
- Update dependency versions to latest
- Build markdown documentation for all utils using TypeDoc and
typedoc-plugin-markdown
- Stored in the
documentation/
directory
- Stored in the
- Added JSDoc comments to all files and functions
- Verified correctness by enabling
eslint-plugin-jsdoc
- Verified correctness by enabling
- Added new util function
utils/filesystemUtils.mts
->findMissingPaths()
- Renamed function in
utils/filesystemUtils.mts
getFilesRecursive()
->getPathsRecursive()
- Minor refactor of
scripts/bun/checkEnvironmentVersions.mts
- Add more HTTPS options
certificateAuthority
for a custom certificate authoritydiffieHellmanParametersPath
to customize Diffie Hellman parameterspassphrase
to provide the passphrase used to create a TLS certificate
- Decouple hostname from HTTPS options
- Improve error messaging when HTTPS configuration files cannot be loaded
- Ensure process termination when an HTTPS configuration file cannot be loaded
- Display server options when
DEBUG
environment variable is set to a truthy value
- Fix HTTPS error
OpenSSL NO_START_LINE
inutils/networkUtils.mts
->startDevelopmentServer()
- Reduce confusion and possibility for errors by removing option overrides from
utils/networkUtils.mts
->startDevelopmentServer()
- Bug fixes for
utils/networkUtils.mts
->startDevelopmentServer()
- Show an error if the either the HTTPS
certificate
orprivateKey
fields do not point to a file - Fix
optionOverrides
field not allowing most fields to be used
- Show an error if the either the HTTPS
- Added additional functionality to
utils/networkUtils.mts
->startDevelopmentServer()
- HTTPS serving with optional custom hostname support
- Using any option that
Bun.serve()
accepts via an override parameter
- Changed the function signature of
utils/networkUtils.mts
->startDevelopmentServer()
to accept the entrypoint function directly instead of an ES module object and a separate key to reference the entrypoint function - Added locale override parameters to functions that could take advantage of them:
utils/consoleUtils.mts
->getPerformanceLabel()
utils/filesystemUtils.mts
->getHumanReadableFilesize()
utils/timeUtils.mts
->getElapsedTimeFormatted()
- Update target Bun version to
1.1.2
to inherit Bun's types fornode:util
styleText()
; the associatedglobal.d.ts
was removed
- Improve linting correctness of
bun
imports by using theimport/core-modules
ESLint rule
- Removed NPM dependency
yoctocolors
by replacing it withstyleText
function fromnode:util
- Replaced
.length
string length calculation withBun.stringWidth()
where unicode and emoji character usage is possible - Rename
package.json
scriptcheck:linting:eslint
tocheck:lint-conflicts
- Bun target version updated to
1.1.1
- Enable Bun-native module support in TypeScript 5.4+ wherein
import
andrequire
can be used simultaneously - Use local workspace TypeScript version by default in VS Code
- Update dependency versions to latest
- Minor tweaks to
./scripts/bun/checkEnvironmentVersions.mts
- Bun target version updated to
1.0.30
- Update dependency versions to latest
- Prepared
./tsconfig.json
for supporting the Bun-specific features of TypeScript 5.4, specifically acompilerOptions.module
value of"Preserve"
- Make ambiguous and hidden characters easier to identify in VSCode by enabling the following settings:
editor.unicodeHighlight.ambiguousCharacters
editor.unicodeHighlight.invisibleCharacters
getElapsedTimeFormatted()
now usesms
units by default to match Bun's output- Update dependency versions to latest
- Add NPM package version number badge to
README.md
that links to the package homepage on npmjs.com - Add homepage and repository metadata to
package.json
- Fix performance regression in
scripts/bun/checkEnvironmentSymlinks.mts
- Bun target version updated to
1.0.29
- Change the pull request template to be non-empty
- Update dependency versions to latest
- First public release