Interface: AstmMessageClassification
The message-level classification from the host-query flow. isHostQueryRequest
is the single boolean a consumer should gate on before treating records as
results: it is true iff a Q record is present.
Example
import { parseAstmRecords } from "@cosyte/astm";
const req = parseAstmRecords("H|\\^&\rP|1\rQ|1|^SPEC-7||ALL\rL|1\r");
req.classification.kind; // "host-query"
req.classification.isHostQueryRequest; // true, never read its records as results
Properties
hasOrders
readonlyhasOrders:boolean
At least one O (order) record is present.
hasQuery
readonlyhasQuery:boolean
At least one Q (request-information) record is present.
hasResults
readonlyhasResults:boolean
At least one R (result) record is present.
hasUnrecognized
readonlyhasUnrecognized:boolean
At least one record's type letter was not recognized (an UnsupportedRecord), so the letter counts above are known to be incomplete.
Any of them may have been a Q, which is why a message carrying one is classified
indeterminate unless a Q was read outright. ASTM_RECORD_UNKNOWN_TYPE reports the same
condition on AstmMessage.warnings.
isHostQueryRequest
readonlyisHostQueryRequest:boolean
true iff kind === "host-query" (a Q record was read), the safety surface: gate on this
before treating records as results, so a query is never misread as a result upload.
false is not a warrant that the message is a result set. Read kind for that: it is
indeterminate whenever the reader could not account for every type letter.
kind
readonlykind:AstmMessageKind
The message kind.
indeterminate also covers a message the reader declines to classify: when
AstmMessageClassification.hasUnrecognized is true and no Q was read, the kind is
withheld rather than guessed, because the unreadable letter may have been that Q. The has*
flags below stay truthful in that case, so a caller that wants the raw counts still has them.