Skip to content

feat: convert to ESM JavaScript, remove CoffeeScript#2

Merged
nmccready merged 3 commits intomasterfrom
feat/modernize
Mar 2, 2026
Merged

feat: convert to ESM JavaScript, remove CoffeeScript#2
nmccready merged 3 commits intomasterfrom
feat/modernize

Conversation

@nmccready-tars
Copy link

Summary

Complete conversion from CoffeeScript to modern ES module JavaScript.

Changes

  • Converted all source files (6) from CoffeeScript to ESM JS with import/export
  • Converted all tests (4 files, 58 tests) from CoffeeScript to modern async JS
  • Removed CoffeeScript entirelycoffee-script, coffeescript, zap, Cakefile all gone
  • Scoped package to @brickhouse-tech/xml2js
  • Added shared workflows — dependabot, commitlint, tests (Node 18/20/22), release, publish (OIDC)
  • Modern test stack — Mocha + c8 coverage (84.27%)
  • ESLint 9 flat config

Security

  • CVE-2023-0842 proto pollution fix preserved and tested
  • ✅ 0 npm audit vulnerabilities

API

No breaking changes — public API is identical:

  • xml2js.parseString(), xml2js.parseStringPromise()
  • new xml2js.Parser(), new xml2js.Builder()
  • All options and processors unchanged

Stats

  • 58 tests passing
  • 84.27% coverage (target: 75%)
  • 0 CVEs
  • 0 CoffeeScript remaining

- Convert all source files from CoffeeScript to modern ESM JavaScript
- Convert all test files to Mocha with ES modules
- Remove CoffeeScript, zap, cake dependencies
- Add modern test infrastructure (mocha, c8)
- Update package.json: type=module, ESM exports
- Create eslint.config.js for ESM support
- Preserve CVE-2023-0842 prototype pollution fix
- 58 tests passing, 84.27% coverage
- All functionality maintained, API unchanged
@nmccready nmccready merged commit c3c971f into master Mar 2, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants