How to use the @teleporthq/teleport-plugin-common.ASTUtils.addChildJSXTag function in @teleporthq/teleport-plugin-common

To help you get started, we’ve selected a few @teleporthq/teleport-plugin-common examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github teleporthq / teleport-code-generators / packages / teleport-project-generator-next / src / utils.ts View on Github external
export const createDocumentFileChunks = (uidl: ProjectUIDL, options: EntryFileOptions) => {
  const { settings, meta, assets, manifest } = uidl.globals

  const htmlNode = ASTBuilders.createJSXTag('html')
  const headNode = ASTBuilders.createJSXTag('Head')
  const bodyNode = ASTBuilders.createJSXTag('body')

  const mainNode = ASTBuilders.createJSXTag('Main')
  const nextScriptNode = ASTBuilders.createJSXTag('NextScript')
  ASTUtils.addChildJSXTag(bodyNode, mainNode)
  ASTUtils.addChildJSXTag(bodyNode, nextScriptNode)

  ASTUtils.addChildJSXTag(htmlNode, headNode)
  ASTUtils.addChildJSXTag(htmlNode, bodyNode)

  if (settings.language) {
    ASTUtils.addAttributeToJSXTag(htmlNode, 'lang', settings.language)
  }

  // NOTE: Title is added in per page, not in the layout file

  if (manifest) {
    const linkTag = ASTBuilders.createJSXTag('link')
    ASTUtils.addAttributeToJSXTag(linkTag, 'rel', 'manifest')
    ASTUtils.addAttributeToJSXTag(linkTag, 'href', `${options.assetsPrefix}/manifest.json`)
    ASTUtils.addChildJSXTag(headNode, linkTag)
  }

  meta.forEach((metaItem) => {
    const metaTag = ASTBuilders.createJSXTag('meta')
github teleporthq / teleport-code-generators / packages / teleport-project-generator-next / src / utils.ts View on Github external
export const createDocumentFileChunks = (uidl: ProjectUIDL, options: EntryFileOptions) => {
  const { settings, meta, assets, manifest } = uidl.globals

  const htmlNode = ASTBuilders.createJSXTag('html')
  const headNode = ASTBuilders.createJSXTag('Head')
  const bodyNode = ASTBuilders.createJSXTag('body')

  const mainNode = ASTBuilders.createJSXTag('Main')
  const nextScriptNode = ASTBuilders.createJSXTag('NextScript')
  ASTUtils.addChildJSXTag(bodyNode, mainNode)
  ASTUtils.addChildJSXTag(bodyNode, nextScriptNode)

  ASTUtils.addChildJSXTag(htmlNode, headNode)
  ASTUtils.addChildJSXTag(htmlNode, bodyNode)

  if (settings.language) {
    ASTUtils.addAttributeToJSXTag(htmlNode, 'lang', settings.language)
  }

  // NOTE: Title is added in per page, not in the layout file

  if (manifest) {
    const linkTag = ASTBuilders.createJSXTag('link')
    ASTUtils.addAttributeToJSXTag(linkTag, 'rel', 'manifest')
    ASTUtils.addAttributeToJSXTag(linkTag, 'href', `${options.assetsPrefix}/manifest.json`)
    ASTUtils.addChildJSXTag(headNode, linkTag)
  }
github teleporthq / teleport-code-generators / packages / teleport-project-generator-gatsby / src / utils.ts View on Github external
t.jsxExpressionContainer(
        t.objectExpression([
          t.objectProperty(
            t.identifier('__html'),
            t.memberExpression(t.identifier('props'), t.identifier('body'))
          ),
        ])
      )
    )
  )

  ASTUtils.addChildJSXTag(bodyNode, bodyDiv)

  addJSXExpressionContainer(bodyNode, 'props', 'postBodyComponents')

  ASTUtils.addChildJSXTag(htmlNode, headNode)
  ASTUtils.addChildJSXTag(htmlNode, bodyNode)

  return htmlNode
}
github teleporthq / teleport-code-generators / packages / teleport-plugin-react-app-routing / src / utils.ts View on Github external
export const createRouteRouterTag = (flavour: string, routeJSXDefinitions: types.JSXElement[]) => {
  const routerTag = ASTBuilders.createJSXTag('Router')

  if (flavour === 'preact') {
    routeJSXDefinitions.forEach((route) => ASTUtils.addChildJSXTag(routerTag, route))
    return routerTag
  }
  const divContainer = ASTBuilders.createJSXTag('div')
  ASTUtils.addChildJSXTag(routerTag, divContainer)
  routeJSXDefinitions.forEach((route) => ASTUtils.addChildJSXTag(divContainer, route))

  return routerTag
}
github teleporthq / teleport-code-generators / packages / teleport-project-generator-gatsby / src / utils.ts View on Github external
)
  bodyDiv.openingElement.attributes.push(
    t.jsxAttribute(
      t.jsxIdentifier('dangerouslySetInnerHTML'),
      t.jsxExpressionContainer(
        t.objectExpression([
          t.objectProperty(
            t.identifier('__html'),
            t.memberExpression(t.identifier('props'), t.identifier('body'))
          ),
        ])
      )
    )
  )

  ASTUtils.addChildJSXTag(bodyNode, bodyDiv)

  addJSXExpressionContainer(bodyNode, 'props', 'postBodyComponents')

  ASTUtils.addChildJSXTag(htmlNode, headNode)
  ASTUtils.addChildJSXTag(htmlNode, bodyNode)

  return htmlNode
}
github teleporthq / teleport-code-generators / packages / teleport-plugin-react-app-routing / src / utils.ts View on Github external
    routeJSXDefinitions.forEach((route) => ASTUtils.addChildJSXTag(routerTag, route))
    return routerTag
github teleporthq / teleport-code-generators / packages / teleport-project-generator-gatsby / src / utils.ts View on Github external
ASTUtils.addAttributeToJSXTag(charSetMetaTag, 'charSet', 'utf-8')
  ASTUtils.addChildJSXTag(headNode, charSetMetaTag)

  const httpMetaTag = ASTBuilders.createSelfClosingJSXTag('meta')
  ASTUtils.addAttributeToJSXTag(httpMetaTag, 'httpEquiv', 'x-ua-compatible')
  ASTUtils.addAttributeToJSXTag(httpMetaTag, 'content', 'ie=edge')
  ASTUtils.addChildJSXTag(headNode, httpMetaTag)

  const viewPortMeta = ASTBuilders.createSelfClosingJSXTag('meta')
  ASTUtils.addAttributeToJSXTag(viewPortMeta, 'name', 'viewport')
  ASTUtils.addAttributeToJSXTag(
    viewPortMeta,
    'content',
    'width=device-width, initial-scale=1, shrink-to-fit=no'
  )
  ASTUtils.addChildJSXTag(headNode, viewPortMeta)

  addJSXExpressionContainer(bodyNode, 'props', 'preBodyComponents')

  ASTUtils.addChildJSXText(noScriptNode, 'This app works best with JavaScript enabled.')
  ASTUtils.addAttributeToJSXTag(noScriptNode, 'key', 'noscript')
  ASTUtils.addAttributeToJSXTag(noScriptNode, 'id', 'gatsby-noscript')
  ASTUtils.addChildJSXTag(bodyNode, noScriptNode)

  addSpreadAttributes(htmlNode, 'props', 'htmlAttributes')
  addSpreadAttributes(bodyNode, 'props', 'bodyAttributes')
  addJSXExpressionContainer(headNode, 'props', 'headComponents')

  if (settings.language) {
    ASTUtils.addAttributeToJSXTag(htmlNode, 'lang', settings.language)
  }
github teleporthq / teleport-code-generators / packages / teleport-project-generator-gatsby / src / utils.ts View on Github external
const viewPortMeta = ASTBuilders.createSelfClosingJSXTag('meta')
  ASTUtils.addAttributeToJSXTag(viewPortMeta, 'name', 'viewport')
  ASTUtils.addAttributeToJSXTag(
    viewPortMeta,
    'content',
    'width=device-width, initial-scale=1, shrink-to-fit=no'
  )
  ASTUtils.addChildJSXTag(headNode, viewPortMeta)

  addJSXExpressionContainer(bodyNode, 'props', 'preBodyComponents')

  ASTUtils.addChildJSXText(noScriptNode, 'This app works best with JavaScript enabled.')
  ASTUtils.addAttributeToJSXTag(noScriptNode, 'key', 'noscript')
  ASTUtils.addAttributeToJSXTag(noScriptNode, 'id', 'gatsby-noscript')
  ASTUtils.addChildJSXTag(bodyNode, noScriptNode)

  addSpreadAttributes(htmlNode, 'props', 'htmlAttributes')
  addSpreadAttributes(bodyNode, 'props', 'bodyAttributes')
  addJSXExpressionContainer(headNode, 'props', 'headComponents')

  if (settings.language) {
    ASTUtils.addAttributeToJSXTag(htmlNode, 'lang', settings.language)
  }

  ASTBuilders.appendAssetsAST(assets, options, headNode, bodyNode)

  meta.forEach((metaItem) => {
    const metaTag = ASTBuilders.createJSXTag('meta')
    Object.keys(metaItem).forEach((key) => {
      const metaValue = UIDLUtils.prefixAssetsPath(options.assetsPrefix, metaItem[key])
      ASTUtils.addAttributeToJSXTag(metaTag, key, metaValue)
github teleporthq / teleport-code-generators / packages / teleport-plugin-stencil-app-routing / src / utils.ts View on Github external
routes.forEach((routeNode) => {
    const pageKey = routeNode.content.value.toString()
    const pageDefinition = routeDefinitions.values.find((route) => route.value === pageKey)
    const { componentName, navLink } = pageDefinition.pageOptions

    const stencilRouteTag = ASTBuilders.createJSXTag('stencil-route')
    ASTUtils.addAttributeToJSXTag(stencilRouteTag, 'url', navLink)
    if (navLink === '/') {
      ASTUtils.addAttributeToJSXTag(stencilRouteTag, 'exact', true)
    }
    ASTUtils.addAttributeToJSXTag(
      stencilRouteTag,
      'component',
      UIDLUtils.createWebComponentFriendlyName(componentName)
    )
    ASTUtils.addChildJSXTag(stencilRouteSwitchTag, stencilRouteTag)
  })
github teleporthq / teleport-code-generators / packages / teleport-plugin-stencil-app-routing / src / utils.ts View on Github external
export const createClassDeclaration = (
  routes: UIDLConditionalNode[],
  routeDefinitions: UIDLStateDefinition,
  t = types
) => {
  const stencilRouterTag = ASTBuilders.createJSXTag('stencil-router')
  const stencilRouteSwitchTag = ASTBuilders.createJSXTag('stencil-route-switch')
  ASTUtils.addChildJSXTag(stencilRouterTag, stencilRouteSwitchTag)

  routes.forEach((routeNode) => {
    const pageKey = routeNode.content.value.toString()
    const pageDefinition = routeDefinitions.values.find((route) => route.value === pageKey)
    const { componentName, navLink } = pageDefinition.pageOptions

    const stencilRouteTag = ASTBuilders.createJSXTag('stencil-route')
    ASTUtils.addAttributeToJSXTag(stencilRouteTag, 'url', navLink)
    if (navLink === '/') {
      ASTUtils.addAttributeToJSXTag(stencilRouteTag, 'exact', true)
    }
    ASTUtils.addAttributeToJSXTag(
      stencilRouteTag,
      'component',
      UIDLUtils.createWebComponentFriendlyName(componentName)
    )

@teleporthq/teleport-plugin-common

Common building and modelating functions for ASTs and HASTs

MIT
Latest version published 2 days ago

Package Health Score

82 / 100
Full package analysis

Similar packages