cbor-x 0.9.4 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/test.js CHANGED
@@ -581,6 +581,18 @@
581
581
  outcomesScore: outcomesScore
582
582
  };
583
583
 
584
+ const senmlData = [
585
+ { bn: '/3303/0/5700', bt: 1278887, v: 35.5 },
586
+ { t: 10, v: 34 },
587
+ { t: 20, v: 33 },
588
+ { t: 30, v: 32 },
589
+ { t: 40, v: 31 },
590
+ { t: 50, v: 30 }
591
+ ];
592
+
593
+ const senmlKeys = { bs: -6, bv: -5, bu: -4, bt: -3, bn: -2, n: 0, u: 1, v: 2, vs: 3, t: 6, ut: 7, vd: 8 };
594
+
595
+
584
596
  //import inspector from 'inspector'; inspector.open(9229, null, true); debugger
585
597
  function tryRequire(module) {
586
598
  try {
@@ -608,6 +620,27 @@
608
620
  var ITERATIONS = 4000;
609
621
 
610
622
  suite('CBOR basic tests', function(){
623
+
624
+ test('encode/decode with keyMaps (basic)', function() {
625
+ var data = senmlData;
626
+ let cborSenml = new Encoder({ useRecords: false, keyMap: senmlKeys });
627
+ let cborBasic = new Encoder();
628
+ var serialized = cborSenml.encode(data);
629
+ var deserialized = cborSenml.decode(serialized);
630
+ assert(serialized.length < cborBasic.encode(data).length);
631
+ assert.deepEqual(deserialized, data);
632
+ });
633
+
634
+ test('encode/decode with keyMaps and Records)', function() {
635
+ var data = senmlData;
636
+ let cborSenml = new Encoder({ useRecords: true, keyMap: senmlKeys });
637
+ let cborBasic = new Encoder();
638
+ var serialized = cborSenml.encode(data);
639
+ var deserialized = cborSenml.decode(serialized);
640
+ assert(serialized.length < cborBasic.encode(data).length);
641
+ assert.deepEqual(deserialized, data);
642
+ });
643
+
611
644
  test('encode/decode data', function(){
612
645
  var data = {
613
646
  data: [
@@ -677,9 +710,10 @@
677
710
  });
678
711
  test('encode/decode sample data with records', function(){
679
712
  var data = sampleData;
680
- let structures = [];
681
- let encoder = new Encoder({ structures, useRecords: true });
713
+ let sharedSerialized;
714
+ let encoder = new Encoder({ getStructures() { return }, saveStructures(shared) { sharedSerialized = encode(shared); }, useRecords: true });
682
715
  var serialized = encoder.encode(data);
716
+ encoder = new Encoder({ getStructures() { return decode(sharedSerialized) }, saveStructures(shared) { sharedSerialized = encode(shared); }, useRecords: true });
683
717
  var deserialized = encoder.decode(serialized);
684
718
  assert.deepEqual(deserialized, data);
685
719
  });
@@ -692,8 +726,7 @@
692
726
  });
693
727
  test('encode/decode sample data with packing and records', function(){
694
728
  var data = sampleData;
695
- let structures = [];
696
- let encoder = new Encoder({ structures, pack: true, useRecords: true });
729
+ let encoder = new Encoder({ useStringRefs: true });
697
730
  var serialized = encoder.encode(data);
698
731
  var deserialized = encoder.decode(serialized);
699
732
  assert.deepEqual(deserialized, data);
@@ -732,6 +765,13 @@
732
765
  assert.deepEqual(deserialized, data);
733
766
  }
734
767
  });
768
+ test('pack/unpack sample data with bundled strings', function(){
769
+ var data = sampleData;
770
+ let encoder = new Encoder({ /*structures,*/ useRecords: false, bundleStrings: true });
771
+ var serialized = encoder.encode(data);
772
+ var deserialized = encoder.decode(serialized);
773
+ assert.deepEqual(deserialized, data);
774
+ });
735
775
  if (typeof Buffer != 'undefined')
736
776
  test('replace data', function(){
737
777
  var data1 = {
@@ -931,6 +971,7 @@
931
971
  date: new Date(1532219539733),
932
972
  farFutureDate: new Date(3532219539133),
933
973
  ancient: new Date(-3532219539133),
974
+ invalidDate: new Date('invalid')
934
975
  };
935
976
  let encoder = new Encoder();
936
977
  var serialized = encoder.encode(data);
@@ -940,6 +981,7 @@
940
981
  assert.equal(deserialized.date.getTime(), 1532219539733);
941
982
  assert.equal(deserialized.farFutureDate.getTime(), 3532219539133);
942
983
  assert.equal(deserialized.ancient.getTime(), -3532219539133);
984
+ assert.equal(deserialized.invalidDate.toString(), 'Invalid Date');
943
985
  });
944
986
  test('map/date with options', function(){
945
987
  var map = new Map();
@@ -948,6 +990,7 @@
948
990
  var data = {
949
991
  map: map,
950
992
  date: new Date(1532219539011),
993
+ invalidDate: new Date('invalid')
951
994
  };
952
995
  let encoder = new Encoder({
953
996
  mapsAsObjects: true,
@@ -959,6 +1002,7 @@
959
1002
  assert.equal(deserialized.map[4], 'four');
960
1003
  assert.equal(deserialized.map.three, 3);
961
1004
  assert.equal(deserialized.date.getTime(), 1532219539000);
1005
+ assert.isTrue(isNaN(deserialized.invalidDate.getTime()));
962
1006
  });
963
1007
  test('key caching', function() {
964
1008
  var data = {
@@ -1008,7 +1052,7 @@
1008
1052
  useFloat32: DECIMAL_FIT
1009
1053
  });
1010
1054
  var serialized = encoder.encode(data);
1011
- assert.equal(serialized.length, 35);
1055
+ assert.equal(serialized.length, 36);
1012
1056
  var deserialized = encoder.decode(serialized);
1013
1057
  assert.deepEqual(deserialized, data);
1014
1058
  });
@@ -1143,7 +1187,7 @@
1143
1187
  let structures = [];
1144
1188
  var serialized = encode(data);
1145
1189
  console.log('CBOR size', serialized.length);
1146
- let encoder = new Encoder({ structures });
1190
+ let encoder = new Encoder({ structures, bundleStrings: true });
1147
1191
  var serialized = encoder.encode(data);
1148
1192
  console.log('CBOR w/ record ext size', serialized.length);
1149
1193
  for (var i = 0; i < ITERATIONS; i++) {
@@ -1154,7 +1198,7 @@
1154
1198
  var data = sampleData;
1155
1199
  this.timeout(10000);
1156
1200
  let structures = [];
1157
- let encoder = new Encoder({ structures });
1201
+ let encoder = new Encoder({ structures, bundleStrings: true });
1158
1202
  let buffer = typeof Buffer != 'undefined' ? Buffer.alloc(0x10000) : new Uint8Array(0x10000);
1159
1203
 
1160
1204
  for (var i = 0; i < ITERATIONS; i++) {
package/encode.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Decoder } from './decode'
2
- export { addExtension, FLOAT32_OPTIONS } from './unpack'
2
+ export { addExtension, FLOAT32_OPTIONS } from './decode'
3
3
  export class Encoder extends Decoder {
4
4
  encode(value: any): Buffer
5
5
  }