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
- Actively maintained, with a very recent upstream push and an immediate tagged update (v7.0.0 on 2026-10-13), indicating ongoing responsiveness.
- Update cadence appears irregular but not abandoned, with the previous documented update before v7.0.0 being v6.0.1 on 2025-08-19 (about 14 months earlier), then another update two days after the upstream push.
AI summary generated
Recent updates
v7.0.0
v7.0.0 of decamelize primarily improves how it splits words by adding more Unicode-aware casing and boundary detection, especially around acronyms, titlecase letters, and Unicode digits. The release also includes multiple fixes for separator handling and decomposed (NFD) text behavior. It requires Node.js 22 or newer.
BreakingFeaturesv6.0.1
v6.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
v6.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
Release 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
v5.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
v4.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
v3.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
v3.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
Release 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
v3.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