{"id":13520535,"url":"https://github.com/devgioele/winged","last_synced_at":"2025-03-31T16:31:35.476Z","repository":{"id":37070543,"uuid":"497930750","full_name":"devgioele/winged","owner":"devgioele","description":"A blazingly fast GeoJSONL processor to group geographical features","archived":false,"fork":false,"pushed_at":"2023-12-30T00:34:34.000Z","size":3503,"stargazers_count":0,"open_issues_count":9,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-08-09T03:09:55.247Z","etag":null,"topics":["geojson","geojsonl","gis","nodejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devgioele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-05-30T12:20:34.000Z","updated_at":"2023-07-18T09:13:08.000Z","dependencies_parsed_at":"2023-09-22T14:17:49.461Z","dependency_job_id":"ddf8a767-e589-46ae-be6f-f1b21cc625d7","html_url":"https://github.com/devgioele/winged","commit_stats":{"total_commits":141,"total_committers":3,"mean_commits":47.0,"dds":"0.26241134751773054","last_synced_commit":"1d276a7c88446b3f029f7675c8dad078643c2c47"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgioele%2Fwinged","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgioele%2Fwinged/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgioele%2Fwinged/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devgioele%2Fwinged/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devgioele","download_url":"https://codeload.github.com/devgioele/winged/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222670691,"owners_count":17020513,"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","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":["geojson","geojsonl","gis","nodejs"],"created_at":"2024-08-01T05:02:23.414Z","updated_at":"2024-11-02T03:31:42.848Z","avatar_url":"https://github.com/devgioele.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# winged\n\nA blazingly fast GeoJSONL processor to group geographical features\n\n## Install\n\nUsing pnpm:\n\n```sh\npnpm add @devgioele/winged\n```\n\nUsing npm:\n\n```sh\nnpm install @devgioele/winged\n```\n\n## Getting started\n\n### One to many\n\nTo group the features of one GeoJSONL file according to the property `nation`:\n\n```ts\nimport { groupFeatures } from '@devgioele/winged'\n\nconst files = [\n    {\n        name: 'source',\n        path: './some-path-to-the-file.geojsonl'\n    }\n]\n\nconst [generatedFiles, malformedFiles] = await groupFeatures(\n    files,\n    './result',\n    ['nation']\n  )\n```\n\n### Many to many\n\nTo group the features of two GeoJSONL files according to the property `nation` and convert them to GeoJSON at the same time:\n\n```ts\nimport { groupFeatures } from '@devgioele/winged'\n\nconst files = [\n    {\n        name: 'some-prefix',\n        path: './some-path-to-source1.geojsonl'\n    },\n    {\n        name: 'some-prefix',\n        path: './some-path-to-source2.geojsonl'\n    }\n]\n\nconst [generatedFiles, malformedFiles] = await groupFeatures(\n    files,\n    './result',\n    ['nation']\n  )\n```\n\nThe many-to-many processing is achieved by giving to both input files the same name.\n\n### To GeoJSON\n\nConvert the output files to GeoJSON at the same time by enabling the `toGeoJson` flag:\n\n```ts\nimport { groupFeatures } from '@devgioele/winged'\n\nconst files = [\n    {\n        name: 'source',\n        path: './some-path-to-the-file.geojsonl'\n    }\n]\n\nconst [generatedFiles, malformedFiles] = await groupFeatures(\n    files,\n    './result',\n    ['nation'],\n    { toGeoJson: true }\n  )\n\n```\n\n## Contributing\n\n### Install Node.js\n\nInstall [version 16.10 or higher of Node.js](https://nodejs.org/en/download/). Use `node -v` to check your current version.\n\n### Enable corepack\n\n```sh\ncorepack enable\n```\n\n### Install dependencies\n\n```sh\npnpm install\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgioele%2Fwinged","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevgioele%2Fwinged","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevgioele%2Fwinged/lists"}