Changelog
All notable changes to this project will be documented in this file.
See Conventional Commits 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
💥 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
- tweak types (050580c)
9.1.0
10 Apr 2022
✨ Features
- export defaults (53ec13b)
9.0.0
9 Sept 2021
✨ Features
- migrate to ES Modules (8c9d95d)
💥 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 …
— nowimport { 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 disablenyc
, 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.log
s in the source code — there’s no need to comment-outconsole.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 ofobject-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.