Skip to content

Releases: darrachequesne/notepack

3.0.1

22 May 08:43
bd1ef52
Compare
Choose a tag to compare

The browser bundle was not updated in the previous release.

Diff: 3.0.0...3.0.1

3.0.0

22 May 08:33
e5bdc6e
Compare
Choose a tag to compare

Features

  • add support for BigInt.prototype.toJSON (#28) (9ec1fcd)

This change allows to properly encode BigInt objects:

// always as string
BigInt.prototype.toJSON = function () {
  return String(this);
};
// or either as string or number, depending on the value
BigInt.prototype.toJSON = function () {
  var isSafeNumber = Number.MIN_SAFE_INTEGER <= this && this <= Number.MAX_SAFE_INTEGER;
  return isSafeNumber ? Number(this) : String(this);
};
  • encode ArrayBuffer objects as bin (8209327)
import { encode } from "notepack.io";

encode(Uint8Array.of(1, 2, 3, 4));

// before: <Buffer c7 04 00 01 02 03 04>
// after: <Buffer c4 04 01 02 03 04>

ArrayBuffer objects encoded with previous versions of the library will still be decoded, but as Buffer instead of Uint8Array.

Reference: https://github.com/msgpack/msgpack/blob/master/spec.md#bin-format-family

  • encode Date objects following the official timestamp extension (9fb6275)
import { encode } from "notepack.io";

encode(new Date("2000-06-13T00:00:00.000Z"));

// before: <Buffer d7 00 00 00 00 df b7 62 9c 00>
// after: <Buffer d6 ff 39 45 79 80>

Date objects encoded with previous versions of the library will still be properly decoded.

Reference: https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type

  • match JSON.stringify() behavior (21c6592)

The library will now match the behavior of the JSON.stringify() method:

  • undefined is now encoded as nil (0xc0)
  • undefined values in objects are now ignored
import { encode, decode } from "notepack.io";

const value = {
  a: undefined,
  b: null,
  c: [undefined, null]
};

decode(encode(value));

// before:
// {
//   a: undefined,
//   b: null,
//   c: [undefined, null]
// }
// after:
// {
//   b: null,
//   c: [null, null]
// }

Diff: 2.3.0...3.0.0

2.3.0

15 Mar 01:38
a1a42d7
Compare
Choose a tag to compare

Performance Improvements

  • decode: add a cache for buffer-to-string conversions (3c0e5a6)
  • encode: add a cache for string-to-buffer conversions (60e8b0b)

2.1.3

14 May 11:31
17fceb8
Compare
Choose a tag to compare

2.1.3 (2018-05-14)

Bug Fixes

2.1.2

23 Aug 11:44
Compare
Choose a tag to compare

2.1.2 (2017-08-23)

Bug Fixes

  • encode: remove the unsafe integer check (#15) (bb8140c)

2.1.1

08 Aug 05:38
Compare
Choose a tag to compare

2.1.1 (2017-08-08)

Bug Fixes

  • browser: fix decoding for strings with surrogate pairs (#13) (a89e566)
  • browser: preserve the offset and length when creating a DataView (#11) (bd91aa7)

2.1.0

31 Jul 21:42
Compare
Choose a tag to compare

2.1.0 (2017-07-31)

Features

  • add support for toJSON method (#8) (9345f9f), closes #7

2.0.1

06 Jun 20:31
Compare
Choose a tag to compare

2.0.1 (2017-06-06)

Bug Fixes

  • encode: fix encoding for non-finite numbers (#4) (f0ed0f3)

2.0.0

20 May 04:49
Compare
Choose a tag to compare

2.0.0 (2017-05-19)

Features

  • Add support for ArrayBuffer (#2) (9eec8dc)
  • browser: switch from Buffer polyfill to ArrayBuffer (#1) (8d7ce87)