From 5cb238e62b2f53e8a72b3ff0e4b866a66b2d438b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Greg=20Berg=C3=A9?= Date: Sun, 30 Sep 2018 15:28:16 +0200 Subject: [PATCH] feat(template): expose `getProps` util for template Also improve template documentation. Closes #187 --- README.md | 18 +++++++++++++++++- packages/core/src/index.js | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index deab6eb6..90327666 100644 --- a/README.md +++ b/README.md @@ -180,7 +180,23 @@ You can use a specific template. $ npx @svgr/cli --template path/to/template.js my-icon.svg ``` -You can find template examples in [templates folder](https://github.com/smooth-code/svgr/blob/master/packages/core/src/templates). +An example of template: + +```js +const { getProps } = require('@svgr/core') + +const reactDomTemplate = (code, config, state) => { + const props = getProps(config) + let result = `import React from 'react'\n\n` + result += `const ${state.componentName} = ${props} => ${code}\n\n` + result += `export default ${state.componentName}` + return result +} + +module.exports = reactDomTemplate +``` + +You can find all default templates in [templates folder](https://github.com/smooth-code/svgr/blob/master/packages/core/src/templates). ## Node API usage diff --git a/packages/core/src/index.js b/packages/core/src/index.js index 108beb98..a87289ed 100644 --- a/packages/core/src/index.js +++ b/packages/core/src/index.js @@ -19,3 +19,4 @@ export { default as toReactNative } from './h2x/toReactNative' // Templates export { default as reactDomTemplate } from './templates/reactDomTemplate' export { default as reactNativeTemplate } from './templates/reactNativeTemplate' +export * from './templates/util'