{"id":16762352,"url":"https://github.com/richorama/event-driven-map","last_synced_at":"2025-10-25T22:44:22.379Z","repository":{"id":39283700,"uuid":"228979784","full_name":"richorama/event-driven-map","owner":"richorama","description":":zap: :earth_africa: An example application showing an event driven map component","archived":false,"fork":false,"pushed_at":"2023-03-03T00:40:49.000Z","size":6521,"stargazers_count":3,"open_issues_count":13,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-10T18:30:40.328Z","etag":null,"topics":["events","openlayers","pubsub","react","typescript"],"latest_commit_sha":null,"homepage":"https://richorama.github.io/event-driven-map/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/richorama.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-19T05:12:25.000Z","updated_at":"2023-04-15T06:37:44.000Z","dependencies_parsed_at":"2025-02-17T18:47:40.823Z","dependency_job_id":null,"html_url":"https://github.com/richorama/event-driven-map","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/richorama/event-driven-map","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richorama%2Fevent-driven-map","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richorama%2Fevent-driven-map/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richorama%2Fevent-driven-map/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richorama%2Fevent-driven-map/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/richorama","download_url":"https://codeload.github.com/richorama/event-driven-map/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/richorama%2Fevent-driven-map/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281032287,"owners_count":26432754,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["events","openlayers","pubsub","react","typescript"],"created_at":"2024-10-13T04:44:35.172Z","updated_at":"2025-10-25T22:44:22.314Z","avatar_url":"https://github.com/richorama.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Event Driven Map\n\nAn example application to demonstrate an idea for adding a map component to a react application.\n\n## Motivation\n\nReact applications and map component have different, and largely incompatible abstractions.\n\nReact component are based on maintaining a state, and binding that state the user interface.\n\nWeb mapping components have an 'API surface', with methods such as `addFeature()`, `removeFeature()` and `setCenter()`.\nWeb map component are not generally bound to a state object, although wrappers [do exist](https://github.com/google-map-react/google-map-react) anything\nmore that a simple use case impossible.\n\nWeb map components tend to be added to React components (or other front end library of your choice), and changes in state are\nconverted to operations on the map. Likewise, events raised by the map are translated back to changes in state.\n\nThe result is a complicated implementation, attempting to bridge these programming models.\n\nThis repository represents an alternative, whereby a pub/sub eventing model is used, as a lower common denominator between the two abstractions.\n\nAll actions raise events. Component subscribe to the necessary events, rather than handle these internally. This allows components that know\nnothing about each other to respond to the same user input.\n\nThe event subscription model maps well to mutations of state in a react component, and to the method calls on the map component API.\n\n## Running Locally\n\n```\nnpm install\nnpm start\n```\n\n## Deploy to GitHub Page\n\n```\nnpm run deploy\n```\n\n## License\n\nMIT","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichorama%2Fevent-driven-map","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frichorama%2Fevent-driven-map","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frichorama%2Fevent-driven-map/lists"}