Skip to content

Conversation

@thomas-hervey
Copy link

This change is intended to typescript-ify the turf-great-circles module following the typescript-ifying discussion #2538.

Summary of changes:

  • Converted /index.js into /index.ts
  • Added additional tests to /test.ts to cover different start and end input types
  • Added /lib/arc.d.ts including class GreatCircle

Template requirements:

  • Is this a bug fix, new functionality, or a breaking change?
    • This is an update of the turf-great-circles module to use typescript.
  • Have read and followed the steps for preparing a pull request.

@thomas-hervey thomas-hervey changed the title Typescript-ifying turf-great-circles Typescript-ifying turf-great-circle Oct 16, 2024
@thomas-hervey
Copy link
Author

This is my first (draft) PR to TurfJS in preparation for other enhancement requests to turf-great-circle.
@smallsaucepan given that you've begun typescript-ifying other modules, this PR should help contribute to this discussion #2538.

@smallsaucepan
Copy link
Member

Fantastic. Thanks @thomas-hervey. Will take a look at this shortly.

@smallsaucepan
Copy link
Member

@thomas-hervey it would be great if we could take the opportunity to do away with the whole lib/arc.* section and import as a third party module. There is https://www.npmjs.com/package/arc (which it looks like we've copy pasted into Turf at some point) but that doesn't have types.

Are you possibly in a position to submit types to DefinitelyTyped for the arc JS lib, so we can import it nicely into Turf as part of your PR? If not - and don't feel obliged - I'll give it a whirl and let you know when it's ready to integrate.

@thomas-hervey
Copy link
Author

@smallsaucepan apologies for my delayed response. Yes I'll happily try to submit types to DefinitelyTyped for the arc JS lib and let you know if I run into any issues.

@smallsaucepan
Copy link
Member

Hi @thomas-hervey. How did you go getting arc.js types added to DT?

@thomas-hervey
Copy link
Author

Hi @smallsaucepan, I apologize again for the delay. I ran into some issues with DT and got sidetracked by my dissertation work. I should have reached out to you. I'd still like to submit a PR and should be ble to once I finish school in mid-June. However, feel free to give it a go first if you'd like.

@smallsaucepan
Copy link
Member

No stress at all @thomas-hervey . Let us know when you're under way 👍

@thomas-hervey
Copy link
Author

@smallsaucepan fortunately, I completed my dissertation work, and I can soon refocus my attention on this. I'll keep you posted.

- Resolved conflicts in packages/turf-great-circle/package.json
- Resolved conflicts in packages/turf-great-circle/test.ts
- Updated dependencies to latest versions from master
- Fixed monorepolint dependency version requirements
- Add arc@^0.2.0 (WIP bump) as dependency to replace embedded lib/arc.js
- Update import from './lib/arc.js' to 'arc' package
- Fix TypeScript type compatibility issues:
  - Handle null properties with fallback to empty object
  - Add proper type assertion for return value
- All tests pass (9/9) with new TypeScript arc.js integration
- Maintains 100% backward compatibility while adding full TypeScript support
@thomas-hervey
Copy link
Author

@smallsaucepan, apologies for the delay. I'm happy to say that I've returned my attention here, and fortunately, the changes were not a heavy a lift.

Instead of submitting to DefinitivelyTyped, I opted to convert arc.js to TypeScript (see this PR awaiting review). However, I tested the integration locally and all tests and builds were passing.

The latest commits to this PR updated the branch with master and preemptively replaced the reference of lib/arc.js to a 0.2.0 arc package. I am now awaiting review of that PR, along with a version bump, before we can test this PR again.

Thanks!

@thomas-hervey thomas-hervey marked this pull request as ready for review September 23, 2025 19:40
@thomas-hervey
Copy link
Author

@smallsaucepan following up on my previous comment, this PR is now ready for re-review. @springmeyer has released arc v0.2.0, which this PR is set up to use. Please take your time to review my changes.

Automated testing: All current /packages turf-great-circles tests passed. At the root all tests passed except for two suites, which appear to be failing on master:

2/230 targets failed, including the following:
      - @turf/standard-deviational-ellipse:test
      - @turf/directional-mean:test

Manual testing: I created a simple application with Leaflet where I visually inspected the results of several examples including: SF --> NY, short distances, an antimeridian crossing, a polar route, an equatorial route, start & end same location. For each of those examples I modified the start and end location as well as the parameters (ex. number of points). I tested this simple application locally using my Turfjs PR.

Thanks!

@thomas-hervey
Copy link
Author

@smallsaucepan pinging you in case you missed a notification about my previous comment. This PR is ready for your re-review, but no time pressure on my end. Thanks for all of your feedback thus far!

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