Changelog

All notable changes to this project will be documented in this file.
See Conventional Commits opens in a new tab for commit guidelines.

11.0.0

1 Dec 2022

💥 BREAKING CHANGES

  • Minimum supported Node version is v14.18; we’re dropping v12 support

10.0.0

16 Oct 2022

🔧 Fixed

  • set the merging to be correct as per what is promised (1830aff), closes #51

💥 BREAKING CHANGES

  • during deep merging, if value of the incoming schema is matching what’s already there, now already there prevails; previously, the schema would prevail

9.2.0

12 Aug 2022

Features

9.1.2

18 Apr 2022

🔧 Fixed

9.1.0

10 Apr 2022

Features

9.0.0

9 Sept 2021

Features

💥 BREAKING CHANGES

  • programs now are in ES Modules and won’t work with Common JS require()

8.1.0

24 May 2021

Features

  • config file based major bump blacklisting (e15f9bb)

8.0.15

11 Apr 2021

Reverts

  • Revert “chore: setup refresh” (23cf206)

8.0.1

28 Jan 2021

🔧 Fixed

  • add testStats to npmignore (f3c84e9)

8.0.0

23 Jan 2021

Features

  • rewrite in TS, start using named exports (474db39)

💥 BREAKING CHANGES

  • previously you’d consume like: import fillMissing from … — now import { fillMissing } from …

7.11.0

28 Nov 2020

Accidental version bump during migration to SourceHut. Sorry about that.

7.10.0

2 Oct 2019

Features

  • remove options validation, to make operation 540% faster (dab767a)

Performance Improvements

  • tap native Array.isArray to gain around 140 times more speed (35af347)

7.9.0

20 Jan 2019
  • Various documentation and setup tweaks after we migrated to monorepo
  • Setup refresh: updated dependencies and all config files using automated tools

7.5.0

26 Dec 2018
  • Added opts.doNotFillThesePathsIfTheyContainPlaceholders (8c6080e)

7.4.0

24 Oct 2018
  • Updated all dependencies
  • Restored coveralls.io reporting
  • Restored unit test linting

7.3.0

28 Aug 2018
  • Switched to newest Babel (v.7) but ava+esm+nyc didn’t work together so we had to disable nyc, our code coverage, until further notice
  • Added comment removal on Rollup production builds

7.2.0

19 Jun 2018

GitHub sold us out. In the meantime, we:

  • Migrated to Bitbucket (to host repo + perform CI) and Codacy (for code quality audit)
  • Dropped BitHound (RIP) and Travis

7.1.0

25 May 2018
  • Set up Prettier on a custom ESLint rule set.
  • Removed package.lock and .editorconfig
  • Wired Rollup to remove comments from non-dev builds. This means we can now leave the console.logs in the source code — there’s no need to comment-out console.log statements or care about them not spilling into production. Now it’s done automatically.
  • Unit tests are pointing at ES modules build, which means that code coverage is correct now, without Babel functions being missed. This is important because now code coverage is real again and now there are no excuses not to perfect it.

7.0.0

13 Mar 2018

Features

  • opts.useNullAsExplicitFalse

Since it’s on by default, and it behaves differently to if it were off, it’s a breaking change and thus warrants a major semver bump.

6.0.0

27 Jan 2018

✈️ Changes

  • Complete recode from scratch in order to control key creation more precisely (necessary for new features). Previously object-merge-advanced did all the job.
  • opts.doNotFillThesePathsIfTheyContainPlaceholders
  • opts.placeholder

4.0.0

11 Dec 2017

✈️ Changes

  • Rebased in ES Modules
  • Set up Rollup. Now serving 3 flavours: CommonJS, UMD and ES Module. When this library is used as a dependency, WebPack and Rollup should recognise ES Module wiring via module key in package.json and should switch to ES Modules version automatically.
  • Fixed few tiny bugs
  • Improved unit test coverage to be 100%-lines. I can’t do 100%-branches because Babel adds functions which I can’t target and we’re testing transpiled code. The source is now in ES Modules and everything’s covered there.
  • 👾 Some other setup tweaks to reflect my latest understanding what’s best for npm libraries.

3.1.0

14 Oct 2017

Features

  • opts.placeholder
  • opts.doNotFillThesePathsIfTheyContainPlaceholders

3.0.0

13 Oct 2017

✈️ Changes

  • 🔧 Hardened the API — strange cases with no arguments or wrong-ones will throw an error. Hence bumping the major semver release.

2.3.0

13 Oct 2017

Features

  • Dropped JS Standard and moved to raw ESLint on airbnb-base preset with semicolons off. JS Standard does not have many important rules on, beware.
  • Options — third input argument, with all validation (driven by check-types-mini on npm, on GitLab)

2.2.0

20 May 2017

Features

  • cli clear when running unit tests (not that relevant for end-user, but totally relevant when maintaining all this)
  • now consuming standard as a normal semver range, not the latest greatest which is a liability remembering what happened on v10 release
  • one more unit test

2.1.0

16 Mar 2017

✈️ Changes

  • 🔧 Improvements to the merging algorithm

2.0.0

16 Mar 2017

✈️ Changes

  • 🔧 Rewrote pretty much the whole core of this. Previously, the algorithm did not take into the account the placeholder values and also didn’t use an object-merge-advanced-class merging, only filled the missing keys. It’s fixed now. From practical standpoint, the main difference is when merging two plain objects, if two have the same key but one’s value is a string, another’s value is array, array will overwrite string. Previously, not so. Basically, now the full hierarchy of object-merge-advanced is retained. This might have consequences to any template code that relied on previous algorithm, but it’s a bad practice to mix different data types in the template logic anyway, so hey.

Features

  • Even more more unit tests

🏗️ Improvements

  • Put some test variables into correct scope. It does not change anything, but still.