Skip to content

Commit

Permalink
chore(plugin-vite): cleanup code style
Browse files Browse the repository at this point in the history
  • Loading branch information
caoxiemeihao authored and BlackHole1 committed Jul 8, 2024
1 parent 29d4e0b commit 5880756
Show file tree
Hide file tree
Showing 22 changed files with 42 additions and 37 deletions.
11 changes: 11 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,17 @@
"node/no-unpublished-require": "off",
"node/shebang": "off"
}
},
{
"files": ["packages/plugin/vite/src/**/*.ts"],
"rules": {
"node/no-unpublished-import": [
"error",
{
"allowModules": ["vite"]
}
]
}
}
]
}
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@
"fast-glob": "^3.2.7",
"filenamify": "^4.1.0",
"find-up": "^5.0.0",
"flora-colossus": "^2.0.0",
"form-data": "^4.0.0",
"fs-extra": "^10.0.0",
"got": "^11.8.5",
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
"@electron-forge/web-multi-logger": "7.4.0",
"chalk": "^4.0.0",
"debug": "^4.3.1",
"flora-colossus": "^2.0.0",
"fs-extra": "^10.0.0",
"listr2": "^7.0.2"
},
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/Config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line node/no-unpublished-import
import type { LibraryOptions } from 'vite';

