Skip to content

JavaScript: provide type definitions for TypeScript#578

Merged
agarny merged 4 commits into
opencor:mainfrom
agarny:issue577
Jul 16, 2026
Merged

JavaScript: provide type definitions for TypeScript#578
agarny merged 4 commits into
opencor:mainfrom
agarny:issue577

Conversation

@agarny

@agarny agarny commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Fixes #577.

Copilot AI review requested due to automatic review settings July 16, 2026 05:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds TypeScript type definition generation and packaging for the Emscripten JavaScript bindings, including post-processing to align the generated .d.ts with runtime EM_ASM patches and publishing a separate @opencor/libopencor-types package.

Changes:

  • Enable Emscripten --emit-tsd and post-process the emitted .d.ts during the build.
  • Update Embind bindings (smart pointers + safer EM_ASM patches) to improve generated typings consistency.
  • Adjust npm packaging/publishing to ship libopencor.d.ts and publish a standalone types package.

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
VERSION.txt Version bump for the release containing TypeScript typings.
src/CMakeLists.txt Adds --emit-tsd, post-processing, packaging/copying of .d.ts, and types package packaging logic.
src/bindings/javascript/solver.cpp Adds smart pointer binding + guards EM_ASM patches to reduce runtime/type-gen edge cases.
src/bindings/javascript/sed.cpp Adds smart pointer bindings for additional SED-ML types to improve typings.
src/bindings/javascript/postprocess.dts.js New script to patch/normalize the generated .d.ts.
src/bindings/javascript/package.types.in.json New package template for publishing a standalone types-only package.
src/bindings/javascript/package.in.json Updates npm package metadata/exports to include TypeScript types.
src/bindings/javascript/main.cpp Makes vector prototype patching resilient when specific vector classes are absent.
src/bindings/javascript/logger.cpp Guards EM_ASM patching for Issue to avoid accessing missing symbols.
src/bindings/javascript/file.cpp Guards EM_ASM patching for File to avoid accessing missing symbols.
src/bindings/javascript/CMakeLists.txt Generates package.types.json alongside the main JS package metadata.
cmake/environmentchecks.cmake Updates advanced Nanobind-related cache variables list.
cmake/common.cmake Updates advanced variables list for CURL/libssh2-related cache variables.
.github/workflows/cd.yml Publishes the main npm package and the new types package.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/bindings/javascript/package.in.json
Comment thread src/CMakeLists.txt Outdated
Comment thread src/CMakeLists.txt
Comment thread src/bindings/javascript/postprocess.dts.mjs
@agarny agarny changed the title JavaScript: provide types for TypeScript JavaScript: provide type definitions for TypeScript Jul 16, 2026
@agarny agarny merged commit be6adda into opencor:main Jul 16, 2026
24 checks passed
@agarny agarny deleted the issue577 branch July 16, 2026 06:05
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.

JavaScript: provide type definitions for TypeScript

2 participants