@cookielab.io/klovi 3.0.0-beta.16 → 3.0.0-beta.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/README.md CHANGED
@@ -31,6 +31,7 @@ Options:
31
31
  | `KLOVI_PORT` | `3583` | Server port |
32
32
  | `KLOVI_HOST` | `127.0.0.1` | Bind address (localhost-only by default) |
33
33
  | `KLOVI_STATIC_DIR` | (auto) | Override the static assets directory |
34
+ | `KLOVI_SETTINGS_PATH` | `~/.klovi/settings.json` | Override the settings file used by the CLI |
34
35
 
35
36
  ## Programmatic API
36
37
 
package/dist/cli.js CHANGED
@@ -2809,39 +2809,53 @@ async function startKloviPackageServer(options = {}) {
2809
2809
  }
2810
2810
 
2811
2811
  // src/cli.ts
2812
- import { existsSync } from "node:fs";
2813
2812
  import { readFile as readFile2 } from "node:fs/promises";
2813
+ import { resolve as resolve2 } from "node:path";
2814
+
2815
+ // src/cli-config.ts
2816
+ import { existsSync } from "node:fs";
2814
2817
  import { resolve } from "node:path";
2815
- var __dir = import.meta.dirname;
2816
- function resolveStaticDir() {
2817
- const builtPath = resolve(__dir, "web");
2818
- if (existsSync(builtPath))
2818
+ var DEFAULT_HOST = "127.0.0.1";
2819
+ var DEFAULT_PORT = 3583;
2820
+ function resolveStaticDir(baseDir, pathExists = existsSync) {
2821
+ const builtPath = resolve(baseDir, "web");
2822
+ if (pathExists(builtPath))
2819
2823
  return builtPath;
2820
- return resolve(__dir, "../../../packages/ui/dist");
2824
+ return resolve(baseDir, "../../../packages/ui/dist");
2821
2825
  }
2822
- var pkgPath = resolve(__dir, "../package.json");
2823
- var pkg = JSON.parse(await readFile2(pkgPath, "utf-8"));
2824
- var version = pkg["version"] ?? "0.0.0";
2825
- var commit = pkg["commit"] ?? "";
2826
- function parsePort() {
2827
- const portArgIndex = process.argv.indexOf("--port");
2826
+ function parsePort(argv, env) {
2827
+ const portArgIndex = argv.indexOf("--port");
2828
2828
  if (portArgIndex !== -1) {
2829
- const value = process.argv[portArgIndex + 1];
2829
+ const value = argv[portArgIndex + 1];
2830
2830
  if (value !== undefined)
2831
2831
  return Number(value);
2832
2832
  }
2833
- return Number(process.env["KLOVI_PORT"] ?? "3583");
2833
+ return Number(env["KLOVI_PORT"] ?? String(DEFAULT_PORT));
2834
+ }
2835
+ function resolveCliConfig(baseDir, argv = process.argv, env = process.env, pathExists) {
2836
+ return {
2837
+ host: env["KLOVI_HOST"] ?? DEFAULT_HOST,
2838
+ port: parsePort(argv, env),
2839
+ staticDir: env["KLOVI_STATIC_DIR"] ?? resolveStaticDir(baseDir, pathExists),
2840
+ settingsPath: env["KLOVI_SETTINGS_PATH"],
2841
+ openBrowser: !argv.includes("--no-browser")
2842
+ };
2834
2843
  }
2835
- var host = process.env["KLOVI_HOST"] ?? "127.0.0.1";
2836
- var port = parsePort();
2837
- var staticDir = process.env["KLOVI_STATIC_DIR"] ?? resolveStaticDir();
2838
- var openBrowser = !process.argv.includes("--no-browser");
2844
+
2845
+ // src/cli.ts
2846
+ var __dir = import.meta.dirname;
2847
+ var pkgPath = resolve2(__dir, "../package.json");
2848
+ var pkg = JSON.parse(await readFile2(pkgPath, "utf-8"));
2849
+ var version = pkg["version"] ?? "0.0.0";
2850
+ var commit = pkg["commit"] ?? "";
2851
+ var config = resolveCliConfig(__dir);
2839
2852
  var server = await startKloviPackageServer({
2840
- host,
2841
- port,
2842
- staticDir,
2853
+ host: config.host,
2854
+ port: config.port,
2855
+ staticDir: config.staticDir,
2843
2856
  version,
2844
2857
  commit,
2845
- openBrowser
2858
+ openBrowser: config.openBrowser,
2859
+ ...config.settingsPath ? { settingsPath: config.settingsPath } : {}
2846
2860
  });
2847
2861
  console.log(`Klovi server listening on ${server.url}`);