Merge pull request #857 from lowdefy/cli-blocks-server-renderer

fix(cli): Use renderer served from blocks server url if configured.
This commit is contained in:
Sam 2021-09-23 17:32:53 +02:00 committed by GitHub
commit 269c15b5eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 9 deletions

View File

@ -57,9 +57,16 @@ async function getExpress({ context, gqlServer }) {
// serve webpack files
app.use(express.static(path.resolve(__dirname, 'shell')));
// serve version for renderer module federation
app.use('/api/dev/version', (req, res) => {
res.json(context.lowdefyVersion);
// Serve rendererRemoteEntryUrl for renderer module federation
app.use('/api/dev/rendererRemoteEntryUrl', (req, res) => {
let rendererRemoteEntryUrl;
if (context.options.blocksServerUrl) {
rendererRemoteEntryUrl = `${context.options.blocksServerUrl}/renderer/remoteEntry.js`;
} else {
rendererRemoteEntryUrl = `https://blocks-cdn.lowdefy.com/v${context.lowdefyVersion}/renderer/remoteEntry.js`;
}
res.json(rendererRemoteEntryUrl);
});
// Redirect all 404 to index.html with status 200

View File

@ -18,9 +18,9 @@ import React from 'react';
import ReactDOM from 'react-dom';
import { Loading, loadWebpackFederatedModule, useDynamicScript } from '@lowdefy/block-tools';
function Shell({ version }) {
function Shell({ rendererRemoteEntryUrl }) {
const { ready, failed } = useDynamicScript({
src: `https://blocks-cdn.lowdefy.com/v${version}/renderer/remoteEntry.js`,
src: rendererRemoteEntryUrl,
});
if (!ready) {
@ -40,10 +40,13 @@ function Shell({ version }) {
);
}
const getVersion = async () => {
return (await fetch(`/api/dev/version`)).json();
const getRendererRemoteEntryUrl = async () => {
return (await fetch(`/api/dev/rendererRemoteEntryUrl`)).json();
};
getVersion().then((version) => {
ReactDOM.render(<Shell version={version} />, document.getElementById('root'));
getRendererRemoteEntryUrl().then((rendererRemoteEntryUrl) => {
ReactDOM.render(
<Shell rendererRemoteEntryUrl={rendererRemoteEntryUrl} />,
document.getElementById('root')
);
});

View File

@ -162,6 +162,8 @@ _ref:
- `@lowdefy/blocks-markdown` to be hosted at `{BLOCK_SERVER_URL}/blocks-markdown/`.
- `@lowdefy/blocks-echarts` to be hosted at `{BLOCK_SERVER_URL}/blocks-echarts/`.
If you wish to run the CLI dev server, the `@lowdefy/renderer` package build artifacts (located in the `dist` directory) should also be served from `{BLOCK_SERVER_URL}/renderer/`.
- _ref:
path: templates/navigation_buttons.yaml
vars: