PlayUploadEvent class
One line of cux_ship play upload --json.
A stream, not a document, and the difference is a promise this format
makes rather than a shortcut it takes. Every other kind here is written
whole and once at the end, because a fail() partway through would leave
half a document on stdout under an exit code saying to trust it. A line is
not half of anything: it is complete when its newline arrives, it carries
its own schema and kind, and a stream that stops early is a stream that
stopped — which is the only shape that can report an upload while it is
running, which is the whole point.
The three shapes are UploadEvent:
{"schema":1,"kind":"play.upload","event":"state","state":"transferring","bytesTotal":68123456}
{"schema":1,"kind":"play.upload","event":"progress","bytesSent":1048576,"bytesTotal":68123456}
{"schema":1,"kind":"play.upload","event":"result","result":{"packageName":"design.codeux.example","track":"internal","versionName":"1.4.0","versionCode":152,"committed":true}}
A field that does not apply to a line is absent rather than null. Null would say the field applies and had no value, which is the distinction the store vocabularies above are built on; here it is the difference between a progress line and a state line that lost its state.
No display, and that is deliberate rather than forgotten. The other
kinds carry one because --json suppresses their rendering — a consumer
with no display would have to re-render, and two renderings of one model
drift. An upload suppresses nothing: every human-facing line it has always
printed still goes to stderr, in full and in order, because that stream is
a log somebody reads after a failure. Carrying those lines here as well
would deliver each of them twice on two streams, and a consumer joining the
two would print them twice.
- Annotations
-
- @JsonSerializable.new(explicitToJson: true, includeIfNull: false)
Constructors
- PlayUploadEvent({required int schema, required DocumentKind kind, required UploadEvent event, UploadState? state, int? bytesSent, int? bytesTotal, PlayUploadResult? result})
-
const
-
PlayUploadEvent.fromJson(Map<
String, dynamic> json) -
factory
Properties
- bytesSent → int?
-
Bytes the store has acknowledged. Present on UploadEvent.progress.
final
- bytesTotal → int?
-
The artifact's size. Present on UploadEvent.progress and on the
UploadState.transferring line.
final
- event → UploadEvent
-
Which shape this line is. Dispatch on this.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- kind → DocumentKind
-
final
- result → PlayUploadResult?
-
What the run did. Present on UploadEvent.result, which is the last
line of a run that finished.
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- schema → int
-
This kind's schema number. Refuse one you do not recognize.
final
- state → UploadState?
-
The state the upload just moved into. Present on UploadEvent.state.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited