Decamelize converts camelized strings into lowercased strings, with a customizable word separator (for example, unicornRainbow becomes unicorn_rainbow). It can optionally preserve consecutive uppercase character sequences, which is useful when transforming identifiers or labels consistently.
Project status
- The repository appears actively maintained, with an upstream push on 2026-03-10 and a recent published update (v6.0.1 on 2025-08-19).
- Update cadence looks infrequent, with the last two versioned updates spanning several years (v5.0.1 and v6.0.0 in 2021, then v6.0.1 in 2025), suggesting a mature but periodically updated codebase rather than frequent releases.
AI summary generated Today
Recent updates
v6.0.1
9 months agov6.0.1 focuses on improving performance for extreme edge-cases in the decamelize logic. The main change is a regex update in the preserveConsecutiveUppercase handling, plus various tooling and documentation adjustments.
Breakingv6.0.0
10/1/2021v6.0.0 is a major release that converts the decamelize package to pure ESM and raises the minimum Node.js requirement. The code changes are mostly centered around module format and TypeScript declaration alignment, with the runtime logic remaining effectively the same.
Breakingv5.0.1
9/29/2021Release v5.0.1 makes a small change labeled as a performance improvement. The code change updates the core decamelization regular expression, and tests/README are adjusted slightly, but the release notes do not describe any behavioral differences.
Securityv5.0.0
1/11/2021v5.0.0 changes the public API of decamelize to accept an options object instead of a top-level separator argument. It also adds a new preserveConsecutiveUppercase option and adjusts the implementation, TypeScript types, docs, and tests accordingly.
BreakingFeaturesv4.0.0
1/26/2020v4.0.0 drops the `xregexp` dependency and raises the minimum supported Node.js version to 10. The core decamelize logic was rewritten to use native Unicode property regexes instead of `xregexp`, and tests were updated to cover acronym and trailing-number edge cases.
Breakingv3.2.0
4/5/2019v3.2.0 refactors the TypeScript typings to be CommonJS compatible. The codebase also adds a runtime `default` export alias for interop, and updates TS type tests and a couple dev dependencies.
v3.1.1
3/22/2019v3.1.1 is a small patch release that corrects the runtime type validation for the `separator` argument. The release notes only mention fixing the `separator` option type check.
v3.1.0
3/21/2019Release v3.1.0 makes a small change around argument validation for the decamelize function, with the goal of ensuring the `separator` argument is a string. The code diff also updates TypeScript typings/doc comments and switches the type-test tooling in the dev environment.
v3.0.0
3/6/2019v3.0.0 introduces TypeScript definition files for the package, improving developer experience for typed usage. The release also raises the minimum supported Node.js version, which may require environment updates before upgrading.
BreakingFeatures