effective-progress 0.11.1 → 0.12.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/README.md +30 -18
- package/dist/index.d.mts +74 -88
- package/dist/index.mjs +445 -428
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -17,14 +17,14 @@
|
|
|
17
17
|
|
|
18
18
|
- multiple nested tree-like progress bars
|
|
19
19
|
- spinner support for “we have no idea how long this takes” work
|
|
20
|
-
- keep using `
|
|
20
|
+
- keep using Effect v4 `Effect.log*` / `Logger` and `Console.log` while progress rendering is active
|
|
21
21
|
- familiar `.all` and `.forEach` APIs — swap `Effect` for `Progress`, get progress bars basically for free
|
|
22
22
|
- flicker-free rendering with [Ink](https://github.com/vadimdemedes/ink)
|
|
23
23
|
|
|
24
24
|
## Install
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
bun add effective-progress
|
|
27
|
+
bun add effective-progress effect@^4.0.0-beta.100
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
## Usage
|
|
@@ -32,14 +32,14 @@ bun add effective-progress
|
|
|
32
32
|
Iterate items with a single progress bar.
|
|
33
33
|
|
|
34
34
|
```ts
|
|
35
|
-
import {
|
|
35
|
+
import { Effect } from "effect";
|
|
36
36
|
import * as Progress from "effective-progress";
|
|
37
37
|
|
|
38
38
|
const program = Progress.all(
|
|
39
39
|
Array.from({ length: 5 }).map((_, i) =>
|
|
40
40
|
Effect.gen(function* () {
|
|
41
41
|
yield* Effect.sleep("1 second");
|
|
42
|
-
yield*
|
|
42
|
+
yield* Effect.logInfo(`Completed task ${i + 1}`);
|
|
43
43
|
}),
|
|
44
44
|
),
|
|
45
45
|
{ description: "Running tasks in parallel", concurrency: 2 },
|
|
@@ -75,16 +75,16 @@ Effect.runPromise(program);
|
|
|
75
75
|
|
|
76
76
|
<img alt="Nested example output" src="docs/images/nesting.gif" width="600" />
|
|
77
77
|
|
|
78
|
-
### Effect.all
|
|
78
|
+
### Effect.all result mode
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
`Progress.all` mirrors Effect v4's fail-fast default and `mode: "result"`, rendering the amount of successes and failures as work completes.
|
|
81
81
|
|
|
82
82
|
<img alt="Mixed outcomes modes output" src="docs/images/mixedOutcomes.gif" width="600" />
|
|
83
83
|
|
|
84
84
|
- `Progress.all` in default mode (`mode: "default"`) remains fail-fast.
|
|
85
85
|
- In fail-fast runs, unresolved units remain unprocessed.
|
|
86
|
-
- `mode: "
|
|
87
|
-
-
|
|
86
|
+
- `mode: "result"` runs every effect and returns a `Result` for each outcome while keeping mixed outcomes in the task counters.
|
|
87
|
+
- Result-mode tasks finalize as `done` when all units are accounted for.
|
|
88
88
|
- Empty collections are valid inputs for `Progress.all` / `Progress.forEach` and render as `0/0` instead of failing.
|
|
89
89
|
|
|
90
90
|
### Single task with a typed handle
|
|
@@ -92,13 +92,13 @@ Support for `either`/`validate` modes of `Effect.all` and render the amount of s
|
|
|
92
92
|
Use `Progress.task(...)` when you want one progress bar around a custom effect. The callback form gives you a task-local handle, so you can update counts, descriptions, and metadata without fetching the current task ID first.
|
|
93
93
|
|
|
94
94
|
```ts
|
|
95
|
-
import {
|
|
95
|
+
import { Effect } from "effect";
|
|
96
96
|
import * as Progress from "effective-progress";
|
|
97
97
|
|
|
98
98
|
const program = Progress.task(
|
|
99
99
|
(task) =>
|
|
100
100
|
Effect.gen(function* () {
|
|
101
|
-
yield*
|
|
101
|
+
yield* Effect.logInfo("Starting deployment");
|
|
102
102
|
yield* task.incrementSucceeded();
|
|
103
103
|
yield* task.update({
|
|
104
104
|
description: "Uploading release bundle",
|
|
@@ -125,7 +125,7 @@ Effect.runPromise(program);
|
|
|
125
125
|
- `examples/advancedExample.ts` - mixed high-level and low-level Progress service usage
|
|
126
126
|
- `examples/basic.ts` - minimal `Progress.all` usage
|
|
127
127
|
- `examples/nesting.ts` - nested tree rendering with parent and child tasks
|
|
128
|
-
- `examples/mixedOutcomes.ts` - fail-fast vs `
|
|
128
|
+
- `examples/mixedOutcomes.ts` - fail-fast vs `result` mode with mixed success/failure counters
|
|
129
129
|
- `examples/cliProgressSemantics.ts` - zero totals, negative totals clearing to unknown totals, overflow counts, and empty `all` / `forEach`
|
|
130
130
|
- `examples/unknownTotalCounting.ts` - count successes/failures without a known total and render `processed/?`
|
|
131
131
|
- `examples/typedMetadata.ts` - typed task metadata rendered through custom columns
|
|
@@ -138,11 +138,21 @@ Effect.runPromise(program);
|
|
|
138
138
|
|
|
139
139
|
## Configuration
|
|
140
140
|
|
|
141
|
-
###
|
|
141
|
+
### Logging behavior
|
|
142
142
|
|
|
143
143
|
- The Ink renderer runs with `patchConsole: true`, so console output is patched by Ink while the app is mounted.
|
|
144
|
-
- `
|
|
145
|
-
-
|
|
144
|
+
- `Effect.log*` uses the active Effect v4 `Logger` set, including custom loggers installed with `Logger.layer(...)`.
|
|
145
|
+
- The low-level `progress.log(...)` method emits through `Effect.log`, so it honors the current log level, logger set, annotations, and spans.
|
|
146
|
+
- Direct `Console` calls still use the currently provided Effect `Console` reference.
|
|
147
|
+
- Formatting and routing remain controlled by the consumer's logger and console configuration.
|
|
148
|
+
|
|
149
|
+
For example, install the v4 pretty console logger around a program with:
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
import { Effect, Logger } from "effect";
|
|
153
|
+
|
|
154
|
+
Effect.runPromise(program.pipe(Effect.provide(Logger.layer([Logger.consolePretty()]))));
|
|
155
|
+
```
|
|
146
156
|
|
|
147
157
|
### Ink renderer behavior
|
|
148
158
|
|
|
@@ -177,17 +187,19 @@ The handle exposes:
|
|
|
177
187
|
|
|
178
188
|
When you need lower-level control, the `Progress` service is available inside the effect and exposes APIs like `addTask`, `updateTask`, `incrementSucceeded(taskId, amount)`, and `completeTask(taskId)`.
|
|
179
189
|
|
|
190
|
+
The primary v4-style service layers are exposed as `Progress.layer` and `ProgressStdio.layer`.
|
|
191
|
+
|
|
180
192
|
Example using the lower-level service API:
|
|
181
193
|
|
|
182
194
|
```ts
|
|
183
|
-
import {
|
|
195
|
+
import { Effect } from "effect";
|
|
184
196
|
import * as Progress from "effective-progress";
|
|
185
197
|
|
|
186
198
|
const program = Progress.task(
|
|
187
199
|
Effect.gen(function* () {
|
|
188
200
|
const progress = yield* Progress.Progress;
|
|
189
201
|
const currentTask = yield* Progress.Task;
|
|
190
|
-
yield*
|
|
202
|
+
yield* Effect.logInfo("Updating the current task", { taskId: currentTask });
|
|
191
203
|
|
|
192
204
|
// Manual determinate updates:
|
|
193
205
|
yield* progress.incrementSucceeded(currentTask, 3);
|
|
@@ -258,6 +270,6 @@ const program = Progress.task(
|
|
|
258
270
|
|
|
259
271
|
If a task does not provide `columns`, the renderer falls back to `Progress.Columns.defaults()`.
|
|
260
272
|
|
|
261
|
-
##
|
|
273
|
+
## Effect compatibility
|
|
262
274
|
|
|
263
|
-
|
|
275
|
+
This release targets Effect `4.0.0-beta.100` or newer compatible v4 prereleases. Effect v4 is still in beta, so its APIs may change between beta releases.
|
package/dist/index.d.mts
CHANGED
|
@@ -6,12 +6,12 @@ import { Concurrency } from "effect/Types";
|
|
|
6
6
|
import * as effect_SchemaAST0 from "effect/SchemaAST";
|
|
7
7
|
|
|
8
8
|
//#region src/types.d.ts
|
|
9
|
-
declare const TaskIdSchema: Schema.brand<
|
|
9
|
+
declare const TaskIdSchema: Schema.brand<Schema.Number, "TaskId">;
|
|
10
10
|
type TaskId = typeof TaskIdSchema.Type;
|
|
11
|
-
declare const TaskId: Brand.
|
|
12
|
-
declare const TaskStatusSchema: Schema.
|
|
11
|
+
declare const TaskId: Brand.Constructor<number & Brand.Brand<"TaskId">>;
|
|
12
|
+
declare const TaskStatusSchema: Schema.Literals<readonly ["running", "done", "failed"]>;
|
|
13
13
|
type TaskStatus = typeof TaskStatusSchema.Type;
|
|
14
|
-
declare const TaskCountDisplaySchema: Schema.
|
|
14
|
+
declare const TaskCountDisplaySchema: Schema.Literals<readonly ["processedOnly", "detailed"]>;
|
|
15
15
|
type TaskCountDisplay = typeof TaskCountDisplaySchema.Type;
|
|
16
16
|
type ColumnAlign = "left" | "center" | "right";
|
|
17
17
|
interface TaskTreeInfo {
|
|
@@ -102,37 +102,37 @@ interface UpdateTaskOptions {
|
|
|
102
102
|
}
|
|
103
103
|
type TrackOptions = Omit<AddTaskOptions, "parentId">;
|
|
104
104
|
declare const TaskUnitsSchema: Schema.Struct<{
|
|
105
|
-
succeeded:
|
|
106
|
-
failed:
|
|
107
|
-
processed:
|
|
108
|
-
total: Schema.optional<
|
|
105
|
+
readonly succeeded: Schema.Number;
|
|
106
|
+
readonly failed: Schema.Number;
|
|
107
|
+
readonly processed: Schema.Number;
|
|
108
|
+
readonly total: Schema.optional<Schema.Number>;
|
|
109
109
|
}>;
|
|
110
110
|
type TaskUnits = typeof TaskUnitsSchema.Type;
|
|
111
111
|
declare const TaskProgressSampleSchema: Schema.Struct<{
|
|
112
|
-
timestamp:
|
|
113
|
-
processed:
|
|
112
|
+
readonly timestamp: Schema.Number;
|
|
113
|
+
readonly processed: Schema.Number;
|
|
114
114
|
}>;
|
|
115
115
|
type TaskProgressSample = typeof TaskProgressSampleSchema.Type;
|
|
116
116
|
declare const TaskSnapshotSchema: Schema.Struct<{
|
|
117
|
-
id: Schema.brand<
|
|
118
|
-
parentId: Schema.NullOr<Schema.brand<
|
|
119
|
-
description:
|
|
120
|
-
status: Schema.
|
|
121
|
-
countDisplay: Schema.
|
|
122
|
-
transient:
|
|
123
|
-
units: Schema.Struct<{
|
|
124
|
-
succeeded:
|
|
125
|
-
failed:
|
|
126
|
-
processed:
|
|
127
|
-
total: Schema.optional<
|
|
117
|
+
readonly id: Schema.brand<Schema.Number, "TaskId">;
|
|
118
|
+
readonly parentId: Schema.NullOr<Schema.brand<Schema.Number, "TaskId">>;
|
|
119
|
+
readonly description: Schema.String;
|
|
120
|
+
readonly status: Schema.Literals<readonly ["running", "done", "failed"]>;
|
|
121
|
+
readonly countDisplay: Schema.Literals<readonly ["processedOnly", "detailed"]>;
|
|
122
|
+
readonly transient: Schema.Boolean;
|
|
123
|
+
readonly units: Schema.Struct<{
|
|
124
|
+
readonly succeeded: Schema.Number;
|
|
125
|
+
readonly failed: Schema.Number;
|
|
126
|
+
readonly processed: Schema.Number;
|
|
127
|
+
readonly total: Schema.optional<Schema.Number>;
|
|
128
128
|
}>;
|
|
129
|
-
startedAt:
|
|
130
|
-
completedAt: Schema.NullOr<
|
|
131
|
-
progressSamples: Schema
|
|
132
|
-
timestamp:
|
|
133
|
-
processed:
|
|
129
|
+
readonly startedAt: Schema.Number;
|
|
130
|
+
readonly completedAt: Schema.NullOr<Schema.Number>;
|
|
131
|
+
readonly progressSamples: Schema.$Array<Schema.Struct<{
|
|
132
|
+
readonly timestamp: Schema.Number;
|
|
133
|
+
readonly processed: Schema.Number;
|
|
134
134
|
}>>;
|
|
135
|
-
metadata:
|
|
135
|
+
readonly metadata: Schema.Unknown;
|
|
136
136
|
}>;
|
|
137
137
|
type TaskSnapshot = typeof TaskSnapshotSchema.Type;
|
|
138
138
|
declare const TaskSnapshot: (snapshot: TaskSnapshot) => TaskSnapshot;
|
|
@@ -145,7 +145,7 @@ interface TaskStore {
|
|
|
145
145
|
readonly renderOrder: ReadonlyArray<RenderRow>;
|
|
146
146
|
readonly columns: Map<TaskId, ReadonlyArray<ColumnDef<any, any>>>;
|
|
147
147
|
}
|
|
148
|
-
interface
|
|
148
|
+
interface ProgressShape {
|
|
149
149
|
readonly addTask: (options: AddTaskOptions<any>) => Effect.Effect<TaskId>;
|
|
150
150
|
readonly updateTask: (taskId: TaskId, options: UpdateTaskOptions) => Effect.Effect<void>;
|
|
151
151
|
readonly incrementSucceeded: (taskId: TaskId, amount?: number) => Effect.Effect<void>;
|
|
@@ -175,66 +175,54 @@ interface ProgressService {
|
|
|
175
175
|
}): Effect.Effect<A, E, Exclude<R, Task>>;
|
|
176
176
|
};
|
|
177
177
|
}
|
|
178
|
-
declare const Task_base: Context.
|
|
178
|
+
declare const Task_base: Context.ServiceClass<Task, "stromseng.dev/effective-progress/Task", number & Brand.Brand<"TaskId">>;
|
|
179
179
|
declare class Task extends Task_base {}
|
|
180
|
-
declare const TaskAddedEvent_base: Schema.
|
|
181
|
-
readonly
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
countDisplay: Schema.Literal<["processedOnly", "detailed"]>;
|
|
189
|
-
}>;
|
|
180
|
+
declare const TaskAddedEvent_base: Schema.Class<TaskAddedEvent, Schema.TaggedStruct<"TaskAdded", {
|
|
181
|
+
readonly taskId: Schema.brand<Schema.Number, "TaskId">;
|
|
182
|
+
readonly parentId: Schema.NullOr<Schema.brand<Schema.Number, "TaskId">>;
|
|
183
|
+
readonly description: Schema.String;
|
|
184
|
+
readonly total: Schema.optional<Schema.Number>;
|
|
185
|
+
readonly transient: Schema.Boolean;
|
|
186
|
+
readonly countDisplay: Schema.Literals<readonly ["processedOnly", "detailed"]>;
|
|
187
|
+
}>, {}>;
|
|
190
188
|
declare class TaskAddedEvent extends TaskAddedEvent_base {}
|
|
191
|
-
declare const TaskUpdatedEvent_base: Schema.
|
|
192
|
-
readonly
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
countDisplay: Schema.optional<Schema.Literal<["processedOnly", "detailed"]>>;
|
|
202
|
-
}>;
|
|
189
|
+
declare const TaskUpdatedEvent_base: Schema.Class<TaskUpdatedEvent, Schema.TaggedStruct<"TaskUpdated", {
|
|
190
|
+
readonly taskId: Schema.brand<Schema.Number, "TaskId">;
|
|
191
|
+
readonly description: Schema.optional<Schema.String>;
|
|
192
|
+
readonly succeeded: Schema.optional<Schema.Number>;
|
|
193
|
+
readonly failed: Schema.optional<Schema.Number>;
|
|
194
|
+
readonly processed: Schema.optional<Schema.Number>;
|
|
195
|
+
readonly total: Schema.optional<Schema.Number>;
|
|
196
|
+
readonly transient: Schema.optional<Schema.Boolean>;
|
|
197
|
+
readonly countDisplay: Schema.optional<Schema.Literals<readonly ["processedOnly", "detailed"]>>;
|
|
198
|
+
}>, {}>;
|
|
203
199
|
declare class TaskUpdatedEvent extends TaskUpdatedEvent_base {}
|
|
204
|
-
declare const TaskAdvancedEvent_base: Schema.
|
|
205
|
-
readonly
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
kind: Schema.Literal<["succeeded", "failed"]>;
|
|
210
|
-
}>;
|
|
200
|
+
declare const TaskAdvancedEvent_base: Schema.Class<TaskAdvancedEvent, Schema.TaggedStruct<"TaskAdvanced", {
|
|
201
|
+
readonly taskId: Schema.brand<Schema.Number, "TaskId">;
|
|
202
|
+
readonly amount: Schema.Number;
|
|
203
|
+
readonly kind: Schema.Literals<readonly ["succeeded", "failed"]>;
|
|
204
|
+
}>, {}>;
|
|
211
205
|
declare class TaskAdvancedEvent extends TaskAdvancedEvent_base {}
|
|
212
|
-
declare const TaskCompletedEvent_base: Schema.
|
|
213
|
-
readonly
|
|
214
|
-
}
|
|
215
|
-
taskId: Schema.brand<typeof Schema.Number, "TaskId">;
|
|
216
|
-
}>;
|
|
206
|
+
declare const TaskCompletedEvent_base: Schema.Class<TaskCompletedEvent, Schema.TaggedStruct<"TaskCompleted", {
|
|
207
|
+
readonly taskId: Schema.brand<Schema.Number, "TaskId">;
|
|
208
|
+
}>, {}>;
|
|
217
209
|
declare class TaskCompletedEvent extends TaskCompletedEvent_base {}
|
|
218
|
-
declare const TaskFailedEvent_base: Schema.
|
|
219
|
-
readonly
|
|
220
|
-
}
|
|
221
|
-
taskId: Schema.brand<typeof Schema.Number, "TaskId">;
|
|
222
|
-
}>;
|
|
210
|
+
declare const TaskFailedEvent_base: Schema.Class<TaskFailedEvent, Schema.TaggedStruct<"TaskFailed", {
|
|
211
|
+
readonly taskId: Schema.brand<Schema.Number, "TaskId">;
|
|
212
|
+
}>, {}>;
|
|
223
213
|
declare class TaskFailedEvent extends TaskFailedEvent_base {}
|
|
224
|
-
declare const TaskRemovedEvent_base: Schema.
|
|
225
|
-
readonly
|
|
226
|
-
}
|
|
227
|
-
taskId: Schema.brand<typeof Schema.Number, "TaskId">;
|
|
228
|
-
}>;
|
|
214
|
+
declare const TaskRemovedEvent_base: Schema.Class<TaskRemovedEvent, Schema.TaggedStruct<"TaskRemoved", {
|
|
215
|
+
readonly taskId: Schema.brand<Schema.Number, "TaskId">;
|
|
216
|
+
}>, {}>;
|
|
229
217
|
declare class TaskRemovedEvent extends TaskRemovedEvent_base {}
|
|
230
|
-
declare const ProgressTaskEventSchema: Schema.Union<[typeof TaskAddedEvent, typeof TaskUpdatedEvent, typeof TaskAdvancedEvent, typeof TaskCompletedEvent, typeof TaskFailedEvent, typeof TaskRemovedEvent]>;
|
|
218
|
+
declare const ProgressTaskEventSchema: Schema.Union<readonly [typeof TaskAddedEvent, typeof TaskUpdatedEvent, typeof TaskAdvancedEvent, typeof TaskCompletedEvent, typeof TaskFailedEvent, typeof TaskRemovedEvent]>;
|
|
231
219
|
type ProgressTaskEvent = typeof ProgressTaskEventSchema.Type;
|
|
232
|
-
declare const decodeProgressTaskEvent: (
|
|
220
|
+
declare const decodeProgressTaskEvent: (input: unknown, options?: effect_SchemaAST0.ParseOptions) => TaskAddedEvent | TaskUpdatedEvent | TaskAdvancedEvent | TaskCompletedEvent | TaskFailedEvent | TaskRemovedEvent;
|
|
233
221
|
//#endregion
|
|
234
222
|
//#region src/services/progress.d.ts
|
|
235
|
-
declare const Progress_base: Context.
|
|
223
|
+
declare const Progress_base: Context.ServiceClass<Progress, "stromseng.dev/effective-progress/Progress", ProgressShape>;
|
|
236
224
|
declare class Progress extends Progress_base {
|
|
237
|
-
static readonly
|
|
225
|
+
static readonly layer: Layer.Layer<Progress, never, never>;
|
|
238
226
|
}
|
|
239
227
|
//#endregion
|
|
240
228
|
//#region src/api.d.ts
|
|
@@ -248,15 +236,13 @@ interface PublicTaskApi {
|
|
|
248
236
|
}
|
|
249
237
|
interface EffectExecutionOptions {
|
|
250
238
|
readonly concurrency?: Concurrency;
|
|
251
|
-
readonly batching?: boolean | "inherit";
|
|
252
|
-
readonly concurrentFinalizers?: boolean;
|
|
253
239
|
}
|
|
254
240
|
interface EffectAllExecutionOptions extends EffectExecutionOptions {
|
|
255
241
|
readonly discard?: boolean;
|
|
256
|
-
readonly mode?: "default" | "
|
|
242
|
+
readonly mode?: "default" | "result";
|
|
257
243
|
}
|
|
258
244
|
type AllOptions = Omit<TrackOptions, "total" | "countDisplay"> & EffectAllExecutionOptions;
|
|
259
|
-
type AllReturn<Arg extends ReadonlyArray<Effect.Effect<any, any, any>> | Record<string, Effect.Effect<any, any, any>>, O extends EffectAllExecutionOptions> = [[Arg] extends [ReadonlyArray<Effect.Effect<any, any, any>>] ? Effect.All.ReturnTuple<Arg, Effect.All.IsDiscard<O>, Effect.All.
|
|
245
|
+
type AllReturn<Arg extends ReadonlyArray<Effect.Effect<any, any, any>> | Record<string, Effect.Effect<any, any, any>>, O extends EffectAllExecutionOptions> = [[Arg] extends [ReadonlyArray<Effect.Effect<any, any, any>>] ? Effect.All.ReturnTuple<Arg, Effect.All.IsDiscard<O>, Effect.All.IsResult<O>> : [Arg] extends [Record<string, Effect.Effect<any, any, any>>] ? Effect.All.ReturnObject<Arg, Effect.All.IsDiscard<O>, Effect.All.IsResult<O>> : never] extends [Effect.Effect<infer A, infer E, infer R>] ? Effect.Effect<A, E, Exclude<R, Progress | Task>> : never;
|
|
260
246
|
interface ForEachExecutionOptions extends EffectExecutionOptions {
|
|
261
247
|
readonly discard?: false | undefined;
|
|
262
248
|
}
|
|
@@ -288,7 +274,7 @@ declare const forEach: {
|
|
|
288
274
|
<A, B, E, R>(f: (item: A, index: number) => Effect.Effect<B, E, R>, options: ForEachOptions): (iterable: Iterable<A>) => Effect.Effect<ReadonlyArray<B>, E, Exclude<R, Progress | Task>>;
|
|
289
275
|
};
|
|
290
276
|
//#endregion
|
|
291
|
-
//#region src/renderer/columns/amount-column.d.ts
|
|
277
|
+
//#region src/services/renderer/columns/amount-column.d.ts
|
|
292
278
|
interface AmountLayout {
|
|
293
279
|
readonly hasDetailedRows: boolean;
|
|
294
280
|
readonly countWidth: number;
|
|
@@ -297,12 +283,12 @@ interface AmountLayout {
|
|
|
297
283
|
readonly preferredWidth: number;
|
|
298
284
|
}
|
|
299
285
|
//#endregion
|
|
300
|
-
//#region src/renderer/columns/bar-column.d.ts
|
|
286
|
+
//#region src/services/renderer/columns/bar-column.d.ts
|
|
301
287
|
interface BarPrepared {
|
|
302
288
|
readonly hasDeterminateRows: boolean;
|
|
303
289
|
}
|
|
304
290
|
//#endregion
|
|
305
|
-
//#region src/renderer/columns/description-column.d.ts
|
|
291
|
+
//#region src/services/renderer/columns/description-column.d.ts
|
|
306
292
|
interface DescriptionPrepared {
|
|
307
293
|
readonly minTreeWidth: number;
|
|
308
294
|
readonly preferredWidth: number;
|
|
@@ -337,13 +323,13 @@ declare const defaults: () => ReadonlyArray<ColumnDef<any, any>>;
|
|
|
337
323
|
declare const resolveColumnSizeValue: <P>(value: ColumnSizeValue<P> | undefined, prepared: P) => number | undefined;
|
|
338
324
|
//#endregion
|
|
339
325
|
//#region src/services/stdio.d.ts
|
|
340
|
-
interface
|
|
326
|
+
interface ProgressStdioShape {
|
|
341
327
|
readonly stdout: NodeJS.WriteStream;
|
|
342
328
|
readonly stderr: NodeJS.WriteStream;
|
|
343
329
|
}
|
|
344
|
-
declare const ProgressStdio_base: Context.
|
|
330
|
+
declare const ProgressStdio_base: Context.ServiceClass<ProgressStdio, "stromseng.dev/effective-progress/ProgressStdio", ProgressStdioShape>;
|
|
345
331
|
declare class ProgressStdio extends ProgressStdio_base {
|
|
346
|
-
static readonly
|
|
332
|
+
static readonly layer: Layer.Layer<ProgressStdio, never, never>;
|
|
347
333
|
}
|
|
348
334
|
//#endregion
|
|
349
|
-
export { AddTaskOptions, AllOptions, AllReturn, CellInfo, ColumnAlign, ColumnDef, ColumnRenderContext, ColumnSizeValue, columns_d_exports as Columns, EffectAllExecutionOptions, EffectExecutionOptions, ForEachExecutionOptions, ForEachOptions, Progress,
|
|
335
|
+
export { AddTaskOptions, AllOptions, AllReturn, CellInfo, ColumnAlign, ColumnDef, ColumnRenderContext, ColumnSizeValue, columns_d_exports as Columns, EffectAllExecutionOptions, EffectExecutionOptions, ForEachExecutionOptions, ForEachOptions, Progress, ProgressShape, ProgressStdio, ProgressStdioShape, ProgressTaskEvent, ProgressTaskEventSchema, RenderRow, Task, TaskAddedEvent, TaskAdvancedEvent, TaskCompletedEvent, TaskCountDisplay, TaskCountDisplaySchema, TaskFailedEvent, TaskHandle, TaskId, TaskOptions, TaskProgressSample, TaskProgressSampleSchema, TaskRemovedEvent, TaskRowDerived, TaskSnapshot, TaskSnapshotSchema, TaskStatus, TaskStatusSchema, TaskStore, TaskTreeInfo, TaskUnits, TaskUnitsSchema, TaskUpdatedEvent, TrackOptions, UpdateTaskOptions, all, decodeProgressTaskEvent, forEach, task$1 as task };
|