Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
import prettierJSX from '@teleporthq/teleport-postprocessor-prettier-jsx'
import { createComponentGenerator } from '@teleporthq/teleport-component-generator'
import ReactNativeMapping from './react-native-mapping.json'
import { ComponentGenerator, Mapping, ReactNativeStyleVariation } from '@teleporthq/teleport-types'
// This extracts Text, View, Image as illegal element names
const rnMapping = ReactNativeMapping as Mapping
const illegalElementNames = Object.keys(rnMapping.elements).map(
(key) => rnMapping.elements[key].elementType
)
const styledComponentsPlugin = createReactStyledComponentsPlugin({
componentLibrary: 'reactnative',
illegalComponentNames: [...ReactNativeMapping.illegalClassNames, ...illegalElementNames],
})
const stylePlugins = {
[ReactNativeStyleVariation.InlineStyles]: inlineStylesPlugin,
[ReactNativeStyleVariation.StyledComponents]: styledComponentsPlugin,
}
const createReactNativeComponentGenerator = (
variation = ReactNativeStyleVariation.StyledComponents,
mapping: Mapping = {}
): ComponentGenerator => {
const generator = createComponentGenerator()
const stylePlugin = stylePlugins[variation] || inlineStylesPlugin