mirror of
https://github.com/shoelace-style/webawesome.git
synced 2026-01-12 04:09:12 +00:00
Create non-auto-registering routes (#1450)
* initial attempt at not auto defining * add files with - * continued work on removing auto-define * fix component definitions * update with new tag stuff * fix lots of things * fix improper scoped elements * working through side effects * continued react wrapper work * update changelog * formatting * fixes * update changelog * lint / formatting * fix version injection * fix version injection, work on test * fix version injection, work on test * fix merge conflicts * fix jsdoc null issue * fix templates * use exports * working on tests * working on registration mocking * fix customElements test * linting * fix some test stuff * clean up test * clean up comment * rename scopedElements to dependencies * linting / formatting * linting / formatting * mark all packages external and still bundle * set bundle false * set bundle true * dont minify * fix merge conflicts * use built shoelace-element * fix lint errors * prettier * appease eslint * appease eslint gods * appease eslint gods * appease eslint gods * appease eslint gods * add shoelace-autoloader * move it all into 1 function * add exportmaps note * prettier * add jsdelivr entrypoint * read as utf8 * update docs with .component.js importS * prettier
This commit is contained in:
@@ -36,6 +36,8 @@ components.map(component => {
|
||||
|
||||
fs.mkdirSync(componentDir, { recursive: true });
|
||||
|
||||
const jsDoc = component.jsDoc || '';
|
||||
|
||||
const source = prettier.format(
|
||||
`
|
||||
import * as React from 'react';
|
||||
@@ -45,14 +47,32 @@ components.map(component => {
|
||||
${eventNameImport}
|
||||
${eventImports}
|
||||
|
||||
export default createComponent({
|
||||
tagName: '${component.tagName}',
|
||||
const tagName = '${component.tagName}'
|
||||
|
||||
const component = createComponent({
|
||||
tagName,
|
||||
elementClass: Component,
|
||||
react: React,
|
||||
events: {
|
||||
${events}
|
||||
},
|
||||
displayName: "${component.name}"
|
||||
})
|
||||
|
||||
${jsDoc}
|
||||
class SlComponent extends React.Component<Parameters<typeof component>[0]> {
|
||||
constructor (...args: Parameters<typeof component>) {
|
||||
super(...args)
|
||||
Component.define(tagName)
|
||||
}
|
||||
});
|
||||
|
||||
render () {
|
||||
const { children, ...props } = this.props
|
||||
return React.createElement(component, props, children)
|
||||
}
|
||||
}
|
||||
|
||||
export default SlComponent;
|
||||
`,
|
||||
Object.assign(prettierConfig, {
|
||||
parser: 'babel-ts'
|
||||
|
||||
Reference in New Issue
Block a user