Extracts Typescript types from Lit components
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]
}
In this package we also provides an types extractor for storybook and @storybook/web-components
that maps extracted types to storybook controls.
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
})
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.