{"id":21188501,"url":"https://github.com/drsensor/component-manifest","last_synced_at":"2026-01-02T12:23:18.947Z","repository":{"id":71508926,"uuid":"215674649","full_name":"DrSensor/component-manifest","owner":"DrSensor","description":"one format and tool for describing all things about components","archived":false,"fork":false,"pushed_at":"2019-10-17T07:21:17.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-10T19:57:14.682Z","etag":null,"topics":["ideas"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DrSensor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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-10-17T01:11:51.000Z","updated_at":"2019-12-18T01:10:02.000Z","dependencies_parsed_at":"2023-03-10T08:46:02.461Z","dependency_job_id":null,"html_url":"https://github.com/DrSensor/component-manifest","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSensor%2Fcomponent-manifest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSensor%2Fcomponent-manifest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSensor%2Fcomponent-manifest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrSensor%2Fcomponent-manifest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DrSensor","download_url":"https://codeload.github.com/DrSensor/component-manifest/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243641004,"owners_count":20323764,"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":["ideas"],"created_at":"2024-11-20T18:45:21.148Z","updated_at":"2026-01-02T12:23:18.907Z","avatar_url":"https://github.com/DrSensor.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Component Manifest\n\u003csup\u003e**`compfest`**\u003c/sup\u003e\n\n\u003e Inspired from [TextMate grammar](https://macromates.com/manual/en/language_grammars) for syntax highlighting\n\u003e And based on [UML component diagram](https://www.uml-diagrams.org/component-diagrams.html)\n\n## About\nExtract the manifest file from the sources by providing a specific grammar.\n```yml\ngrammar: [svelte.rpl]\ncomponents:\n  - svelte.htmltag.component.name\nproviders:\n  - svelte.EventDispatcher\nconnectors:\n  - require: svelte.directive.bind.property\n    provide: svelte.directive.bind.variable\nsockets:\n  - svelte.export.let.Unassigned\n  - svelte.export.let.Assigned\n```\n\n## Motivation\n\u003e- How many component framework we have in the ecosystem? 3~4?\n\u003e- What if we include another programming language? ~7?\n\u003e- What if we _not_ limit it only to front-end or mobile? 9~15?\n\u003e- What if we include not so popular framework too? \u003e40?\n\nHaving many choices is good and utilizing all of them in the organization make several projects faster to deliver.\nHowever, what if we want to analyze that? Maybe we want to reuse or rewrite some component from other projects.\nWell, good luck with that 😅\n\n## Usage (still draft)\n```console\n$ compfest gen 'src/**/*.svelte' --grammar svelte.rosie.yml --as yaml\nversion: '1'\nconnections:\n  - provide: # no connection\n      component: MyComponent\n      property: error\n      type: IError\n  - provide: # because \u003cMyComponent on:hear={hear}/\u003e\n      component: MyComponent\n      property: hear\n      type: string\n    require: # used in \u003cYourComponent bind:talk={hear}/\u003e\n      component: YourComponent\n      property: talk\n      type: string\n  - socket: # no connection\n      component: MyComponent\n      property: accept\n      type: IResponse\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrsensor%2Fcomponent-manifest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrsensor%2Fcomponent-manifest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrsensor%2Fcomponent-manifest/lists"}