vite-ssg-optimized 0.24.2-optimized.17 → 0.24.2-optimized.19

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.
package/dist/node/cli.cjs CHANGED
@@ -4,7 +4,7 @@ const process = require('node:process');
4
4
  const kolorist = require('kolorist');
5
5
  const yargs = require('yargs');
6
6
  const helpers = require('yargs/helpers');
7
- const node = require('../shared/vite-ssg-optimized.fd4c7acc.cjs');
7
+ const node = require('../shared/vite-ssg-optimized.79d27333.cjs');
8
8
  require('node:module');
9
9
  require('node:path');
10
10
  require('@unhead/ssr');
package/dist/node/cli.mjs CHANGED
@@ -2,7 +2,7 @@ import process from 'node:process';
2
2
  import { gray, bold, red, reset, underline } from 'kolorist';
3
3
  import yargs from 'yargs';
4
4
  import { hideBin } from 'yargs/helpers';
5
- import { b as build } from '../shared/vite-ssg-optimized.b7ba09da.mjs';
5
+ import { b as build } from '../shared/vite-ssg-optimized.22da6b90.mjs';
6
6
  import 'node:module';
7
7
  import 'node:path';
8
8
  import '@unhead/ssr';
package/dist/node.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const node = require('./shared/vite-ssg-optimized.fd4c7acc.cjs');
3
+ const node = require('./shared/vite-ssg-optimized.79d27333.cjs');
4
4
  require('node:module');
5
5
  require('node:path');
6
6
  require('node:process');
package/dist/node.mjs CHANGED
@@ -1,4 +1,4 @@
1
- export { b as build } from './shared/vite-ssg-optimized.b7ba09da.mjs';
1
+ export { b as build } from './shared/vite-ssg-optimized.22da6b90.mjs';
2
2
  import 'node:module';
3
3
  import 'node:path';
4
4
  import 'node:process';
@@ -2,7 +2,7 @@
2
2
 
3
3
  const node_module = require('node:module');
4
4
  const node_worker_threads = require('node:worker_threads');
5
- const node = require('./vite-ssg-optimized.fd4c7acc.cjs');
5
+ const node = require('./vite-ssg-optimized.79d27333.cjs');
6
6
  const kolorist = require('kolorist');
7
7
  const vite = require('vite');
8
8
  require('node:path');
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'node:module';
2
2
  import { parentPort, workerData } from 'node:worker_threads';
3
- import { g as getBeastiesOrCritters, e as executeTaskFn } from './vite-ssg-optimized.b7ba09da.mjs';
3
+ import { g as getBeastiesOrCritters, e as executeTaskFn } from './vite-ssg-optimized.22da6b90.mjs';
4
4
  import { gray, blue, red, yellow } from 'kolorist';
5
5
  import { resolveConfig } from 'vite';
6
6
  import 'node:path';
