Skip to content

Commit

Permalink
feat: support comments in templates (#661)
Browse files Browse the repository at this point in the history
  • Loading branch information
tu4mo committed Jan 9, 2022
1 parent 7582d31 commit 9afb590
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 1 deletion.
Expand Up @@ -65,6 +65,15 @@ const MyComponent = (props: React.SVGProps<SVGSVGElement>) => <svg><g /></svg>;
export default MyComponent;"
`;
exports[`plugin javascript custom templates supports comments in templates 1`] = `
"/**
* Comment
*/
const MyComponent = () => <svg><g /></svg>;
export default MyComponent;"
`;
exports[`plugin javascript custom templates supports template that does not return an array 1`] = `"<svg><g /></svg>;"`;
exports[`plugin javascript custom templates supports type annotation on component 1`] = `
Expand Down Expand Up @@ -284,6 +293,15 @@ const MyComponent = (props: React.SVGProps<SVGSVGElement>) => <svg><g /></svg>;
export default MyComponent;"
`;
exports[`plugin typescript custom templates supports comments in templates 1`] = `
"/**
* Comment
*/
const MyComponent = () => <svg><g /></svg>;
export default MyComponent;"
`;
exports[`plugin typescript custom templates supports template that does not return an array 1`] = `"<svg><g /></svg>;"`;
exports[`plugin typescript custom templates supports type annotation on component 1`] = `
Expand Down
15 changes: 15 additions & 0 deletions packages/babel-plugin-transform-svg-component/src/index.test.ts
Expand Up @@ -248,6 +248,21 @@ describe('plugin', () => {
})
expect(code).toMatchSnapshot()
})

it('supports comments in templates', () => {
const { code } = testPlugin(language)('<svg><g /></svg>', {
template: ({ jsx }, { tpl }) => tpl`
/**
* Comment
*/
const MyComponent = () => ${jsx}
export default MyComponent;
`,
state: { componentName: 'SvgComponent' },
})
expect(code).toMatchSnapshot()
})
})

describe('#jsxRuntime', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/babel-plugin-transform-svg-component/src/index.ts
Expand Up @@ -17,7 +17,7 @@ const plugin = (_: ConfigAPI, opts: Options) => {
const plugins: ParserOptions['plugins'] = opts.typescript
? ['jsx', 'typescript']
: ['jsx']
const tpl = babelTemplate.smart({ plugins }).ast
const tpl = babelTemplate.smart({ plugins, preserveComments: true }).ast
return {
visitor: {
Program(path: NodePath<t.Program>) {
Expand Down

1 comment on commit 9afb590

@vercel
Copy link

@vercel vercel bot commented on 9afb590 Jan 9, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.