All notable changes to this project will be documented in this file.
- Refactored the Redis cache
- Rename nonCacheable endpoint to secondaryEndpoint
- Apply redis cache to all backend endpoints
- Bugfix for nonCacheable endpoints being called on previews
- Create nonCacheable enpoint
- Fixed a vulnerability whereby attacks could be passed via URL queries
- Added unit tests to the new functions
- Made the @babel/plugin-proposal-optional-chaining a dependency (not a dev one)
- Update Hapi to 18.4.0
- Require Node 10.18.1
- Created
cachePurgeHandler
method to allow users to declare all possible keys of a cache entry
- Upgraded React, React Hot Loader, Loadable Components and Babel
- Removed
--esmodule
option
- Added feature to enable client to pass a function which modifies the cache key used, taking in the request and initial cache key as arguments
- Added feature to enable client access to headers passed during requests
- Added tests for header access feature
- Added
apiBasePath
option to override the default baseUrl behaviour at the site level - Added
apiBasePath
option to override the default baseUrl behaviour at the route level - Renamed
baseUrl
toapiBaseUrl
at the route level
- Changed the
PORT
env toTAPESTRY_PORT
in the tests - Changed the
LOG_LEVEL
in the tests
- Update Winston and logging methods to allow project level NGINX
- Create
TAPESTRY_HOST
&TAPESTRY_PORT
env vars
- Added a
baseUrl
option per route to overriding the default baseUrl behaviour, including the preview revisions endpoint
- Enabled
--esmodule
mode, to createmodule
builds without unneccessary transpilations
- Return 404 if any API endpoints fail
- Only wrap API response in
{ data: {} }
if an array
- Allow
{ path: '/', error: true }
to return 404 - Only bundle
missing-view
anderror-view
if PROD
- Check if request is preview before returning cached response
- Revert preview cache behaviour
- Serialize/Deserialize responseObject into cache
- Fix potential cache/response issue in dynamic
- Set cache for all preview links, rely on Tapestry Wordpress Plugin to produce unique hash per update
- Remove tapestry query string data from URL on load
- Fix normalised path issue
- Pass through headers for proxies
- Refactor dynamic handler, and render function in preperation for serverless command
- Lock version number of ps-tree to fix event-stream issue (dominictarr/event-stream#116)
- Fix issue with dev server and hook registering order
- Broadcast websocket events for server compilation to the client
- React Error Overlay for browser error notification in dev
- Noisier terminal output during dev
- Added
customDoctype
option torouteOptions
. If a value is passed it will override the default one<!doctype html>
- Updated all babel packages to 7.0.0
- Replaced
babel-preset-razzle
with our custom babel set-up, we still use mostly the same packages and the same env configuration but we're now adding our loadable-components and emotion here - Improve support for custom
.babelrc
. This has always worked but it was using a slightly black magic webpack/babel approach, this update usesbabel-merge
to combine any custom babel presets/plugins with our base set - Expose babel configuration via
tapestry-lite/babel
, helpful for testing purposes on the project using tapestry - Updated
@babel/preset-env
useBuiltIns to usage, this will only polyfill what we use, rather than the entire subset of required polyfills for the browser - Add support for
browserslist
file to define what@babel/polyfill
should include, this is the behaviour supported in@babel/preset-env
so browerslist files will become more common - Removed the unneccessary
type="text/javascript"
from the bootstrap data and fixed the incorrectly escaped_tapestry
object - Add support for an object export from a custom webpack config
- Filter falsey items from routes array
- Fix case sensitive redirect lookup
- Pass headers on through API proxy
- Test for falsey values when setting proxies
- Added support for proxies from a different domain
- Fix oddly formatted chunks (within assets.json) adding malformed script references to the page
- Boost initial boot time with improved Webpack config creation
- Fixed server hot reloading
- Fixed Loadable Components regression in 1.4.1
- Removed
matchRoutes
helper from client bundle
- Changed schema of
window.__TAPESTRY_DATA__
. Now includes request data and params. This is means that where previously you'd accessprops.params
in the top level component, you'll now useprops._tapestry.requestData.params
- Fixed Loadable Components initial server render
- Added
disableDoctype
functionality torouteOptions