gcode-preview - v3.0.0-alpha.6
    Preparing search index...

    Function splitChunk

    • Splits a streamed chunk into the lines that are complete and the part to carry into the next chunk.

      Parameters

      • tail: string

        Partial line, and any held comment lines, from the last chunk

      • chunk: string

        Newly read chunk of G-code text

      Returns { complete: string; tail: string }

      complete, ready to parse, and the new tail

      The returned tail excludes the newline itself, so prepending it to the next chunk never fabricates an empty line at a chunk boundary.

      A chunk containing no newline at all completes nothing: the whole chunk is carried into the tail, so a line is only ever parsed once its terminating newline (or the end of the stream) has arrived.

      Comment lines that end a chunk are carried too. A slicer describes a layer in a run of them -- ;LAYER_CHANGE, then ;Z:, then ;HEIGHT: -- and a chunk ends wherever the bytes ran out, so the description can be cut in half. Whatever reads the comments would then see a layer whose values are in the next chunk. A run of comments is never the end of anything, so holding it costs nothing: the G-code line that closes it brings it along.