Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

bs-decode

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

bs-decode - npm Package Versions

23

1.2.0

Diff

mlms13
published 1.1.0 •

Changelog

Source

1.1.0 (Mar 25, 2023)

This release adds helpers to ease the transition away from the deprecated features in the 1.0 release. Barring any bugs that require fixing, this is the last planned release in the 1.x series.

:warning: Deprecated features

  • Some deprecations mentioned in the previous release notes weren't actually deprecated in the code. Those will now trigger compiler warnings.

:sparkles: New features

  • hush is a new function that takes a Decode.AsResult.OfParseError decoder and converts it into a Js.Json.t => option('a) decoder (effectively "hushing" the error). This should make the transition away from Decode.AsOption easier.
  • literalBool, literalTrue, and literalFalse join the other literal* decoders that first decode, then further validate the output
  • intUnion works like stringUnion and should make the transition away from variantFromInt easier
mlms13
published 1.0.0 •

Changelog

Source

1.0.0 (Mar 9, 2023)

Version 1.0 is here! Very little has changed since 0.11.2; mostly this release indicates the stability (or lack of maintenance, depending on how you look at it) over the last several years. The 1.x releases will be the last to support BuckleScript as we turn our attention to Melange.

There are no breaking changes in this release, but there are a handful of deprecations. We should end up with decent alternatives to all of the features that will eventually be removed, but if any of this concerns you, please let me know!

:warning: Deprecated features

  • Decode.AsResult.OfStringNel will be removed in an upcoming release. The errors are less useful than OfParseError, and there's a cost to maintaining multiple decoder types
  • Decode.AsOption will also be removed. Again, there's a maintenance burden in keeping it, and if you really want option, it's easy enough to convert the result return into an option.
  • Decode.Make (for making your own custom output types) will eventually be removed as we focus on ParseError
  • variantFromJson and variantFromString will be removed in favor of new, simpler, more consistent tools for decoding variants (see the new literal functions below)
  • The Decode.Pipeline module is now deprecated. See the docs for alternatives and a teaser about upcoming changes that will make this experience way better
  • stringMap will be removed as we try to limit how much we depend on Belt-specific features. You can use the dict decoder instead and convert the Js.Dict to a Belt.String.Map.

:sparkles: New features

  • Functions have been added to decode literal values e.g. literalString, literalInt, and literalFloat. These functions first decode to the expected type, then ensure the value exactly matches the provided value. This is useful for decoding unions of string literals (e.g. "dev" | "prod")
  • Decoding sting unions is such a common need that we've provided a stringUnion function to make it even simpler

:memo: Documentation

:robot: Dependency updates

  • bs-bastet was bumped to 2.0 and relude was bumped to 0.66.1. As peer dependencies, this change is the most likely to impact your existing projects, but hopefully the update isn't too bad
mlms13
published 0.11.2 •

Changelog

Source

0.11.2 (Jun 28, 2020)

:bug: Bug fixes

  • Compiled output files will no longer have a /./ in the middle of the path, which causes issues with some bundlers/dev setups (thanks @hamza0867 for finding and fixing this!)
mlms13
published 0.11.1 •

Changelog

Source

0.11.1 (Mar 31, 2020)

:bug: Bug fixes

  • Revert the public flag in the bsconfig.json. There are apparently some strange quirks that cause aliased modules not to compile in downstream projects, so I got rid of it. You still shouldn't need to access Decode_* modules directly (instead use Decode.AsWhatever) but those modules won't be hidden from you.
mlms13
published 0.11.0 •

Changelog

Source

0.11.0 (Mar 31, 2020)

:rotating_light: Breaking changes

  • The bs-abstract peer-dependency is now bs-bastet, and the required Relude version is 0.59+. See the Relude release notes and the Bastet migration guide for details.
  • Alias everything in Decode and prevent direct access to the Decode_* modules via Bucklescript's public flag

:sparkles: New features

  • okJson is a decoder that always passes and preserves the input JSON
mlms13
published 0.10.0 •

Changelog

Source

0.10.0 (Mar 3, 2020)

:rotating_light: Breaking changes

  • All error-related types now live in Decode.ParseError. Specifically, this means that DecodeBase.failure is now Decode.ParseError.base, which is important if you're extending the base errors to create your own custom errors.

:memo: Documentation

  • README explains peer dependencies better
  • Nested array decoding is demonstrated in the tests
  • Haskell-style object decoding operates on the decoders, not the result

:heavy_check_mark: Code quality

  • Bump dependencies and allow compilation with Bucklescript 7.1
  • Internally, use structural typing for typeclasses rather than named modules
mlms13
published 0.9.0 •

Changelog

Source

0.9.0 (Oct 7, 2019)

:sparkles: New features

  • Decode into a Belt Map (with string keys)
  • Allow easy access to tuple helpers from Pipeline
  • pipe function itself is now public

:heavy_check_mark: Code quality

  • More tests around string and int decoding
  • Bump dependencies
mlms13
published 0.8.1 •

Changelog

Source

0.8.1 (Jul 12, 2019)

:bug: Bug fixes

  • optionField values that are present but fail to decode will now report the field in the ParseError

:heavy_check_mark: Code quality

  • CI will now show failures correctly if tests don't pass
mlms13
published 0.8.0 •

Changelog

Source

0.8.0 (Jul 3, 2019)

:rotating_light: Breaking

  • Long-deprecated int and float functions have been removed. You should be using intFromNumber and floatFromNumber instead to avoid shadowing issues
  • tuple (which previously contructed a tuple from a JSON object) is now tupleFromFields
  • Base failure type now includes an ExpectedTuple(int) constructor, where int is the expected size. This is only a breaking change if you're manually matching on values of the base failure type.

:sparkles: New features

  • JSON arrays can now be decoded directly into tuples using tuple2...tuple5 (which will fail if the JSON array is larger than expected) or tupleAtLeast2...tupleAtLeast5 (which will tolerate longer arrays)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc