availity-workflow
availity-workflow copied to clipboard
Add Logic For Rewriting URLs in JSON Response for Proxy
🚀 Feature request
Current Behavior
Any JSON response that comes back with contains a URL that points to the targetHost will not work if clicked via some Link component on an app because it will not be relative to localhost when developing.
Desired Behavior
The proxy should intercept the response before it reaches the UI, modify the URLs, if any exist, and then send it to the UI.
Suggested Solution
node-http-proxy-json looks to update this however, its not modifying the content-length which is why we had to revert #314
Example
With targetHost of http://www.helloworld.com
{
"hello": "http://www.helloworld.com/test/123"
}
Should get modified to:
{
"hello": "http://localhost:3000/test/123"
}
Once we can get the content-length updated it should work for all types of API responses.
Additional context
https://github.com/Availity/availity-workflow/pull/350
We only need to bump the version of node-http-proxy-json. Looks like the one that was used was really old.
I suggest reverting 281a2d7f200a90 and just bumping the version of node-http-proxy-json.
Still no dice on that
https://github.com/langjt/node-http-proxy-json/blob/master/index.js#L22-L24
https://github.com/langjt/node-http-proxy-json/issues/10
We will have to manually change the content-length on another proxyRes step before returning.
I don't see any manual change of the content-length within https://github.com/Availity/availity-workflow/blob/master/packages/workflow/scripts/proxy.js
The code that you linked is the code that makes this work with newer versions of node-http-proxy-json (by removing the content-length and thus there is no mismatch)
I think api-core may be checking the content-length match then or something is bc I tested this out via @availity/workflow@canary and it still threw that error