Uname:Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64

403WebShell
403Webshell
Server IP : 82.148.16.210  /  Your IP : 216.73.216.169
Web Server : nginx/1.29.5
System : Linux mail.sarafai.ru 6.1.0-43-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.162-1 (2026-02-08) x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /srv/projects/env4/src/dev/frontend3/node_modules/table/node_modules/JSONStream/test/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /srv/projects/env4/src/dev/frontend3/node_modules/table/node_modules/JSONStream/test/keys.js
var test = require('tape');
var fs = require ('fs');
var join = require('path').join;
var couch_sample_file = join(__dirname, 'fixtures','couch_sample.json');
var JSONStream = require('../');

var fixture = {
  obj: {
    one: 1,
    two: 2,
    three: 3
  }
};

function assertFixtureKeys(stream, t) {
    var keys = [];
    var values = [];
    stream.on('data', function(data) {
        keys.push(data.key);
        values.push(data.value);
    });

    stream.on('end', function() {
        t.deepEqual(keys, ['one', 'two', 'three']);
        t.deepEqual(values, [1,2,3]);
        t.end();
    });
    stream.write(JSON.stringify(fixture));
    stream.end();
}

test('keys via string', function(t) {
    var stream = JSONStream.parse('obj.$*');
    assertFixtureKeys(stream, t);
});

test('keys via array', function(t) {
    var stream = JSONStream.parse(['obj',{emitKey: true}]);
    assertFixtureKeys(stream, t);
});

test('path via array', function(t) {
    var stream = JSONStream.parse(['obj',{emitPath: true}]);
    
    var paths = [];
    var values = [];
    stream.on('data', function(data) {
        console.log(JSON.stringify(data));
        paths.push(data.path);
        values.push(data.value);
    });

    stream.on('end', function() {
        t.deepEqual(paths, [['obj', 'one'], ['obj', 'two'], ['obj', 'three']]);
        t.deepEqual(values, [1,2,3]);
        t.end();
    });
    stream.write(JSON.stringify(fixture));
    stream.end();
});

test('advanced keys', function(t) {
    var advanced = fs.readFileSync(couch_sample_file);
    var stream = JSONStream.parse(['rows', true, 'doc', {emitKey: true}]);

    var keys = [];
    var values = [];
    stream.on('data', function(data) {
        keys.push(data.key);
        values.push(data.value);
    });

    stream.on('end', function() {
        t.deepEqual(keys, [
            '_id', '_rev', 'hello',
            '_id', '_rev', 'hello'
        ]);
        t.deepEqual(values, [
            "change1_0.6995461115147918", "1-e240bae28c7bb3667f02760f6398d508", 1,
            "change2_0.6995461115147918", "1-13677d36b98c0c075145bb8975105153", 2
        ]);
        t.end();
    });
    stream.write(advanced);
    stream.end();
});

test('parent keys', function(t) {
    var stream = JSONStream.parse('$*');
    var d = null;
    stream.on('data', function(data) {
        if(d) t.fail('should only be called once');
        d = data;
    });

    stream.on('end', function() {
        t.deepEqual(d,{
            key: 'obj',
            value: fixture.obj
        });
        t.end();
    });
    stream.write(JSON.stringify(fixture));
    stream.end();
})

Youez - 2016 - github.com/yon3zu
LinuXploit