PHP 8.2.30
Preview: get-styled-options.js Size: 2.79 KB
/home/byroehnu/easepaybiz.easetack.com/node_modules/@emotion/babel-plugin/src/utils/get-styled-options.js

import { getLabelFromPath } from './label'
import { getTargetClassName } from './get-target-class-name'
import createNodeEnvConditional from './create-node-env-conditional'

const getKnownProperties = (t, node) =>
  new Set(
    node.properties
      .filter(n => t.isObjectProperty(n) && !n.computed)
      .map(n => (t.isIdentifier(n.key) ? n.key.name : n.key.value))
  )

const createObjectSpreadLike = (t, file, ...objs) =>
  t.callExpression(file.addHelper('extends'), [t.objectExpression([]), ...objs])

export let getStyledOptions = (t, path, state) => {
  const autoLabel = state.opts.autoLabel || 'dev-only'

  let args = path.node.arguments
  let optionsArgument = args.length >= 2 ? args[1] : null

  let prodProperties = []
  let devProperties = null
  let knownProperties =
    optionsArgument && t.isObjectExpression(optionsArgument)
      ? getKnownProperties(t, optionsArgument)
      : new Set()

  if (!knownProperties.has('target')) {
    prodProperties.push(
      t.objectProperty(
        t.identifier('target'),
        t.stringLiteral(getTargetClassName(state, t))
      )
    )
  }

  let label =
    autoLabel !== 'never' && !knownProperties.has('label')
      ? getLabelFromPath(path, state, t)
      : null

  if (label) {
    const labelNode = t.objectProperty(
      t.identifier('label'),
      t.stringLiteral(label)
    )
    switch (autoLabel) {
      case 'always':
        prodProperties.push(labelNode)
        break
      case 'dev-only':
        devProperties = [labelNode]
        break
    }
  }

  if (optionsArgument) {
    // for some reason `.withComponent` transformer gets requeued
    // so check if this has been already transpiled to avoid double wrapping
    if (
      t.isConditionalExpression(optionsArgument) &&
      t.isBinaryExpression(optionsArgument.test) &&
      t.buildMatchMemberExpression('process.env.NODE_ENV')(
        optionsArgument.test.left
      )
    ) {
      return optionsArgument
    }
    if (!t.isObjectExpression(optionsArgument)) {
      const prodNode = createObjectSpreadLike(
        t,
        state.file,
        t.objectExpression(prodProperties),
        optionsArgument
      )
      return devProperties
        ? createNodeEnvConditional(
            t,
            prodNode,
            t.cloneNode(
              createObjectSpreadLike(
                t,
                state.file,
                t.objectExpression(prodProperties.concat(devProperties)),
                optionsArgument
              )
            )
          )
        : prodNode
    }

    prodProperties.unshift(...optionsArgument.properties)
  }

  return devProperties
    ? createNodeEnvConditional(
        t,
        t.objectExpression(prodProperties),
        t.cloneNode(t.objectExpression(prodProperties.concat(devProperties)))
      )
    : t.objectExpression(prodProperties)
}

Directory Contents

Dirs: 0 × Files: 14

Name Size Perms Modified Actions
127 B lr--r--r-- 2026-03-14 01:49:07
Edit Download
750 B lrw-r--r-- 2026-03-05 00:19:55
Edit Download
373 B lrw-r--r-- 2026-03-05 00:19:55
Edit Download
2.79 KB lrw-r--r-- 2026-03-05 00:19:59
Edit Download
1.49 KB lrw-r--r-- 2026-03-05 00:20:00
Edit Download
537 B lrw-r--r-- 2026-03-05 00:20:02
Edit Download
4.62 KB lrw-r--r-- 2026-03-05 00:20:02
Edit Download
3.91 KB lrw-r--r-- 2026-03-05 00:20:04
Edit Download
1.26 KB lrw-r--r-- 2026-03-05 00:20:05
Edit Download
1.07 KB lrw-r--r-- 2026-03-05 00:20:06
Edit Download
1.90 KB lrw-r--r-- 2026-03-05 00:20:08
Edit Download
4.21 KB lrw-r--r-- 2026-03-05 00:20:09
Edit Download
1.65 KB lrw-r--r-- 2026-03-05 00:20:09
Edit Download
2.28 KB lrw-r--r-- 2026-03-05 00:20:09
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).