Skip to content

Extracts types from TS schema and merges them with cem definitions

License

Notifications You must be signed in to change notification settings

Uscreen-video/cem-plugin-better-lit-types

Repository files navigation

cem-plugin-better-lit-types

Extracts Typescript types from Lit components


Installation

First of all you have to have Custom Elements Manifest Analyzer installed

Install module using your favorite package manager eq:

npm install -D cem-plugin-better-lit-types

Create or add to existing custom-elements-manifest.config.mjs following lines:

import BetterLitTypesPlugin from 'cem-plugin-better-lit-types';

export default {
  plugins: [BetterLitTypesPlugin]
}


Storybook Types Mapper


About

In this package we also provides an types extractor for storybook and @storybook/web-components that maps extracted types to storybook controls.

Usage

This method works only with the Storybook's web-components framework

Add default setup for web-components in you preview.js

import { setCustomElementsManifest } from '@storybook/web-components'
import customElements from '../custom-elements.json'
import { createArgsExtractor, createLitRenderer } from 'cem-plugin-better-lit-types/storybook'

Use extractor in your parameters.docs section

export const parameters = {
  docs: {
    extractArgTypes: createArgsExtractor(customElements)
  }
}

/**
 * Custom renderer made specially for LitComponents  
 */
export const render = createLitRenderer({
  wrapSlots: true, // Wraps a non-default slot in `<span slot="name">`
  joinArrays: true  // Converts array to a comma-separated string
})




Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

About

Extracts types from TS schema and merges them with cem definitions

Resources

License

Stars

Watchers

Forks

Packages

No packages published