Skip to content

feat: restructure type system and improve WGS84 compliance #188

Draft
nathanorm wants to merge 10 commits into
robertleeplummerjr:masterfrom
Highway-Data-Systems:master
Draft

feat: restructure type system and improve WGS84 compliance #188
nathanorm wants to merge 10 commits into
robertleeplummerjr:masterfrom
Highway-Data-Systems:master

Conversation

@nathanorm

Copy link
Copy Markdown
Contributor
  • Split types into types-base.ts (base interfaces) and types-glify.ts (class references)
  • Replace forward declarations with real class types for 100% type consistency
  • Update all imports to use new type organization structure
  • Maintain full type inference and inheritance while avoiding circular imports
  • Fix default coordinate order to follow WGS84 standard: [longitude, latitude]
  • Add comprehensive JSDoc comments with NGA and GeoJSON.org references
  • Update coordinate order tests to ensure WGS84 compliance
  • Update README.md with comprehensive TypeScript documentation
  • Ensure all tests pass and build system compatibility

Related Issues:

nathanorm and others added 8 commits August 12, 2025 13:00
This commit exposes various interfaces and types, allowing consumers of the library
to leverage them for better type checking and development experience.

- Added  statements in  for key interfaces and types
  from , , , , , and .
- Updated  to enhance the
  mock, resolving  issues related to missing  and
  properties in the test environment.
- Enabled TypeScript declaration generation in  by uncommenting
  , , and  options.
- Updated  and other dependencies in  and
  to ensure compatibility and consistency.
- Split types into types-base.ts (base interfaces) and types-glify.ts (class references)
- Replace forward declarations with real class types for 100% type consistency
- Update all imports to use new type organization structure
- Maintain full type inference and inheritance while avoiding circular imports
- Fix default coordinate order to follow WGS84 standard: [longitude, latitude]
- Add comprehensive JSDoc comments with NGA and GeoJSON.org references
- Update coordinate order tests to ensure WGS84 compliance
- Update README.md with comprehensive TypeScript documentation
- Ensure all tests pass and build system compatibility
- Split types into types-base.ts (base interfaces) and types-glify.ts (class references)
- Replace forward declarations with real class types for 100% type consistency
- Update all imports to use new type organization structure
- Maintain full type inference and inheritance while avoiding circular imports
- Fix default coordinate order to follow WGS84 standard: [longitude, latitude]
- Add comprehensive JSDoc comments with NGA and GeoJSON.org references
- Update coordinate order tests to ensure WGS84 compliance
- Update README.md with comprehensive TypeScript documentation
- Ensure all tests pass and build system compatibility
@nathanorm

Copy link
Copy Markdown
Contributor Author

I've encountered an issue testing this locally (error below).
Just adding test cases to catch this then seeing if there is anything similar and continuing my tests of the implementation.

Uncaught Error: "settings.longitudeKey" not properly defined
    get longitudeKey base-gl-layer.ts:78
    resetVertices shapes.ts:165
    render shapes.ts:58
    C shapes.ts:55
    CustomShape webgl.ts:167
    PassLayer PassLayer.tsx:194
    commitHookEffectListMount chunk-7P7VKIUM.js:23852
    commitPassiveMountOnFiber chunk-7P7VKIUM.js:25095
    commitPassiveMountEffects_complete chunk-7P7VKIUM.js:25068
    commitPassiveMountEffects_begin chunk-7P7VKIUM.js:25058
    commitPassiveMountEffects chunk-7P7VKIUM.js:25048
    flushPassiveEffectsImpl chunk-7P7VKIUM.js:26432
    flushPassiveEffects chunk-7P7VKIUM.js:26389
    performSyncWorkOnRoot chunk-7P7VKIUM.js:25810
    flushSyncCallbacks chunk-7P7VKIUM.js:16055
    commitRootImpl chunk-7P7VKIUM.js:26374
    commitRoot chunk-7P7VKIUM.js:26219
    finishConcurrentRender chunk-7P7VKIUM.js:25747
    performConcurrentWorkOnRoot chunk-7P7VKIUM.js:25657
    workLoop chunk-7P7VKIUM.js:467
    flushWork chunk-7P7VKIUM.js:446
    performWorkUntilDeadline chunk-7P7VKIUM.js:654
    js chunk-7P7VKIUM.js:675
    js chunk-7P7VKIUM.js:723
    __require chunk-NPUGFIW3.js:24
    js chunk-7P7VKIUM.js:738
    __require chunk-NPUGFIW3.js:24
    js chunk-7P7VKIUM.js:7370
    js chunk-7P7VKIUM.js:28518
    __require chunk-NPUGFIW3.js:24
    js chunk-7P7VKIUM.js:28546
    __require chunk-NPUGFIW3.js:24
    js react-dom_client.js:26
    __require chunk-NPUGFIW3.js:24
    <anonymous> react-dom_client.js:52
base-gl-layer.ts:78:19
    get longitudeKey base-gl-layer.ts:78
    resetVertices shapes.ts:165
    render shapes.ts:58
    C shapes.ts:55
    CustomShape webgl.ts:167
    PassLayer PassLayer.tsx:194
    commitHookEffectListMount chunk-7P7VKIUM.js:23852
    commitPassiveMountOnFiber chunk-7P7VKIUM.js:25095
    commitPassiveMountEffects_complete chunk-7P7VKIUM.js:25068
    commitPassiveMountEffects_begin chunk-7P7VKIUM.js:25058
    commitPassiveMountEffects chunk-7P7VKIUM.js:25048
    flushPassiveEffectsImpl chunk-7P7VKIUM.js:26432
    flushPassiveEffects chunk-7P7VKIUM.js:26389
    performSyncWorkOnRoot chunk-7P7VKIUM.js:25810
    flushSyncCallbacks chunk-7P7VKIUM.js:16055
    commitRootImpl chunk-7P7VKIUM.js:26374
    commitRoot chunk-7P7VKIUM.js:26219
    finishConcurrentRender chunk-7P7VKIUM.js:25747
    performConcurrentWorkOnRoot chunk-7P7VKIUM.js:25657
    workLoop chunk-7P7VKIUM.js:467
    flushWork chunk-7P7VKIUM.js:446
    performWorkUntilDeadline chunk-7P7VKIUM.js:654
    (Async: EventHandlerNonNull)
    js chunk-7P7VKIUM.js:675
    js chunk-7P7VKIUM.js:723
    __require chunk-NPUGFIW3.js:24
    js chunk-7P7VKIUM.js:738
    __require chunk-NPUGFIW3.js:24
    js chunk-7P7VKIUM.js:7370
    js chunk-7P7VKIUM.js:28518
    __require chunk-NPUGFIW3.js:24
    js chunk-7P7VKIUM.js:28546
    __require chunk-NPUGFIW3.js:24
    js react-dom_client.js:26
    __require chunk-NPUGFIW3.js:24
    <anonymous> react-dom_client.js:52 

@nathanorm nathanorm marked this pull request as draft August 14, 2025 14:11
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.

1 participant