@@ -1243,21 +1243,32 @@ async function build(ssgOptions = {}, viteConfig = {}) {
1243
1243
  process$1.on("SIGBREAK", terminateWorkers);
1244
1244
  process$1.on("beforeExit", terminateWorkers);
1245
1245
  process$1.on("exit", terminateWorkers);
1246
+ let workerIndex = 0;
1246
1247
  const maxTasksPerWorker = Math.ceil(concurrency / numberOfWorkers);
1247
- let workersInUse = /* @__PURE__ */ new Map();
1248
- const selectWorker = async () => {
1249
- const workerTasksRunning = (w) => workersInUse.get(w)?.length || 0;
1250
- const worker = workers.filter((w) => workerTasksRunning(w) < maxTasksPerWorker).sort((a, b) => workerTasksRunning(a) - workerTasksRunning(b))[0];
1248
+ const workersInUse = /* @__PURE__ */ new Map();
1249
+ const workerTasksRunning = (w) => workersInUse.get(w)?.length || 0;
1250
+ const selectIdleWorker = () => workers.filter((w) => workerTasksRunning(w) < maxTasksPerWorker).sort((a, b) => workerTasksRunning(a) - workerTasksRunning(b))[0];
1251
+ const selectWorker = async (workerIndex2) => {
1252
+ const index = workerIndex2 ?? Math.round(Math.random() * numberOfWorkers);
1253
+ const maybeWorker = workers[index % numberOfWorkers];
1254
+ const worker = maybeWorker && workerTasksRunning(maybeWorker) < maxTasksPerWorker ? maybeWorker : selectIdleWorker();
1251
1255
  if (!worker) {
1252
1256
  await Promise.race(Array.from(workersInUse.values()).flat());
1253
- return selectWorker();
1257
+ return selectWorker(workerIndex2);
1254
1258
  }
1259
+ const workerPromises = workersInUse.get(worker) || [];
1260
+ const delayPromise = new Promise((resolve) => setImmediate(resolve));
1261
+ workersInUse.set(worker, [...workerPromises, delayPromise]);
1262
+ delayPromise.finally(() => {
1263
+ workerPromises.splice(workerPromises.indexOf(delayPromise), 1);
1264
+ workersInUse.set(worker, workerPromises);
1265
+ });
1255
1266
  return worker;
1256
1267
  };
1257
1268
  for (const route of routesPaths) {
1258
1269
  await queue.onSizeLessThan(concurrency);
1259
1270
  queue.add(async () => {
1260
- const workerProxy = await selectWorker();
1271
+ const workerProxy = await selectWorker(workerIndex++ % numberOfWorkers);
1261
1272
  const taskPromise = executeTaskInWorker(workerProxy, {
1262
1273
  route
1263
1274
  });
@@ -1193,7 +1193,7 @@ async function build(ssgOptions = {}, viteConfig = {}) {
1193
1193
  const prefix = format === "esm" && process__default.platform === "win32" ? "file://" : "";
1194
1194
  const ext = format === "esm" ? ".mjs" : ".cjs";
1195
1195
  const serverEntry = prefix + node_path.join(ssgOut, node_path.parse(ssrEntry).name + ext).replace(/\\/g, "/");
1196
- const _require = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/vite-ssg-optimized.fd4c7acc.cjs', document.baseURI).href)));
1196
+ const _require = node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/vite-ssg-optimized.79d27333.cjs', document.baseURI).href)));
1197
1197
  const { createApp, includedRoutes: serverEntryIncludedRoutes } = format === "esm" ? await import(serverEntry) : _require(serverEntry);
1198
1198
  const includedRoutes = serverEntryIncludedRoutes || configIncludedRoutes;
1199
1199
  const { routes } = await createApp(false);
@@ -1220,7 +1220,7 @@ async function build(ssgOptions = {}, viteConfig = {}) {
1220
1220
  const queue = new PQueue({ concurrency });
1221
1221
  const workerExt = format === "esm" ? ".mjs" : ".cjs";
1222
1222
  const createProxy = (index) => {
1223
- const workerProxy = new BuildWorkerProxy(new URL(`./build.worker${workerExt}`, (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/vite-ssg-optimized.fd4c7acc.cjs', document.baseURI).href))), {
1223
+ const workerProxy = new BuildWorkerProxy(new URL(`./build.worker${workerExt}`, (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('shared/vite-ssg-optimized.79d27333.cjs', document.baseURI).href))), {
1224
1224
  env: process__default.env,
1225
1225
  workerData: {
1226
1226
  workerId: index,
@@ -1252,21 +1252,32 @@ async function build(ssgOptions = {}, viteConfig = {}) {
1252
1252
  process__default.on("SIGBREAK", terminateWorkers);
1253
1253
  process__default.on("beforeExit", terminateWorkers);
1254
1254
  process__default.on("exit", terminateWorkers);
1255
+ let workerIndex = 0;
1255
1256
  const maxTasksPerWorker = Math.ceil(concurrency / numberOfWorkers);
1256
- let workersInUse = /* @__PURE__ */ new Map();
1257
- const selectWorker = async () => {
1258
- const workerTasksRunning = (w) => workersInUse.get(w)?.length || 0;
1259
- const worker = workers.filter((w) => workerTasksRunning(w) < maxTasksPerWorker).sort((a, b) => workerTasksRunning(a) - workerTasksRunning(b))[0];
1257
+ const workersInUse = /* @__PURE__ */ new Map();
1258
+ const workerTasksRunning = (w) => workersInUse.get(w)?.length || 0;
1259
+ const selectIdleWorker = () => workers.filter((w) => workerTasksRunning(w) < maxTasksPerWorker).sort((a, b) => workerTasksRunning(a) - workerTasksRunning(b))[0];
1260
+ const selectWorker = async (workerIndex2) => {
1261
+ const index = workerIndex2 ?? Math.round(Math.random() * numberOfWorkers);
1262
+ const maybeWorker = workers[index % numberOfWorkers];
1263
+ const worker = maybeWorker && workerTasksRunning(maybeWorker) < maxTasksPerWorker ? maybeWorker : selectIdleWorker();
1260
1264
  if (!worker) {
1261
1265
  await Promise.race(Array.from(workersInUse.values()).flat());
1262
- return selectWorker();
1266
+ return selectWorker(workerIndex2);
1263
1267
  }
1268
+ const workerPromises = workersInUse.get(worker) || [];
1269
+ const delayPromise = new Promise((resolve) => setImmediate(resolve));
1270
+ workersInUse.set(worker, [...workerPromises, delayPromise]);
1271
+ delayPromise.finally(() => {
1272
+ workerPromises.splice(workerPromises.indexOf(delayPromise), 1);
1273
+ workersInUse.set(worker, workerPromises);
1274
+ });
1264
1275
  return worker;
1265
1276
  };
1266
1277
  for (const route of routesPaths) {
1267
1278
  await queue.onSizeLessThan(concurrency);
1268
1279
  queue.add(async () => {
1269
- const workerProxy = await selectWorker();
1280
+ const workerProxy = await selectWorker(workerIndex++ % numberOfWorkers);
1270
1281
  const taskPromise = executeTaskInWorker(workerProxy, {
1271
1282
  route
1272
1283
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-ssg-optimized",
3
- "version": "0.24.2-optimized.17",
3
+ "version": "0.24.2-optimized.19",
4
4
  "description": "Server-side generation for Vite",
5
5
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",