Sample code for 30+ languages & platforms
Node.js

Transition from BeginCompressStringENC to FirstChunk/LastChunk

Provides instructions for replacing deprecated BeginCompressStringENC method calls with using FirstChunk/LastChunk properties.

Chilkat Node.js Downloads

Node.js
NODEJS_PRELUDE

function chilkatExample() {

    var success = false;

    //  This example assumes the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    var sbCompressedBase64 = new chilkat.StringBuilder();

    var compress = new chilkat.Compression();
    compress.Algorithm = "deflate";
    compress.Charset = "utf-8";
    compress.EncodingMode = "base64";

    var sbIndex = new chilkat.StringBuilder();

    //  ----------------------------------------------------------------------------------
    //  This is the deprecated way of compressing in chunks using Begin/More/End methods..
    //  ----------------------------------------------------------------------------------
    var i;
    for (i = 0; i <= 24; i++) {
        //  Note: It is possible (and normal) for a BeginCompress* or MoreCompress* method to return
        //  an empty string (or 0 bytes).  When this happens, the input data is not lost.  It will be flushed
        //  in a subsequent call.
        sbIndex.Clear();
        sbIndex.AppendInt(i);
        if (i == 0) {
            sbCompressedBase64.Append(compress.BeginCompressStringENC(sbIndex.GetAsString()));
        }
        else {
            sbCompressedBase64.Append(compress.MoreCompressStringENC(sbIndex.GetAsString()));
        }

        sbCompressedBase64.Append(compress.MoreCompressStringENC(": This is a line of data to be compressed...\r\n"));
    }

    //  Flush any remaining output.
    sbCompressedBase64.Append(compress.EndCompressStringENC());

    console.log("The base64 encoded compressed text:");
    console.log(sbCompressedBase64.GetAsString());

    //  Decompress in one call:
    var originalText = compress.DecompressStringENC(sbCompressedBase64.GetAsString());
    console.log(originalText);

    //  ----------------------------------------------------------------------------------
    //  This is new way of compressing in chunks using FirstChunk and LastChunk properties
    //  ----------------------------------------------------------------------------------

    sbCompressedBase64.Clear();

    compress.FirstChunk = true;
    compress.LastChunk = false;

    var bdCompressed = new chilkat.BinData();
    var sbUncompressedChunk = new chilkat.StringBuilder();

    for (i = 0; i <= 24; i++) {
        if (i == 24) {
            compress.LastChunk = true;
        }

        sbUncompressedChunk.Clear();
        sbUncompressedChunk.AppendInt(i);
        sbUncompressedChunk.Append(": This is a line of data to be compressed...\r\n");

        compress.CompressSb(sbUncompressedChunk,bdCompressed);

        compress.FirstChunk = false;
    }

    console.log("The base64 encoded compressed text:");
    console.log(bdCompressed.GetEncoded("base64"));

    //  Decompress in one call:
    originalText = compress.DecompressStringENC(bdCompressed.GetEncoded("base64"));
    console.log(originalText);

}

chilkatExample();