Changelog
All notable changes to this project will be documented in this file.
See Conventional Commits for commit guidelines.
8.0.0
💥 BREAKING CHANGES
- Minimum supported Node version is v14.18; we’re dropping v12 support
7.1.0
✨ Features
- export types (11b5fb9)
7.0.16
🔧 Fixed
- improve types (b40fdb0)
7.0.15
🔧 Fixed
- tweak types (3691de9)
7.0.0
✨ Features
- migrate to ES Modules (8c9d95d)
💥 BREAKING CHANGES
- programs now are in ES Modules and won’t work with Common JS
require()
6.9.0
✨ Features
- config file based major bump blacklisting (e15f9bb)
6.8.15
⏪ Reverts
- Revert “chore: setup refresh” (23cf206)
6.8.1
🔧 Fixed
- add
testStats
to npmignore (f3c84e9)
6.8.0
✨ Features
- rewrite in TS (fb3981e)
6.7.0
Accidental version bump during migration to SourceHut. Sorry about that.
6.6.1
🔧 Fixed
- fix the semver key comparison, regex was off (6335dc9)
6.6.0
✨ Features
- sort keys with semver values by comparing semver, not by alphabettical sort (a5896fa)
6.5.0
- Various documentation and setup tweaks after we migrated to monorepo
- Setup refresh: updated dependencies and all config files using automated tools
6.4.0
- Add one more tag before which there will be a line break (4f00871)
6.3.0
- Add one more tag before which there will be a line break (4f00871)
6.2.0
GitHub sold us out. God bless their souls and the new billionaire. In the meantime, we:
- Migrated to BitBucket (to host repo + perform CI) and Codacy (for code quality audit)
- Dropped BitHound (RIP) and Travis
- Remove
package-lock
6.1.0
- Set up Prettier
- 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 — Rollup will remove from production code. - Now pointing unit tests at ES Modules build, not CommonJS-one. This means, unit test coverage will be correct (higher) because there won’t be any missing rows that Babel added which are impossible to cover.
6.0.0
- Added
opts.useNullAsExplicitFalse
on all both sync and async getKeyset methods
Since it’s on by default (which is sensible), that’s technically a breaking change, which warrants a major semver bump.
5.1.0
doNotFillThesePathsIfTheyContainPlaceholders
on bothenforceKeysetSync()
andenforceKeyset
placeholder
on bothenforceKeysetSync()
andenforceKeyset
5.0.0
✨✨✨ ASYNC! ✨✨✨
-
All functions up until now were synchronous. Now all were renamed:
getKeyset => getKeysetSync enforceKeyset => enforceKeysetSync sortAllObjects => sortAllObjectsSync noNewKeys => noNewKeysSync findUnused => findUnusedSync
In their place, async-alternatives were placed. For starters, we have async
getKeyset
andenforceKeyset
— both consume and return promises.
Please update your API’s appending “Sync” on the function names, or better, tap async-ones instead.
4.2.0
- Small rebasing, improvements to the setup and proper deps refresh.
4.1.0
- Tapped
sort-keys
on adeep
setting, replacing the existing deep sort function.
4.0.0
- 🔧 method
sortIfObject()
renamed tosortAllObjects()
. It now performs a deep sort of any objects within anything. If a non-array and non-object is given, same thing is returned bypassing the operations, so it’s safe to apply on any JS types. That’s thanks to ast-monkey which performs the deep traversal.
3.0.0
API-wise, there are no changes, but since it’s rewrite in ES modules and the arrangement of files is different, I’ll bump semver major just in case. Cheers!
- The main source now is in ES2015 modules with
import
/export
. - Implemented Rollup to generate 3 flavours of this package: CommonJS, UMD and ESM
module
withimport
/export
. As a bonus, the Babel setup does not ignorenode_modules
where all dependencies sit, what means no matter were they transpiled or not, this library will not cause problems increate-react-app
and the likes.
2.5.0
findUnused()
new options key:opts.comments
. It let’s you ignore and exclude the comment keys from reports.
2.4.0
object-assign
replaced with ES6Object.assign
2.3.0
- Improved some error messages, now outputting both its type and value.
2.2.0
- Unit tests covering input arg mutation on all functions that accept objects as input args.
- Essential improvements to
findUnused()
— when input is not normalised, that is some of the JSON’s have some fields missing and those fields happen to be placeholders on every single other JSON (or missing), nowfindUnused()
will report those fields as unused. Previously it was necessary for a key to be present on all arrays to be admitted into a result list, now it’s not.
Last-one means a lot in practice. For example, mapping files are usually under unidirectional merges — they always overwrite everything lower in the “food chain” of data hierarchy. As a result, often PROD mapping data files are often incomplete, because we don’t want or need to overwrite everything in DEV data. Which in turn means, that if you tried to run
findUnused()
on both your data JSON files (normalised) AND mapping JSON files (not normalised) before this version, you’d rarely get a result at all. Now it’s fixed! 👨🔧✨
2.1.0
findUnused()
- Removed unused dependency from
package.json
2.0.0
- Added
noNewKeys()
- 🔧 Tightened up the API, there were major changes within dependencies.
1.0.0
- First public release
- Unit test coverage is solid 100%