Skip to content

Releases: BrianMitchL/gift-exchange

v4.0.1

07 Jun 03:35
v4.0.1
a9313e9
Compare
Choose a tag to compare

No user changes, just updates to build dependencies.

What's Changed

Full Changelog: v4.0.0...v4.0.1

v4.0.0

13 Mar 06:22
v4.0.0
bc2c5bf
Compare
Choose a tag to compare

What's Changed

Breaking Changes

  • Node 16+ is required to develop and build this package
  • To install and use the package, older versions should continue to work
  • The compiled files have changed slightly with new file names and newer bundlers that has changed the emitted structure slightly.
    • dist/giftexchange.cjs.js - not minified
    • dist/giftexchange.esm.js - not minified
    • dist/giftexchange.umd.development.js- not minified
    • dist/giftexchange.umd.production.js - minified
    • dist/index.d.ts

Full Changelog: v3.0.0...v4.0.0

v3.0.0

21 Mar 05:44
c1f0fdb
Compare
Choose a tag to compare

This is a relatively small update, but with some breaking changes.

Breaking Changes

  • All files in the published package have consistent filenames
    • This shouldn't affect CommonJS or ESM imports
    • UMD builds are now at dist/giftexchange.umd.production.min.js instead of dist/gift-exchange.umd.production.min.js
  • calculateSync has been renamed to calculate, and the old calculate has been removed
  • DerangementError was removed in favor of a standard Error and setting the name property to "GiftExchangeError"
  • The bundle size was reduced from 1.2KB to under 500B through the removal of DerangementError and the bundled polyfills for Object.setPrototypeOf and class
  • All code was moved to the single src/index.ts file to simplify emitted files and types

New Features

  • There is a new exported function, validateMatches, which is used internally, in case you want to use it to build your own implementation

v2.1.0...v3.0.0

v2.1.0

27 Sep 08:38
v2.1.0
5e7ca8b
Compare
Choose a tag to compare

New Features

  • UMD build available from the GiftExchange property
    • Development: dist/gift-exchange.umd.development.js
    • Production: dist/gift-exchange.umd.production.min.js
  • Custom timeouts
  • New options format for passing in exclusions and timeouts
  • Deprecate calculate in favor of calculateSync

If you were calling calculateSync(people, exclusions) you can now
use the new format: calculateSync(people, { exclusions }). The
old format will continue to work as well.

Commits

  • Merge pull request #10 from BrianMitchL/custom-timeouts 127fb0f
  • Add timeout option and add overloads for new call syntax 32e2534
  • Merge pull request #9 from BrianMitchL/umd 3394810
  • Fix test CI step bdd171a
  • Create UMD build 4213a05
  • Update dependencies remove unneeded async keyword ed26759
  • Merge pull request #8 from BrianMitchL/update-deps 7a8d941
  • update-deps 0f1785c
  • Update description 57d4151

v2.0.0...v2.1.0

v2.0.0

13 Aug 03:49
ac5fbf0
Compare
Choose a tag to compare

Exclusion Improvements

The main breaking change is the improvement made to exclusions such that a Person's group can be excluded in addition to a Person's name. This brings a new interface structure for an Exclusion and hopefully makes it more clear what the properties mean.

Here's how you would upgrade an exclusion to the new structure
Before (v1.0.0):

const exclusions: Exclusion[] =  [{
  type: 'name',
  subject: 'Brian',
  // this always referred to the 'name'
  value: 'Freja'
}];

After (v2.0.0):

const exclusions: Exclusion[] =  [{
  type: 'name',
  subject: 'Brian',
  excludedType: 'name',
  excludedSubject: 'Freja'
}];

Other Breaking Changes

If you imported things outside of the main index file, some refactoring in directory structure was done, so those imports may have changes (models was deleted and merged into utils).

v1.0.0

28 Jul 20:55
021f792
Compare
Choose a tag to compare

This is a major rewrite from the previously released v0.1.0.

A cli is no longer provided. This package provides a synchronous and
asynchronous function to perform a derangement for a gift exchange.
Full docs are located in the README.

Initial Release

27 May 18:57
78da296
Compare
Choose a tag to compare

This is a crude initial release in order to get the ball moving. You can install it by running npm i gift-exchange