evikit 2.7.0 → 2.7.2

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/package.json +1 -1
  2. package/server.js +28 -9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "evikit",
3
3
  "description": "Preact/SQLite SSR framework for small web apps",
4
- "version": "2.7.0",
4
+ "version": "2.7.2",
5
5
  "type": "module",
6
6
  "exports": {
7
7
  ".": "./index.js",
package/server.js CHANGED
@@ -207,9 +207,11 @@ export function json(output) {
207
207
 
208
208
  /** @param {{ listen: (port: number, callback: () => void) => { close(): void, on(event: "error", callback: (error: unknown) => void ): void } }} app */
209
209
  export function listen(app) {
210
+ const parallelism =
211
+ Number(process.env["PARALLELISM"]) || availableParallelism();
210
212
  const port = Number(process.env["PORT"]) || 5173;
211
- if (cluster.isPrimary && availableParallelism() > 1) {
212
- for (let i = 0; i < availableParallelism(); i++) {
213
+ if (cluster.isPrimary && parallelism > 1) {
214
+ for (let i = 0; i < parallelism; i++) {
213
215
  cluster.fork({ i });
214
216
  }
215
217
  } else {
@@ -336,12 +338,27 @@ export function router({ pkg }, ...routes) {
336
338
  return [
337
339
  method,
338
340
  {
339
- parameters: parameters.map((name) => ({
340
- in: "path",
341
- name,
342
- required: true,
343
- schema: { type: "string" },
344
- })),
341
+ parameters: [
342
+ ...parameters.map((name) => ({
343
+ in: "path",
344
+ name,
345
+ required: true,
346
+ schema: { type: "string" },
347
+ })),
348
+ ...(method == "post"
349
+ ? []
350
+ : Object.entries(input.entries)
351
+ .filter(
352
+ ([name]) =>
353
+ name != "lang" && !parameters.includes(name),
354
+ )
355
+ .map(([name, entry]) => ({
356
+ in: "query",
357
+ name,
358
+ required: !entry.expects.includes("undefined"),
359
+ schema: { type: "string" },
360
+ }))),
361
+ ],
345
362
  ...(method == "post"
346
363
  ? {
347
364
  requestBody: {
@@ -356,7 +373,9 @@ export function router({ pkg }, ...routes) {
356
373
  object(
357
374
  Object.fromEntries(
358
375
  Object.entries(input.entries).filter(
359
- ([name]) => !parameters.includes(name),
376
+ ([name]) =>
377
+ name != "lang" &&
378
+ !parameters.includes(name),
360
379
  ),
361
380
  ),
362
381
  ),