@cordy/electro-cli 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +32 -17
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -490,7 +490,7 @@ const cac = (name = "") => new CAC(name);
490
490
 
491
491
  //#endregion
492
492
  //#region package.json
493
- var version$1 = "1.1.3";
493
+ var version$1 = "1.2.0";
494
494
 
495
495
  //#endregion
496
496
  //#region src/dev/logger.ts
@@ -2659,14 +2659,15 @@ async function build$1(options) {
2659
2659
  const outDir = resolve(root, options.outDir);
2660
2660
  const codegenDir = resolve(root, ".electro");
2661
2661
  const views = config.views ?? [];
2662
+ const rendererViews = views.filter((v) => v.entry);
2662
2663
  const srcDir = resolve(root, "src");
2663
2664
  session({
2664
2665
  root,
2665
2666
  main: resolve(dirname(config.runtime.__source), config.runtime.entry),
2666
- preload: views.length > 0 ? resolve(codegenDir, "generated/preload") : null,
2667
- renderer: views.length > 0 ? resolve(root, dirname(relative(root, views[0].__source))) : null,
2667
+ preload: rendererViews.length > 0 ? resolve(codegenDir, "generated/preload") : null,
2668
+ renderer: rendererViews.length > 0 ? resolve(root, dirname(relative(root, rendererViews[0].__source))) : null,
2668
2669
  mode: "build",
2669
- windows: views.map((w) => ({
2670
+ windows: rendererViews.map((w) => ({
2670
2671
  name: w.name,
2671
2672
  entry: resolve(dirname(w.__source), w.entry)
2672
2673
  }))
@@ -2710,7 +2711,7 @@ async function build$1(options) {
2710
2711
  stepFail("main", err instanceof Error ? err.message : String(err));
2711
2712
  process.exit(1);
2712
2713
  }
2713
- if (views.length > 0) try {
2714
+ if (rendererViews.length > 0) try {
2714
2715
  buildScope("preload");
2715
2716
  await buildPreload({
2716
2717
  config,
@@ -2726,12 +2727,12 @@ async function build$1(options) {
2726
2727
  stepFail("preload", err instanceof Error ? err.message : String(err));
2727
2728
  process.exit(1);
2728
2729
  }
2729
- if (views.length > 0) try {
2730
+ if (rendererViews.length > 0) try {
2730
2731
  buildScope("renderer");
2731
- const userViteConfigs = views.filter((w) => w.vite).map((w) => w.vite);
2732
+ const userViteConfigs = rendererViews.filter((w) => w.vite).map((w) => w.vite);
2732
2733
  await build(createRendererConfig({
2733
2734
  root,
2734
- views,
2735
+ views: rendererViews,
2735
2736
  userViteConfigs: userViteConfigs.length > 0 ? userViteConfigs : void 0,
2736
2737
  logLevel: "info",
2737
2738
  customLogger: logger,
@@ -2739,7 +2740,7 @@ async function build$1(options) {
2739
2740
  minify: options.minify,
2740
2741
  sourcemap: options.sourcemap
2741
2742
  }));
2742
- await flattenRendererOutput(resolve(outDir, "renderer"), views, root);
2743
+ await flattenRendererOutput(resolve(outDir, "renderer"), rendererViews, root);
2743
2744
  } catch (err) {
2744
2745
  stepFail("renderer", err instanceof Error ? err.message : String(err));
2745
2746
  process.exit(1);
@@ -2749,6 +2750,11 @@ async function build$1(options) {
2749
2750
  async function buildMain(args) {
2750
2751
  const runtimeEntry = args.config.runtime.entry;
2751
2752
  const entry = resolve(dirname(args.config.runtime.__source), runtimeEntry);
2753
+ const viewRegistry = (args.config.views ?? []).map((v) => ({
2754
+ id: v.name,
2755
+ hasRenderer: !!v.entry,
2756
+ webPreferences: v.webPreferences ?? {}
2757
+ }));
2752
2758
  await build(createNodeConfig({
2753
2759
  scope: "main",
2754
2760
  root: args.root,
@@ -2765,11 +2771,12 @@ async function buildMain(args) {
2765
2771
  userViteConfig: args.config.runtime.vite,
2766
2772
  sourcemap: args.sourcemap,
2767
2773
  customLogger: args.logger,
2768
- logLevel: "info"
2774
+ logLevel: "info",
2775
+ define: { __ELECTRO_VIEW_REGISTRY__: JSON.stringify(viewRegistry) }
2769
2776
  }));
2770
2777
  }
2771
2778
  async function buildPreload(args) {
2772
- const views = args.config.views ?? [];
2779
+ const views = (args.config.views ?? []).filter((v) => v.entry);
2773
2780
  const input = {};
2774
2781
  for (const view of views) input[view.name] = resolve(args.codegenDir, `generated/preload/${view.name}.gen.ts`);
2775
2782
  const firstEntry = Object.values(input)[0];
@@ -2900,14 +2907,15 @@ var DevServer = class {
2900
2907
  this.configPaths.add(loaded.configPath);
2901
2908
  for (const view of this.config.views ?? []) this.configPaths.add(view.__source);
2902
2909
  const views = this.config.views ?? [];
2910
+ const rendererViews = views.filter((v) => v.entry);
2903
2911
  const srcDir = resolve(this.root, "src");
2904
2912
  const mainEntry = resolve(dirname(this.config.runtime.__source), this.config.runtime.entry);
2905
2913
  session({
2906
2914
  root: this.root,
2907
2915
  main: mainEntry,
2908
- preload: views.length > 0 ? resolve(this.outputDir, "generated/preload") : null,
2909
- renderer: views.length > 0 ? resolve(this.root, dirname(relative(this.root, views[0].__source))) : null,
2910
- windows: views.map((w) => ({
2916
+ preload: rendererViews.length > 0 ? resolve(this.outputDir, "generated/preload") : null,
2917
+ renderer: rendererViews.length > 0 ? resolve(this.root, dirname(relative(this.root, rendererViews[0].__source))) : null,
2918
+ windows: rendererViews.map((w) => ({
2911
2919
  name: w.name,
2912
2920
  entry: resolve(dirname(w.__source), w.entry)
2913
2921
  }))
@@ -3019,7 +3027,7 @@ var DevServer = class {
3019
3027
  await writeFile(envTypesPath, envTypes.content);
3020
3028
  }
3021
3029
  async startRenderer() {
3022
- const views = this.config.views ?? [];
3030
+ const views = (this.config.views ?? []).filter((v) => v.entry);
3023
3031
  const userViteConfigs = views.filter((w) => w.vite).map((w) => w.vite);
3024
3032
  this.rendererServer = await createServer(createRendererConfig({
3025
3033
  root: this.root,
@@ -3034,7 +3042,7 @@ var DevServer = class {
3034
3042
  this.rendererUrl = `http://localhost:${typeof addr === "object" && addr ? addr.port : 5173}`;
3035
3043
  }
3036
3044
  async buildPreload(externals) {
3037
- const views = this.config.views ?? [];
3045
+ const views = (this.config.views ?? []).filter((v) => v.entry);
3038
3046
  const preloadOutDir = resolve(this.outputDir, "preload");
3039
3047
  const input = {};
3040
3048
  for (const view of views) input[view.name] = resolve(this.outputDir, `generated/preload/${view.name}.gen.ts`);
@@ -3099,6 +3107,11 @@ var DevServer = class {
3099
3107
  async buildMain(externals) {
3100
3108
  const runtimeEntry = this.config.runtime.entry;
3101
3109
  const entry = resolve(dirname(this.config.runtime.__source), runtimeEntry);
3110
+ const viewRegistry = (this.config.views ?? []).map((v) => ({
3111
+ id: v.name,
3112
+ hasRenderer: !!v.entry,
3113
+ webPreferences: v.webPreferences ?? {}
3114
+ }));
3102
3115
  const mainConfig = createNodeConfig({
3103
3116
  scope: "main",
3104
3117
  root: this.root,
@@ -3114,7 +3127,8 @@ var DevServer = class {
3114
3127
  logLevel: this.logLevel,
3115
3128
  clearScreen: this.clearScreen,
3116
3129
  userViteConfig: this.config.runtime.vite,
3117
- sourcemap: this.sourcemap
3130
+ sourcemap: this.sourcemap,
3131
+ define: { __ELECTRO_VIEW_REGISTRY__: JSON.stringify(viewRegistry) }
3118
3132
  });
3119
3133
  const self = this;
3120
3134
  let firstBuild = true;
@@ -3152,6 +3166,7 @@ var DevServer = class {
3152
3166
  const port = typeof addr === "object" && addr ? addr.port : 5173;
3153
3167
  env.ELECTRO_RENDERER_BASE = `http://localhost:${port}`;
3154
3168
  for (const view of this.config.views ?? []) {
3169
+ if (!view.entry) continue;
3155
3170
  const entryPath = resolve(dirname(view.__source), view.entry);
3156
3171
  const relPath = relative(this.root, entryPath);
3157
3172
  env[`ELECTRO_DEV_URL_${view.name}`] = `http://localhost:${port}/${relPath}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cordy/electro-cli",
3
- "version": "1.1.3",
3
+ "version": "1.2.0",
4
4
  "description": "CLI for @cordy/electro — dev server, build, and code generation commands",
5
5
  "license": "MIT",
6
6
  "type": "module",