export interface VitePluginBuildConfig {
Expand Down
27 changes: 15 additions & 12 deletions packages/plugin/vite/src/ViteConfig.ts
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
import debug from 'debug';
// eslint-disable-next-line node/no-unpublished-import
import { loadConfigFromFile, mergeConfig } from 'vite';

import { getConfig as getMainViteConfig } from './config/vite.main.config';
import { getConfig as getPreloadViteConfig } from './config/vite.preload.config';
import { getConfig as getRendererViteConfig } from './config/vite.renderer.config';

import type { VitePluginBuildConfig, VitePluginConfig, VitePluginRendererConfig } from './Config';
// eslint-disable-next-line node/no-unpublished-import
import type { ConfigEnv, UserConfig } from 'vite';

const d = debug('@electron-forge/plugin-vite:ViteConfig');

type Target = NonNullable<VitePluginBuildConfig['target']> | 'renderer';

export default class ViteConfigGenerator {
constructor(private readonly pluginConfig: VitePluginConfig, private readonly projectDir: string, private readonly isProd: boolean) {
d('Config mode:', this.mode);
}

async resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, target?: VitePluginBuildConfig['target']) {
async resolveConfig(buildConfig: VitePluginBuildConfig | VitePluginRendererConfig, target: Target): Promise<UserConfig> {
const configEnv: ConfigEnv = {
// @see - https://vitejs.dev/config/#conditional-config
command: this.isProd ? 'build' : 'serve',
Expand All @@ -31,14 +31,17 @@ export default class ViteConfigGenerator {
};

// `configEnv` is to be passed as an arguments when the user export a function in `vite.config.js`.
const userConfig = (await loadConfigFromFile(configEnv as ConfigEnv, buildConfig.config))?.config ?? {};
if (target === 'main') {
return mergeConfig(getMainViteConfig(configEnv as ConfigEnv<'build'>), userConfig);
}
if (target === 'preload') {
return mergeConfig(getPreloadViteConfig(configEnv as ConfigEnv<'build'>), userConfig);
const userConfig = (await loadConfigFromFile(configEnv, buildConfig.config))?.config ?? {};
switch (target) {
case 'main':
return mergeConfig(getMainViteConfig(configEnv as ConfigEnv<'build'>), userConfig);
case 'preload':
return mergeConfig(getPreloadViteConfig(configEnv as ConfigEnv<'build'>), userConfig);
case 'renderer':
return mergeConfig(getRendererViteConfig(configEnv as ConfigEnv<'renderer'>), userConfig);
default:
throw new Error(`Unknown target: ${target}, expected 'main', 'preload' or 'renderer'`);
}
return mergeConfig(getRendererViteConfig(configEnv as ConfigEnv<'renderer'>), userConfig);
}

get mode(): string {
Expand All @@ -56,7 +59,7 @@ export default class ViteConfigGenerator {
const configs = this.pluginConfig.build
// Prevent load the default `vite.config.js` file.
.filter(({ config }) => config)
.map<Promise<UserConfig>>((buildConfig) => this.resolveConfig(buildConfig, buildConfig.target ?? 'main'));
.map((buildConfig) => this.resolveConfig(buildConfig, buildConfig.target ?? 'main'));

return await Promise.all(configs);
}
Expand All @@ -69,7 +72,7 @@ export default class ViteConfigGenerator {
const configs = this.pluginConfig.renderer
// Prevent load the default `vite.config.js` file.
.filter(({ config }) => config)
.map<Promise<UserConfig>>((buildConfig) => this.resolveConfig(buildConfig));
.map((buildConfig) => this.resolveConfig(buildConfig, 'renderer'));

return await Promise.all(configs);
}
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/VitePlugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import chalk from 'chalk';
import debug from 'debug';
import fs from 'fs-extra';
import { PRESET_TIMER } from 'listr2';
// eslint-disable-next-line node/no-unpublished-import
import { default as vite } from 'vite';

import { onBuildDone } from './util/plugins';
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/config/vite.base.config.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import { builtinModules } from 'node:module';

import type { AddressInfo } from 'node:net';
// eslint-disable-next-line node/no-unpublished-import
import type { ConfigEnv, Plugin, UserConfig, ViteDevServer } from 'vite';

export const builtins = ['electron', ...builtinModules.map((m) => [m, `node:${m}`]).flat()];
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/config/vite.main.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line node/no-unpublished-import
import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite';

import { external, getBuildConfig, getBuildDefine, pluginHotRestart } from './vite.base.config';
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/config/vite.preload.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line node/no-unpublished-import
import { type ConfigEnv, mergeConfig, type UserConfig } from 'vite';

import { external, getBuildConfig, pluginHotRestart } from './vite.base.config';
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/config/vite.renderer.config.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line node/no-unpublished-import
import { type ConfigEnv, type UserConfig } from 'vite';

import { pluginExposeRenderer } from './vite.base.config';
Expand Down
1 change: 0 additions & 1 deletion packages/plugin/vite/src/util/plugins.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// eslint-disable-next-line node/no-unpublished-import
import type { Plugin } from 'vite';

export function onBuildDone(callback: () => void) {
Expand Down
6 changes: 3 additions & 3 deletions packages/plugin/vite/test/ViteConfig_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ describe('ViteConfigGenerator', () => {
build: [
{
entry: 'src/main.js',
config: path.join(configRoot, 'vite.main.config.js'),
config: path.join(configRoot, 'vite.main.config.mjs'),
target: 'main',
},
],
Expand Down Expand Up @@ -49,7 +49,7 @@ describe('ViteConfigGenerator', () => {
build: [
{
entry: 'src/preload.js',
config: path.join(configRoot, 'vite.preload.config.js'),
config: path.join(configRoot, 'vite.preload.config.mjs'),
target: 'preload',
},
],
Expand Down Expand Up @@ -83,7 +83,7 @@ describe('ViteConfigGenerator', () => {
renderer: [
{
name: 'main_window',
config: path.join(configRoot, 'vite.renderer.config.js'),
config: path.join(configRoot, 'vite.renderer.config.mjs'),
},
],
};
Expand Down
8 changes: 4 additions & 4 deletions packages/plugin/vite/test/config/vite.base.config_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,23 @@ const forgeConfig: VitePluginConfig = {
build: [
{
entry: 'src/main.js',
config: path.join(configRoot, 'vite.main.config.js'),
config: path.join(configRoot, 'vite.main.config.mjs'),
target: 'main',
},
{
entry: 'src/preload.js',
config: path.join(configRoot, 'vite.preload.config.js'),
config: path.join(configRoot, 'vite.preload.config.mjs'),
target: 'preload',
},
],
renderer: [
{
name: 'main_window',
config: path.join(configRoot, 'vite.renderer.config.js'),
config: path.join(configRoot, 'vite.renderer.config.mjs'),
},
{
name: 'second_window',
config: path.join(configRoot, 'vite.renderer.config.js'),
config: path.join(configRoot, 'vite.renderer.config.mjs'),
},
],
};
Expand Down
6 changes: 3 additions & 3 deletions packages/template/vite/src/ViteTemplate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ class ViteTemplate extends BaseTemplate {
{
title: 'Setting up Vite configuration',
task: async () => {
await this.copyTemplateFile(directory, 'vite.main.config.js');
await this.copyTemplateFile(directory, 'vite.preload.config.js');
await this.copyTemplateFile(directory, 'vite.renderer.config.js');
await this.copyTemplateFile(directory, 'vite.main.config.mjs');
await this.copyTemplateFile(directory, 'vite.preload.config.mjs');
await this.copyTemplateFile(directory, 'vite.renderer.config.mjs');
await this.copyTemplateFile(path.join(directory, 'src'), 'renderer.js');
await this.copyTemplateFile(path.join(directory, 'src'), 'preload.js');

Expand Down
6 changes: 3 additions & 3 deletions packages/template/vite/test/ViteTemplate_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ describe('ViteTemplate', () => {
'package.json',
'forge.env.d.ts',
'forge.config.js',
'vite.main.config.js',
'vite.preload.config.js',
'vite.renderer.config.js',
'vite.main.config.mjs',
'vite.preload.config.mjs',
'vite.renderer.config.mjs',
path.join('src', 'renderer.js'),
path.join('src', 'preload.js'),
];
Expand Down
6 changes: 3 additions & 3 deletions packages/template/vite/tmpl/forge.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,19 @@ module.exports = {
{
// `entry` is just an alias for `build.lib.entry` in the corresponding file of `config`.
entry: 'src/main.js',
config: 'vite.main.config.js',
config: 'vite.main.config.mjs',
target: 'main',
},
{
entry: 'src/preload.js',
config: 'vite.preload.config.js',
config: 'vite.preload.config.mjs',
target: 'preload',
},
],
renderer: [
{
name: 'main_window',
config: 'vite.renderer.config.js',
config: 'vite.renderer.config.mjs',
},
],
},
Expand Down

0 comments on commit 5880756

Please sign in to comment.