Skip to content

Commit 3d9011d

Browse files
committed
chore: code generator for new elements
1 parent 3a43a04 commit 3d9011d

File tree

7 files changed

+343
-1
lines changed

7 files changed

+343
-1
lines changed

.hygen.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
const { classify } = require('inflection');
2+
3+
module.exports = {
4+
helpers: {
5+
className: s => classify(s.replace(/[- ]/g, '_'))
6+
}
7+
};
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
message: |
3+
hygen {bold element new} --name [NAME]
4+
---
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
to: src/<%= name %>-element.stories.ts
3+
---
4+
import { withKnobs, number } from '@storybook/addon-knobs';
5+
import { storiesOf } from '@storybook/web-components';
6+
import { html } from 'lit-html';
7+
import './<%= name %>-element';
8+
9+
storiesOf('<%= h.changeCase.title(h.className(name)) %>', module)
10+
.addDecorator(withKnobs)
11+
.add(
12+
'Default',
13+
() => html`
14+
<wokwi-<%= name %>
15+
value=${number('value', 5, { min: 1, max: 10 })}
16+
></wokwi-<%= name %>>
17+
`
18+
);
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
to: src/<%= name %>-element.ts
3+
---
4+
import { customElement, html, LitElement, property, svg } from 'lit-element';
5+
6+
@customElement('wokwi-<%= name %>')
7+
export class <%= h.className(name) %>Element extends LitElement {
8+
@property() value = 0;
9+
10+
render() {
11+
const { value } = this;
12+
return html`
13+
<svg
14+
width="40mm"
15+
height="25mm"
16+
version="1.1"
17+
viewBox="0 0 40 25"
18+
xmlns="http://www.w3.org/2000/svg"
19+
>
20+
<circle cx="20" cy="12.5" r="${value}" fill="red" stroke="blue" />
21+
</svg>
22+
`;
23+
}
24+
}

_templates/element/new/index.ts.t

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
to: src/index.ts
3+
inject: true
4+
skip_if: <%= h.className(name) %>Element
5+
append: true
6+
---
7+
export { <%= h.className(name) %>Element } from './<%= name %>-element';

0 commit comments

Comments
 (0)