fix(electron): extensions
This commit is contained in:
parent
f1df3c60ce
commit
1bcd198aaf
|
@ -24,11 +24,7 @@ exports.hooks = {
|
||||||
/**
|
/**
|
||||||
* Install devtools extensions (by default).
|
* Install devtools extensions (by default).
|
||||||
*
|
*
|
||||||
* If `true`, will install some devtools extensions based on which flecks are enabled.
|
|
||||||
*
|
|
||||||
* You can pass an array of Chrome store IDs to install a list of custom extensions.
|
* You can pass an array of Chrome store IDs to install a list of custom extensions.
|
||||||
*
|
|
||||||
* Extensions will not be installed if `'production' === process.env.NODE_ENV`
|
|
||||||
*/
|
*/
|
||||||
installExtensions: true,
|
installExtensions: true,
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -21,7 +21,7 @@
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@flecks/core": "^3.0.0",
|
"@flecks/core": "^3.0.0",
|
||||||
"electron": "^18.0.1",
|
"electron": "^28.1.4",
|
||||||
"electron-devtools-installer": "^3.2.0"
|
"electron-devtools-installer": "^3.2.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
@ -2,10 +2,6 @@ import {Flecks} from '@flecks/core';
|
||||||
|
|
||||||
const electron = __non_webpack_require__('electron');
|
const electron = __non_webpack_require__('electron');
|
||||||
|
|
||||||
const {
|
|
||||||
NODE_ENV,
|
|
||||||
} = process.env;
|
|
||||||
|
|
||||||
let win;
|
let win;
|
||||||
|
|
||||||
async function createWindow(flecks) {
|
async function createWindow(flecks) {
|
||||||
|
@ -39,27 +35,15 @@ export const hooks = {
|
||||||
},
|
},
|
||||||
'@flecks/electron/server.window': async (win, flecks) => {
|
'@flecks/electron/server.window': async (win, flecks) => {
|
||||||
const {public: $$public} = flecks.get('@flecks/web');
|
const {public: $$public} = flecks.get('@flecks/web');
|
||||||
const {
|
const {installExtensions, url = `http://${$$public}`} = flecks.get('@flecks/electron');
|
||||||
installExtensions,
|
if (installExtensions) {
|
||||||
url = `http://${$$public}`,
|
const installer = __non_webpack_require__('electron-devtools-installer');
|
||||||
} = flecks.get('@flecks/electron');
|
const {default: installExtension} = installer;
|
||||||
if (installExtensions && 'production' !== NODE_ENV) {
|
await installExtension([
|
||||||
const {
|
...Array.isArray(installExtensions) ? installExtensions : [],
|
||||||
default: installExtension,
|
...flecks.invokeFlat('@flecks/electron/server.extensions', installer)
|
||||||
REDUX_DEVTOOLS,
|
.flat(),
|
||||||
REACT_DEVELOPER_TOOLS,
|
]);
|
||||||
} = __non_webpack_require__('electron-devtools-installer');
|
|
||||||
let extensions = installExtensions;
|
|
||||||
if (!Array.isArray(extensions)) {
|
|
||||||
extensions = [];
|
|
||||||
if (flecks.fleck('@flecks/react')) {
|
|
||||||
extensions.push(REACT_DEVELOPER_TOOLS);
|
|
||||||
}
|
|
||||||
if (flecks.fleck('@flecks/redux')) {
|
|
||||||
extensions.push(REDUX_DEVTOOLS);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await installExtension(extensions);
|
|
||||||
}
|
}
|
||||||
await win.loadURL(url);
|
await win.loadURL(url);
|
||||||
},
|
},
|
||||||
|
|
|
@ -3,6 +3,7 @@ import {Flecks} from '@flecks/core';
|
||||||
import ssr from './ssr';
|
import ssr from './ssr';
|
||||||
|
|
||||||
export const hooks = {
|
export const hooks = {
|
||||||
|
'@flecks/electron/server.extensions': (installer) => [installer.REACT_DEVELOPER_TOOLS],
|
||||||
'@flecks/web/server.stream.html': Flecks.priority(
|
'@flecks/web/server.stream.html': Flecks.priority(
|
||||||
(stream, req, flecks) => (
|
(stream, req, flecks) => (
|
||||||
flecks.get('@flecks/react.ssr') ? ssr(stream, req, flecks) : stream
|
flecks.get('@flecks/react.ssr') ? ssr(stream, req, flecks) : stream
|
||||||
|
|
|
@ -9,6 +9,11 @@ const debug = D('@flecks/redux/server');
|
||||||
const debugSilly = debug.extend('silly');
|
const debugSilly = debug.extend('silly');
|
||||||
|
|
||||||
export const hooks = {
|
export const hooks = {
|
||||||
|
'@flecks/electron/server.extensions': (installer) => [installer.REDUX_DEVTOOLS],
|
||||||
|
'@flecks/react.providers': Flecks.priority(
|
||||||
|
(req) => [Provider, {store: req.redux}],
|
||||||
|
{before: '@flecks/react/router/server'},
|
||||||
|
),
|
||||||
'@flecks/web/server.request.route': (flecks) => async (req, res, next) => {
|
'@flecks/web/server.request.route': (flecks) => async (req, res, next) => {
|
||||||
const slices = await flecks.invokeMergeUnique('@flecks/redux.slices');
|
const slices = await flecks.invokeMergeUnique('@flecks/redux.slices');
|
||||||
const reducer = createReducer(flecks, slices);
|
const reducer = createReducer(flecks, slices);
|
||||||
|
@ -30,8 +35,4 @@ export const hooks = {
|
||||||
preloadedState: req.redux.getState(),
|
preloadedState: req.redux.getState(),
|
||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
'@flecks/react.providers': Flecks.priority(
|
|
||||||
(req) => [Provider, {store: req.redux}],
|
|
||||||
{before: '@flecks/react/router/server'},
|
|
||||||
),
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user