Skip to content

Conversation

@mandarini
Copy link
Collaborator

This PR ensures iceberg-js works in all JavaScript/TypeScript environments.

Changes

Package exports:

  • ESM support with .mjs files and proper exports field
  • CommonJS support with .cjs files
  • Separate type definitions for ESM (.d.ts) and CJS (.d.cts)
  • Fixed tsup config to generate correct file extensions

Compatibility testing:

  • Added comprehensive tests for 4 scenarios: pure JS ESM, pure JS CJS, TypeScript ESM, TypeScript CJS
  • Tests run on Node.js 20 & 22 in CI

CI improvements:

  • Reorganized workflows: main ci.yml orchestrates parallel execution of test.yml, integration-test.yml, and new compatibility.yml
  • All sub-workflows support manual triggering via workflow_dispatch

Documentation:

  • Added compatibility matrix to README
  • Added development docs for running compatibility tests

The package now works seamlessly with both import and require(), in all bundlers, and with full TypeScript support in any module configuration.

@mandarini mandarini requested review from a team as code owners November 21, 2025 13:14
@mandarini mandarini added the trigger: preview Trigger a PR release. label Nov 21, 2025
@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 21, 2025

Open in StackBlitz

npm i https://pkg.pr.new/supabase/iceberg-js@15

commit: 0f49950

@mandarini mandarini force-pushed the feat/compatibility branch 2 times, most recently from 1b19a52 to 7114988 Compare November 21, 2025 13:21
@mandarini mandarini self-assigned this Nov 21, 2025
@mandarini mandarini merged commit 5f649f8 into main Nov 21, 2025
7 checks passed
@mandarini mandarini deleted the feat/compatibility branch November 21, 2025 13:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

trigger: preview Trigger a PR release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants