@flowscripter/dynamic-cli-framework-api 1.0.1 → 1.1.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.
package/dist/index.d.ts CHANGED
@@ -29,6 +29,9 @@ export type { default as PrinterService } from "./src/service/core/PrinterServic
29
29
  export { Icon, Level, ProgressStyle, SpinnerStyle } from "./src/service/core/PrinterService.ts";
30
30
  export { SHUTDOWN_SERVICE_ID } from "./src/service/core/ShutdownService.ts";
31
31
  export type { default as ShutdownService } from "./src/service/core/ShutdownService.ts";
32
+ export { SPAWN_SERVICE_ID } from "./src/service/core/SpawnService.ts";
33
+ export type { default as SpawnService } from "./src/service/core/SpawnService.ts";
34
+ export type { SpawnOptions, SpawnResult } from "./src/service/core/SpawnService.ts";
32
35
  export { SYNTAX_HIGHLIGHTER_SERVICE_ID } from "./src/service/core/SyntaxHighlighterService.ts";
33
36
  export type { default as SyntaxHighlighterService } from "./src/service/core/SyntaxHighlighterService.ts";
34
37
  export type { ColorScheme } from "./src/service/core/SyntaxHighlighterService.ts";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -8,6 +8,7 @@ export { SECRET_SENTINEL_PREFIX } from "./src/service/core/KeyValueService.js";
8
8
  export { PRINTER_SERVICE_ID } from "./src/service/core/PrinterService.js";
9
9
  export { Icon, Level, ProgressStyle, SpinnerStyle } from "./src/service/core/PrinterService.js";
10
10
  export { SHUTDOWN_SERVICE_ID } from "./src/service/core/ShutdownService.js";
11
+ export { SPAWN_SERVICE_ID } from "./src/service/core/SpawnService.js";
11
12
  export { SYNTAX_HIGHLIGHTER_SERVICE_ID } from "./src/service/core/SyntaxHighlighterService.js";
12
13
  export { PRETTY_PRINTER_SERVICE_ID } from "./src/service/core/PrettyPrinterService.js";
13
14
  export { IMAGE_PRINTER_SERVICE_ID } from "./src/service/core/ImagePrinterService.js";
@@ -0,0 +1,59 @@
1
+ export declare const SPAWN_SERVICE_ID = "@flowscripter/dynamic-cli-framework/spawn-service";
2
+ /**
3
+ * Outcome of a {@link SpawnService.spawn} call.
4
+ *
5
+ * `ok` is `true` only when the process launched and exited with code `0`. A launch failure (e.g.
6
+ * the binary was not found) sets `error` with no `exitCode`; a non-zero exit sets `exitCode` with
7
+ * no `error`.
8
+ */
9
+ export type SpawnResult = {
10
+ ok: true;
11
+ exitCode: number;
12
+ } | {
13
+ ok: false;
14
+ exitCode?: number;
15
+ error?: Error;
16
+ };
17
+ /**
18
+ * Options for {@link SpawnService.spawn}.
19
+ */
20
+ export interface SpawnOptions {
21
+ /**
22
+ * The working directory for the spawned process. Defaults to the current process's working
23
+ * directory.
24
+ */
25
+ cwd?: string;
26
+ /**
27
+ * `"inherit"` (default) lets the spawned process write directly to `stdout`/`stderr`.
28
+ * `"wrapped"` captures both streams line-by-line and invokes {@link onOutput} for each line
29
+ * instead, without writing anything itself.
30
+ */
31
+ stdio?: "inherit" | "wrapped";
32
+ /**
33
+ * Invoked with each line captured from the spawned process. Only used when {@link stdio} is
34
+ * `"wrapped"`.
35
+ */
36
+ onOutput?: (line: string, stream: "stdout" | "stderr") => void;
37
+ /**
38
+ * Whether to enter long-running shutdown mode for the duration of the spawn, so a single Ctrl-C
39
+ * gracefully terminates the spawned process rather than immediately exiting the CLI. Defaults to
40
+ * `true`.
41
+ */
42
+ longRunning?: boolean;
43
+ }
44
+ /**
45
+ * Service allowing a {@link Command} to spawn a child process, with output optionally captured
46
+ * and shutdown signals gracefully forwarded.
47
+ */
48
+ export default interface SpawnService {
49
+ /**
50
+ * Spawn a process.
51
+ *
52
+ * @param command the command and its arguments, e.g. `["bun", "add", "some-package"]`.
53
+ * @param options optional {@link SpawnOptions}.
54
+ *
55
+ * @return the {@link SpawnResult}. Never rejects.
56
+ */
57
+ spawn(command: ReadonlyArray<string>, options?: SpawnOptions): Promise<SpawnResult>;
58
+ }
59
+ //# sourceMappingURL=SpawnService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpawnService.d.ts","sourceRoot":"","sources":["../../../../src/service/core/SpawnService.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,sDAAsD,CAAC;AAEpF;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAE/D;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,WAAW,YAAY;IACnC;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACrF"}
@@ -0,0 +1 @@
1
+ export const SPAWN_SERVICE_ID = "@flowscripter/dynamic-cli-framework/spawn-service";
package/index.ts CHANGED
@@ -57,6 +57,10 @@ export { Icon, Level, ProgressStyle, SpinnerStyle } from "./src/service/core/Pri
57
57
  export { SHUTDOWN_SERVICE_ID } from "./src/service/core/ShutdownService.ts";
58
58
  export type { default as ShutdownService } from "./src/service/core/ShutdownService.ts";
59
59
 
60
+ export { SPAWN_SERVICE_ID } from "./src/service/core/SpawnService.ts";
61
+ export type { default as SpawnService } from "./src/service/core/SpawnService.ts";
62
+ export type { SpawnOptions, SpawnResult } from "./src/service/core/SpawnService.ts";
63
+
60
64
  export { SYNTAX_HIGHLIGHTER_SERVICE_ID } from "./src/service/core/SyntaxHighlighterService.ts";
61
65
  export type { default as SyntaxHighlighterService } from "./src/service/core/SyntaxHighlighterService.ts";
62
66
  export type { ColorScheme } from "./src/service/core/SyntaxHighlighterService.ts";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowscripter/dynamic-cli-framework-api",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "API for https://github.com/flowscripter/dynamic-cli-framework",
5
5
  "keywords": [
6
6
  "bun",
@@ -0,0 +1,59 @@
1
+ export const SPAWN_SERVICE_ID = "@flowscripter/dynamic-cli-framework/spawn-service";
2
+
3
+ /**
4
+ * Outcome of a {@link SpawnService.spawn} call.
5
+ *
6
+ * `ok` is `true` only when the process launched and exited with code `0`. A launch failure (e.g.
7
+ * the binary was not found) sets `error` with no `exitCode`; a non-zero exit sets `exitCode` with
8
+ * no `error`.
9
+ */
10
+ export type SpawnResult =
11
+ | { ok: true; exitCode: number }
12
+ | { ok: false; exitCode?: number; error?: Error };
13
+
14
+ /**
15
+ * Options for {@link SpawnService.spawn}.
16
+ */
17
+ export interface SpawnOptions {
18
+ /**
19
+ * The working directory for the spawned process. Defaults to the current process's working
20
+ * directory.
21
+ */
22
+ cwd?: string;
23
+
24
+ /**
25
+ * `"inherit"` (default) lets the spawned process write directly to `stdout`/`stderr`.
26
+ * `"wrapped"` captures both streams line-by-line and invokes {@link onOutput} for each line
27
+ * instead, without writing anything itself.
28
+ */
29
+ stdio?: "inherit" | "wrapped";
30
+
31
+ /**
32
+ * Invoked with each line captured from the spawned process. Only used when {@link stdio} is
33
+ * `"wrapped"`.
34
+ */
35
+ onOutput?: (line: string, stream: "stdout" | "stderr") => void;
36
+
37
+ /**
38
+ * Whether to enter long-running shutdown mode for the duration of the spawn, so a single Ctrl-C
39
+ * gracefully terminates the spawned process rather than immediately exiting the CLI. Defaults to
40
+ * `true`.
41
+ */
42
+ longRunning?: boolean;
43
+ }
44
+
45
+ /**
46
+ * Service allowing a {@link Command} to spawn a child process, with output optionally captured
47
+ * and shutdown signals gracefully forwarded.
48
+ */
49
+ export default interface SpawnService {
50
+ /**
51
+ * Spawn a process.
52
+ *
53
+ * @param command the command and its arguments, e.g. `["bun", "add", "some-package"]`.
54
+ * @param options optional {@link SpawnOptions}.
55
+ *
56
+ * @return the {@link SpawnResult}. Never rejects.
57
+ */
58
+ spawn(command: ReadonlyArray<string>, options?: SpawnOptions): Promise<SpawnResult>;
59
+ }