Skip to content

one format and tool for describing all things about components

License

Notifications You must be signed in to change notification settings

DrSensor/component-manifest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Component Manifest

compfest

Inspired from TextMate grammar for syntax highlighting And based on UML component diagram

About

Extract the manifest file from the sources by providing a specific grammar.

grammar: [svelte.rpl]
components:
  - svelte.htmltag.component.name
providers:
  - svelte.EventDispatcher
connectors:
  - require: svelte.directive.bind.property
    provide: svelte.directive.bind.variable
sockets:
  - svelte.export.let.Unassigned
  - svelte.export.let.Assigned

Motivation

  • How many component framework we have in the ecosystem? 3~4?
  • What if we include another programming language? ~7?
  • What if we not limit it only to front-end or mobile? 9~15?
  • What if we include not so popular framework too? >40?

Having many choices is good and utilizing all of them in the organization make several projects faster to deliver. However, what if we want to analyze that? Maybe we want to reuse or rewrite some component from other projects. Well, good luck with that 😅

Usage (still draft)

$ compfest gen 'src/**/*.svelte' --grammar svelte.rosie.yml --as yaml
version: '1'
connections:
  - provide: # no connection
      component: MyComponent
      property: error
      type: IError
  - provide: # because <MyComponent on:hear={hear}/>
      component: MyComponent
      property: hear
      type: string
    require: # used in <YourComponent bind:talk={hear}/>
      component: YourComponent
      property: talk
      type: string
  - socket: # no connection
      component: MyComponent
      property: accept
      type: IResponse

About

one format and tool for describing all things about components

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published