@tamagui/static 1.14.0 → 1.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/constants.js +52 -1
- package/dist/cjs/constants.js.map +2 -2
- package/dist/cjs/extractor/accessSafe.js +52 -1
- package/dist/cjs/extractor/accessSafe.js.map +2 -2
- package/dist/cjs/extractor/babelParse.js +66 -1
- package/dist/cjs/extractor/babelParse.js.map +2 -2
- package/dist/cjs/extractor/buildClassName.js +99 -1
- package/dist/cjs/extractor/buildClassName.js.map +2 -2
- package/dist/cjs/extractor/bundle.js +126 -1
- package/dist/cjs/extractor/bundle.js.map +2 -2
- package/dist/cjs/extractor/createEvaluator.js +86 -1
- package/dist/cjs/extractor/createEvaluator.js.map +2 -2
- package/dist/cjs/extractor/createExtractor.js +1630 -15
- package/dist/cjs/extractor/createExtractor.js.map +2 -2
- package/dist/cjs/extractor/ensureImportingConcat.js +64 -1
- package/dist/cjs/extractor/ensureImportingConcat.js.map +2 -2
- package/dist/cjs/extractor/evaluateAstNode.js +130 -1
- package/dist/cjs/extractor/evaluateAstNode.js.map +2 -2
- package/dist/cjs/extractor/extractHelpers.js +207 -1
- package/dist/cjs/extractor/extractHelpers.js.map +2 -2
- package/dist/cjs/extractor/extractMediaStyle.js +193 -1
- package/dist/cjs/extractor/extractMediaStyle.js.map +2 -2
- package/dist/cjs/extractor/extractToClassNames.js +413 -13
- package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
- package/dist/cjs/extractor/findTopmostFunction.js +43 -1
- package/dist/cjs/extractor/findTopmostFunction.js.map +2 -2
- package/dist/cjs/extractor/generatedUid.js +59 -1
- package/dist/cjs/extractor/generatedUid.js.map +2 -2
- package/dist/cjs/extractor/getPrefixLogs.js +31 -1
- package/dist/cjs/extractor/getPrefixLogs.js.map +2 -2
- package/dist/cjs/extractor/getPropValueFromAttributes.js +89 -1
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/cjs/extractor/getSourceModule.js +103 -1
- package/dist/cjs/extractor/getSourceModule.js.map +2 -2
- package/dist/cjs/extractor/getStaticBindingsForScope.js +225 -1
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/cjs/extractor/hoistClassNames.js +74 -1
- package/dist/cjs/extractor/hoistClassNames.js.map +2 -2
- package/dist/cjs/extractor/literalToAst.js +115 -1
- package/dist/cjs/extractor/literalToAst.js.map +2 -2
- package/dist/cjs/extractor/loadFile.js +20 -2
- package/dist/cjs/extractor/loadFile.js.map +2 -2
- package/dist/cjs/extractor/loadTamagui.js +432 -15
- package/dist/cjs/extractor/loadTamagui.js.map +2 -2
- package/dist/cjs/extractor/logLines.js +43 -3
- package/dist/cjs/extractor/logLines.js.map +2 -2
- package/dist/cjs/extractor/normalizeTernaries.js +85 -1
- package/dist/cjs/extractor/normalizeTernaries.js.map +2 -2
- package/dist/cjs/extractor/removeUnusedHooks.js +109 -1
- package/dist/cjs/extractor/removeUnusedHooks.js.map +2 -2
- package/dist/cjs/extractor/timer.js +52 -1
- package/dist/cjs/extractor/timer.js.map +2 -2
- package/dist/cjs/extractor/validHTMLAttributes.js +126 -1
- package/dist/cjs/extractor/validHTMLAttributes.js.map +2 -2
- package/dist/cjs/getPragmaOptions.js +67 -2
- package/dist/cjs/getPragmaOptions.js.map +2 -2
- package/dist/cjs/helpers/memoize.js +45 -1
- package/dist/cjs/helpers/memoize.js.map +2 -2
- package/dist/cjs/index.js +42 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/require.js +81 -5
- package/dist/cjs/require.js.map +2 -2
- package/dist/cjs/types.js +16 -1
- package/dist/cjs/types.js.map +2 -2
- package/dist/cjs/webpackPlugin.js +34 -1
- package/dist/cjs/webpackPlugin.js.map +2 -2
- package/dist/esm/constants.js +14 -1
- package/dist/esm/constants.js.map +2 -2
- package/dist/esm/constants.mjs +14 -1
- package/dist/esm/constants.mjs.map +2 -2
- package/dist/esm/extractor/accessSafe.js +18 -1
- package/dist/esm/extractor/accessSafe.js.map +2 -2
- package/dist/esm/extractor/accessSafe.mjs +18 -1
- package/dist/esm/extractor/accessSafe.mjs.map +2 -2
- package/dist/esm/extractor/babelParse.js +31 -1
- package/dist/esm/extractor/babelParse.js.map +2 -2
- package/dist/esm/extractor/babelParse.mjs +31 -1
- package/dist/esm/extractor/babelParse.mjs.map +2 -2
- package/dist/esm/extractor/buildClassName.js +64 -1
- package/dist/esm/extractor/buildClassName.js.map +2 -2
- package/dist/esm/extractor/buildClassName.mjs +64 -1
- package/dist/esm/extractor/buildClassName.mjs.map +2 -2
- package/dist/esm/extractor/bundle.js +91 -1
- package/dist/esm/extractor/bundle.js.map +2 -2
- package/dist/esm/extractor/bundle.mjs +91 -1
- package/dist/esm/extractor/bundle.mjs.map +2 -2
- package/dist/esm/extractor/createEvaluator.js +51 -1
- package/dist/esm/extractor/createEvaluator.js.map +2 -2
- package/dist/esm/extractor/createEvaluator.mjs +51 -1
- package/dist/esm/extractor/createEvaluator.mjs.map +2 -2
- package/dist/esm/extractor/createExtractor.js +1613 -15
- package/dist/esm/extractor/createExtractor.js.map +2 -2
- package/dist/esm/extractor/createExtractor.mjs +1613 -15
- package/dist/esm/extractor/createExtractor.mjs.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.js +30 -1
- package/dist/esm/extractor/ensureImportingConcat.js.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.mjs +30 -1
- package/dist/esm/extractor/ensureImportingConcat.mjs.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.js +96 -1
- package/dist/esm/extractor/evaluateAstNode.js.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.mjs +96 -1
- package/dist/esm/extractor/evaluateAstNode.mjs.map +2 -2
- package/dist/esm/extractor/extractHelpers.js +161 -1
- package/dist/esm/extractor/extractHelpers.js.map +2 -2
- package/dist/esm/extractor/extractHelpers.mjs +161 -1
- package/dist/esm/extractor/extractHelpers.mjs.map +2 -2
- package/dist/esm/extractor/extractMediaStyle.js +158 -1
- package/dist/esm/extractor/extractMediaStyle.js.map +2 -2
- package/dist/esm/extractor/extractMediaStyle.mjs +158 -1
- package/dist/esm/extractor/extractMediaStyle.mjs.map +2 -2
- package/dist/esm/extractor/extractToClassNames.js +379 -13
- package/dist/esm/extractor/extractToClassNames.js.map +2 -2
- package/dist/esm/extractor/extractToClassNames.mjs +379 -13
- package/dist/esm/extractor/extractToClassNames.mjs.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.js +19 -1
- package/dist/esm/extractor/findTopmostFunction.js.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.mjs +19 -1
- package/dist/esm/extractor/findTopmostFunction.mjs.map +2 -2
- package/dist/esm/extractor/generatedUid.js +25 -1
- package/dist/esm/extractor/generatedUid.js.map +2 -2
- package/dist/esm/extractor/generatedUid.mjs +25 -1
- package/dist/esm/extractor/generatedUid.mjs.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.js +7 -1
- package/dist/esm/extractor/getPrefixLogs.js.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.mjs +7 -1
- package/dist/esm/extractor/getPrefixLogs.mjs.map +2 -2
- package/dist/esm/extractor/getPropValueFromAttributes.js +55 -1
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/esm/extractor/getPropValueFromAttributes.mjs +55 -1
- package/dist/esm/extractor/getPropValueFromAttributes.mjs.map +2 -2
- package/dist/esm/extractor/getSourceModule.js +69 -1
- package/dist/esm/extractor/getSourceModule.js.map +2 -2
- package/dist/esm/extractor/getSourceModule.mjs +69 -1
- package/dist/esm/extractor/getSourceModule.mjs.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.js +190 -1
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.mjs +190 -1
- package/dist/esm/extractor/getStaticBindingsForScope.mjs.map +2 -2
- package/dist/esm/extractor/hoistClassNames.js +40 -1
- package/dist/esm/extractor/hoistClassNames.js.map +2 -2
- package/dist/esm/extractor/hoistClassNames.mjs +40 -1
- package/dist/esm/extractor/hoistClassNames.mjs.map +2 -2
- package/dist/esm/extractor/literalToAst.js +80 -1
- package/dist/esm/extractor/literalToAst.js.map +2 -2
- package/dist/esm/extractor/literalToAst.mjs +80 -1
- package/dist/esm/extractor/literalToAst.mjs.map +2 -2
- package/dist/esm/extractor/loadFile.js +19 -2
- package/dist/esm/extractor/loadFile.js.map +2 -2
- package/dist/esm/extractor/loadFile.mjs +19 -2
- package/dist/esm/extractor/loadFile.mjs.map +2 -2
- package/dist/esm/extractor/loadTamagui.js +396 -15
- package/dist/esm/extractor/loadTamagui.js.map +2 -2
- package/dist/esm/extractor/loadTamagui.mjs +396 -15
- package/dist/esm/extractor/loadTamagui.mjs.map +2 -2
- package/dist/esm/extractor/logLines.js +19 -3
- package/dist/esm/extractor/logLines.js.map +2 -2
- package/dist/esm/extractor/logLines.mjs +19 -3
- package/dist/esm/extractor/logLines.mjs.map +2 -2
- package/dist/esm/extractor/normalizeTernaries.js +51 -1
- package/dist/esm/extractor/normalizeTernaries.js.map +2 -2
- package/dist/esm/extractor/normalizeTernaries.mjs +51 -1
- package/dist/esm/extractor/normalizeTernaries.mjs.map +2 -2
- package/dist/esm/extractor/removeUnusedHooks.js +75 -1
- package/dist/esm/extractor/removeUnusedHooks.js.map +2 -2
- package/dist/esm/extractor/removeUnusedHooks.mjs +75 -1
- package/dist/esm/extractor/removeUnusedHooks.mjs.map +2 -2
- package/dist/esm/extractor/timer.js +28 -1
- package/dist/esm/extractor/timer.js.map +2 -2
- package/dist/esm/extractor/timer.mjs +28 -1
- package/dist/esm/extractor/timer.mjs.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.js +101 -1
- package/dist/esm/extractor/validHTMLAttributes.js.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.mjs +101 -1
- package/dist/esm/extractor/validHTMLAttributes.mjs.map +2 -2
- package/dist/esm/getPragmaOptions.js +43 -2
- package/dist/esm/getPragmaOptions.js.map +2 -2
- package/dist/esm/getPragmaOptions.mjs +43 -2
- package/dist/esm/getPragmaOptions.mjs.map +2 -2
- package/dist/esm/helpers/memoize.js +21 -1
- package/dist/esm/helpers/memoize.js.map +2 -2
- package/dist/esm/helpers/memoize.mjs +21 -1
- package/dist/esm/helpers/memoize.mjs.map +2 -2
- package/dist/esm/index.js +15 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.mjs +15 -1
- package/dist/esm/index.mjs.map +2 -2
- package/dist/esm/require.js +55 -5
- package/dist/esm/require.js.map +2 -2
- package/dist/esm/require.mjs +55 -5
- package/dist/esm/require.mjs.map +2 -2
- package/dist/esm/webpackPlugin.js +10 -1
- package/dist/esm/webpackPlugin.js.map +2 -2
- package/dist/esm/webpackPlugin.mjs +10 -1
- package/dist/esm/webpackPlugin.mjs.map +2 -2
- package/package.json +14 -14
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/createExtractor.ts"],
|
|
4
4
|
"sourcesContent": ["/* eslint-disable no-console */\nimport { basename, relative } from 'path'\n\nimport traverse, { NodePath, TraverseOptions } from '@babel/traverse'\nimport * as t from '@babel/types'\nimport {\n PseudoStyles,\n StaticConfigParsed,\n expandStyles,\n getSplitStyles,\n mediaQueryConfig,\n proxyThemeVariables,\n pseudoDescriptors,\n} from '@tamagui/core-node'\nimport type { ViewStyle } from 'react-native'\nimport { createDOMProps } from 'react-native-web-internals'\n\nimport { FAILED_EVAL } from '../constants.js'\nimport type {\n ExtractedAttr,\n ExtractedAttrAttr,\n ExtractedAttrStyle,\n ExtractorOptions,\n ExtractorParseProps,\n TamaguiOptions,\n TamaguiOptionsWithFileInfo,\n Ternary,\n} from '../types.js'\nimport { createEvaluator, createSafeEvaluator } from './createEvaluator.js'\nimport { evaluateAstNode } from './evaluateAstNode.js'\nimport {\n attrStr,\n findComponentName,\n getValidComponent,\n getValidImport,\n isPresent,\n isValidImport,\n objToStr,\n} from './extractHelpers.js'\nimport { findTopmostFunction } from './findTopmostFunction.js'\nimport {\n cleanupBeforeExit,\n getStaticBindingsForScope,\n} from './getStaticBindingsForScope.js'\nimport { literalToAst } from './literalToAst.js'\nimport { TamaguiProjectInfo, loadTamagui, loadTamaguiSync } from './loadTamagui.js'\nimport { logLines } from './logLines.js'\nimport { normalizeTernaries } from './normalizeTernaries.js'\nimport { removeUnusedHooks } from './removeUnusedHooks.js'\nimport { timer } from './timer.js'\nimport { validHTMLAttributes } from './validHTMLAttributes.js'\n\nconst UNTOUCHED_PROPS = {\n key: true,\n style: true,\n className: true,\n}\n\nconst INLINE_EXTRACTABLE = {\n ref: 'ref',\n key: 'key',\n ...(process.env.TAMAGUI_TARGET === 'web' && {\n onPress: 'onClick',\n onHoverIn: 'onMouseEnter',\n onHoverOut: 'onMouseLeave',\n onPressIn: 'onMouseDown',\n onPressOut: 'onMouseUp',\n }),\n}\n\nconst validHooks = {\n useMedia: true,\n useTheme: true,\n}\n\nconst isAttr = (x: ExtractedAttr): x is ExtractedAttrAttr => x.type === 'attr'\nconst createTernary = (x: Ternary) => x\n\nexport type Extractor = ReturnType<typeof createExtractor>\n\ntype FileOrPath = NodePath<t.Program> | t.File\n\nlet hasLoggedBaseInfo = false\n\nexport function createExtractor(\n { logger = console }: ExtractorOptions = { logger: console }\n) {\n if (!process.env.TAMAGUI_TARGET) {\n console.log('\u26A0\uFE0F Please set process.env.TAMAGUI_TARGET to either \"web\" or \"native\"')\n process.exit(1)\n }\n\n const shouldAddDebugProp =\n // really basic disable this for next.js because it messes with ssr\n !process.env.npm_package_dependencies_next &&\n process.env.TAMAGUI_TARGET !== 'native' &&\n process.env.IDENTIFY_TAGS !== 'false' &&\n (process.env.NODE_ENV === 'development' ||\n process.env.DEBUG ||\n process.env.IDENTIFY_TAGS)\n\n let projectInfo: TamaguiProjectInfo | null = null\n\n // we load tamagui delayed because we need to set some global/env stuff before importing\n // otherwise we'd import `rnw` and cause it to evaluate react-native-web which causes errors\n\n function loadSync(props: TamaguiOptions) {\n return (projectInfo ||= loadTamaguiSync({\n config: props.config || 'tamagui.config.ts',\n components: props.components || ['tamagui'],\n }))\n }\n\n async function load(props: TamaguiOptions) {\n return (projectInfo ||= await loadTamagui({\n config: props.config || 'tamagui.config.ts',\n components: props.components || ['tamagui'],\n }))\n }\n\n return {\n options: {\n logger,\n },\n cleanupBeforeExit,\n loadTamagui: load,\n loadTamaguiSync: loadSync,\n getTamagui() {\n return projectInfo?.tamaguiConfig\n },\n parseSync: (f: FileOrPath, props: ExtractorParseProps) => {\n const projectInfo = loadSync(props)\n return parseWithConfig(projectInfo, f, props)\n },\n parse: async (f: FileOrPath, props: ExtractorParseProps) => {\n const projectInfo = await load(props)\n return parseWithConfig(projectInfo, f, props)\n },\n }\n\n function parseWithConfig(\n { components, tamaguiConfig }: TamaguiProjectInfo,\n fileOrPath: FileOrPath,\n options: ExtractorParseProps\n ) {\n const {\n config = 'tamagui.config.ts',\n importsWhitelist = ['constants.js'],\n evaluateVars = true,\n sourcePath = '',\n onExtractTag,\n onStyleRule,\n getFlattenedNode,\n disable,\n disableExtraction,\n disableExtractInlineMedia,\n disableExtractVariables,\n disableDebugAttr,\n disableExtractFoundComponents,\n includeExtensions = ['.ts', '.tsx', '.jsx'],\n extractStyledDefinitions = false,\n prefixLogs,\n excludeProps,\n target,\n ...restProps\n } = options\n\n let shouldPrintDebug = options.shouldPrintDebug || false\n\n if (disable === true || (Array.isArray(disable) && disable.includes(sourcePath))) {\n return null\n }\n if (!components) {\n throw new Error(`Must provide components`)\n }\n if (\n sourcePath &&\n includeExtensions &&\n !includeExtensions.some((ext) => sourcePath.endsWith(ext))\n ) {\n if (shouldPrintDebug) {\n logger.info(\n `Ignoring file due to includeExtensions: ${sourcePath}, includeExtensions: ${includeExtensions.join(\n ', '\n )}`\n )\n }\n return null\n }\n\n function isValidStyleKey(name: string, staticConfig: StaticConfigParsed) {\n if (!projectInfo) {\n throw new Error(`Tamagui extractor not loaded yet`)\n }\n if (target === 'native' && name[0] === '$' && mediaQueryConfig[name.slice(1)]) {\n return false\n }\n return !!(\n !!staticConfig.validStyles?.[name] ||\n !!pseudoDescriptors[name] ||\n // dont disable variants or else you lose many things flattening\n staticConfig.variants?.[name] ||\n projectInfo?.tamaguiConfig.shorthands[name] ||\n (name[0] === '$' ? !!mediaQueryConfig[name.slice(1)] : false)\n )\n }\n\n /**\n * Step 1: Determine if importing any statically extractable components\n */\n\n const isTargetingHTML = target === 'html'\n const ogDebug = shouldPrintDebug\n const tm = timer()\n const propsWithFileInfo: TamaguiOptionsWithFileInfo = {\n ...options,\n sourcePath,\n allLoadedComponents: [...components],\n }\n\n if (!hasLoggedBaseInfo) {\n hasLoggedBaseInfo = true\n if (shouldPrintDebug) {\n logger.info(\n [\n 'loaded components:',\n propsWithFileInfo.allLoadedComponents\n .map((comp) => Object.keys(comp.nameToInfo).join(', '))\n .join(', '),\n ].join(' ')\n )\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n const next = [...propsWithFileInfo.allLoadedComponents].map((info) => {\n const nameToInfo = { ...info.nameToInfo }\n for (const key in nameToInfo) {\n delete nameToInfo[key].staticConfig.validStyles\n }\n return { ...info, nameToInfo }\n })\n logger.info(['loaded:', JSON.stringify(next, null, 2)].join('\\n'))\n }\n }\n\n tm.mark('load-tamagui', !!shouldPrintDebug)\n\n const firstThemeName = Object.keys(tamaguiConfig.themes)[0]\n const firstTheme = tamaguiConfig.themes[firstThemeName]\n\n if (!firstTheme || typeof firstTheme !== 'object') {\n console.error(`Missing theme, an error occurred when importing your config`)\n console.log(`Got config:`, tamaguiConfig)\n console.log(`Looking for theme:`, firstThemeName)\n process.exit(0)\n }\n\n const proxiedTheme = proxyThemeVariables(firstTheme)\n type AccessListener = (key: string) => void\n const themeAccessListeners = new Set<AccessListener>()\n const defaultTheme = new Proxy(proxiedTheme, {\n get(target, key) {\n if (Reflect.has(target, key)) {\n themeAccessListeners.forEach((cb) => cb(String(key)))\n }\n return Reflect.get(target, key)\n },\n })\n\n // @ts-ignore\n const body =\n fileOrPath.type === 'Program' ? fileOrPath.get('body') : fileOrPath.program.body\n\n if (Object.keys(components).length === 0) {\n console.warn(\n `Warning: Tamagui didn't find any valid components (DEBUG=tamagui for more)`\n )\n if (process.env.DEBUG === 'tamagui') {\n console.log(`components`, Object.keys(components), components)\n }\n }\n\n if (shouldPrintDebug === 'verbose') {\n logger.info(\n `allLoadedComponent modules ${propsWithFileInfo.allLoadedComponents\n .map((k) => k.moduleName)\n .join(', ')}`\n )\n }\n\n let doesUseValidImport = false\n let hasImportedTheme = false\n\n const importDeclarations: t.ImportDeclaration[] = []\n\n for (const bodyPath of body) {\n if (bodyPath.type !== 'ImportDeclaration') continue\n const node = ('node' in bodyPath ? bodyPath.node : bodyPath) as t.ImportDeclaration\n const moduleName = node.source.value\n\n // if importing valid module\n const valid = isValidImport(propsWithFileInfo, moduleName)\n\n if (valid) {\n importDeclarations.push(node)\n }\n\n if (extractStyledDefinitions) {\n if (valid) {\n if (node.specifiers.some((specifier) => specifier.local.name === 'styled')) {\n doesUseValidImport = true\n break\n }\n }\n }\n\n if (valid) {\n const names = node.specifiers.map((specifier) => specifier.local.name)\n const isValidComponent = names.some((name) =>\n Boolean(isValidImport(propsWithFileInfo, moduleName, name) || validHooks[name])\n )\n if (shouldPrintDebug === 'verbose') {\n logger.info(\n `import ${names.join(\n ', '\n )} from ${moduleName} isValidComponent ${isValidComponent}`\n )\n }\n if (isValidComponent) {\n doesUseValidImport = true\n break\n }\n }\n }\n\n if (shouldPrintDebug) {\n logger.info(\n `file: ${sourcePath} ${JSON.stringify({ doesUseValidImport, hasImportedTheme })}`\n )\n }\n\n if (!doesUseValidImport) {\n return null\n }\n\n function getValidImportedComponent(componentName: string) {\n const importDeclaration = importDeclarations.find((dec) =>\n dec.specifiers.some((spec) => spec.local.name === componentName)\n )\n if (!importDeclaration) {\n return null\n }\n return getValidImport(\n propsWithFileInfo,\n importDeclaration.source.value,\n componentName\n )\n }\n\n tm.mark('import-check', !!shouldPrintDebug)\n\n let couldntParse = false\n const modifiedComponents = new Set<NodePath<any>>()\n\n // only keeping a cache around per-file, reset it if it changes\n const bindingCache: Record<string, string | null> = {}\n\n const callTraverse = (a: TraverseOptions<any>) => {\n // @ts-ignore\n return fileOrPath.type === 'File' ? traverse(fileOrPath, a) : fileOrPath.traverse(a)\n }\n\n const shouldDisableExtraction =\n disableExtraction === true ||\n (Array.isArray(disableExtraction) && disableExtraction.includes(sourcePath))\n\n /**\n * Step 2: Statically extract from JSX < /> nodes\n */\n let programPath: NodePath<t.Program> | null = null\n\n const res = {\n styled: 0,\n flattened: 0,\n optimized: 0,\n modified: 0,\n found: 0,\n }\n\n callTraverse({\n // @ts-ignore\n Program: {\n enter(path) {\n programPath = path\n },\n },\n\n // styled() calls\n CallExpression(path) {\n if (disable || shouldDisableExtraction || extractStyledDefinitions === false) {\n return\n }\n\n if (!t.isIdentifier(path.node.callee) || path.node.callee.name !== 'styled') {\n return\n }\n\n const variableName =\n t.isVariableDeclarator(path.parent) && t.isIdentifier(path.parent.id)\n ? path.parent.id.name\n : 'unknown'\n\n const parentNode = path.node.arguments[0]\n if (!t.isIdentifier(parentNode)) {\n return\n }\n const parentName = parentNode.name\n const definition = path.node.arguments[1]\n\n if (!parentName || !definition || !t.isObjectExpression(definition)) {\n return\n }\n\n const Component = getValidImportedComponent(parentName)\n\n // if (!Component) {\n // if (disableExtractFoundComponents === true) {\n // return\n // }\n // if (\n // Array.isArray(disableExtractFoundComponents) &&\n // disableExtractFoundComponents.includes(parentName)\n // ) {\n // return\n // }\n\n // try {\n // if (shouldPrintDebug) {\n // logger.info(\n // `Unknown component ${parentName}, attempting dynamic load: ${sourcePath}`\n // )\n // }\n\n // const out = loadTamaguiSync({\n // forceExports: true,\n // components: [sourcePath],\n // })\n\n // if (!out?.components) {\n // if (shouldPrintDebug) {\n // logger.info(`Couldn't load, got ${out}`)\n // }\n // return\n // }\n\n // propsWithFileInfo.allLoadedComponents = [\n // ...propsWithFileInfo.allLoadedComponents,\n // ...out.components,\n // ]\n\n // Component = out.components.flatMap((x) => x.nameToInfo[variableName] ?? [])[0]\n\n // if (shouldPrintDebug === 'verbose') {\n // logger.info([`Tamagui Loaded`, JSON.stringify(out.components), !!Component].join(' '))\n // }\n // } catch (err: any) {\n // if (shouldPrintDebug) {\n // logger.info(\n // `${getPrefixLogs(\n // options\n // )} skip optimize styled(${variableName}), unable to pre-process (DEBUG=tamagui for more)`\n // )\n // }\n // if (process.env.DEBUG === 'tamagui') {\n // logger.info(\n // ` Disable this with \"disableExtractFoundComponents\" in your build-time configuration. \\n\\n ${err.message} ${err.stack}`\n // )\n // }\n // }\n // }\n\n if (!Component) {\n /**\n * We could/should still extract CSS just limited to validStyleProps\n */\n return\n }\n\n const componentSkipProps = new Set([\n ...(Component.staticConfig.inlineWhenUnflattened || []),\n ...(Component.staticConfig.inlineProps || []),\n ...(Component.staticConfig.deoptProps || []),\n // for now skip variants, will return to them\n 'variants',\n 'defaultVariants',\n // skip fontFamily its basically a \"variant\", important for theme use to be value always\n 'fontFamily',\n 'name',\n 'focusStyle',\n 'hoverStyle',\n 'pressStyle',\n ])\n\n // for now dont parse variants, spreads, etc\n const skipped: (t.ObjectProperty | t.SpreadElement | t.ObjectMethod)[] = []\n const styles = {}\n\n // Generate scope object at this level\n const staticNamespace = getStaticBindingsForScope(\n path.scope,\n importsWhitelist,\n sourcePath,\n bindingCache,\n shouldPrintDebug\n )\n\n const attemptEval = !evaluateVars\n ? evaluateAstNode\n : createEvaluator({\n props: propsWithFileInfo,\n staticNamespace,\n sourcePath,\n shouldPrintDebug,\n })\n const attemptEvalSafe = createSafeEvaluator(attemptEval)\n\n for (const property of definition.properties) {\n if (\n !t.isObjectProperty(property) ||\n !t.isIdentifier(property.key) ||\n !isValidStyleKey(property.key.name, Component.staticConfig) ||\n // skip variants\n Component.staticConfig.variants?.[property.key.name] ||\n componentSkipProps.has(property.key.name)\n ) {\n skipped.push(property)\n continue\n }\n // attempt eval\n const out = attemptEvalSafe(property.value)\n if (out === FAILED_EVAL) {\n skipped.push(property)\n } else {\n styles[property.key.name] = out\n }\n }\n\n const out = getSplitStyles(\n styles,\n Component.staticConfig,\n defaultTheme,\n {\n focus: false,\n hover: false,\n unmounted: true,\n press: false,\n pressIn: false,\n resolveVariablesAs: 'variable',\n noClassNames: false,\n },\n undefined,\n undefined,\n undefined,\n shouldPrintDebug\n )\n\n const classNames = {\n ...out.classNames,\n }\n\n // // add in the style object as classnames\n // const atomics = getStylesAtomic(out.style)\n // for (const atomic of atomics) {\n // out.rulesToInsert = out.rulesToInsert || []\n // out.rulesToInsert.push(atomic)\n // classNames[atomic.property] = atomic.identifier\n // }\n\n if (shouldPrintDebug) {\n // prettier-ignore\n logger.info([`Extracted styled(${variableName})\\n`, JSON.stringify(styles, null, 2), '\\n rulesToInsert:', out.rulesToInsert.flatMap((rule) => rule.rules).join('\\n')].join(' '))\n }\n\n // leave only un-parsed props...\n definition.properties = skipped\n\n // ... + key: className\n for (const cn in classNames) {\n if (componentSkipProps.has(cn)) {\n continue\n }\n const val = classNames[cn]\n definition.properties.push(\n t.objectProperty(t.stringLiteral(cn), t.stringLiteral(val))\n )\n }\n\n if (out.rulesToInsert) {\n for (const { identifier, rules } of out.rulesToInsert) {\n onStyleRule?.(identifier, rules)\n }\n }\n\n res.styled++\n\n if (shouldPrintDebug) {\n logger.info(`Extracted styled(${variableName})`)\n }\n },\n\n JSXElement(traversePath) {\n tm.mark('jsx-element', !!shouldPrintDebug)\n\n const node = traversePath.node.openingElement\n const ogAttributes = node.attributes.map((attr) => ({ ...attr }))\n const componentName = findComponentName(traversePath.scope)\n const closingElement = traversePath.node.closingElement\n\n // skip non-identifier opening elements (member expressions, etc.)\n if (\n t.isJSXMemberExpression(closingElement?.name) ||\n !t.isJSXIdentifier(node.name)\n ) {\n return\n }\n\n // validate its a proper import from tamagui (or internally inside tamagui)\n const binding = traversePath.scope.getBinding(node.name.name)\n let modulePath = ''\n\n if (binding) {\n if (!t.isImportDeclaration(binding.path.parent)) {\n if (shouldPrintDebug) {\n logger.info(` - Binding not import declaration, skip`)\n }\n return\n }\n modulePath = binding.path.parent.source.value\n if (!isValidImport(propsWithFileInfo, modulePath, binding.identifier.name)) {\n if (shouldPrintDebug) {\n logger.info(\n ` - Binding not internal import or from components ${binding.identifier.name} in ${modulePath}`\n )\n }\n return\n }\n }\n\n const component = getValidComponent(propsWithFileInfo, modulePath, node.name.name)\n if (!component || !component.staticConfig) {\n if (shouldPrintDebug) {\n logger.info(` - No Tamagui conf on this: ${node.name.name}`)\n }\n return\n }\n\n const originalNodeName = node.name.name\n\n // found a valid tag\n res.found++\n\n const filePath = `./${relative(process.cwd(), sourcePath)}`\n const lineNumbers = node.loc\n ? node.loc.start.line +\n (node.loc.start.line !== node.loc.end.line ? `-${node.loc.end.line}` : '')\n : ''\n\n const codePosition = `${filePath}:${lineNumbers}`\n\n // debug just one\n const debugPropValue = node.attributes\n .filter(\n (n) =>\n t.isJSXAttribute(n) && t.isJSXIdentifier(n.name) && n.name.name === 'debug'\n )\n // @ts-ignore\n .map((n: t.JSXAttribute) => {\n if (n.value === null) return true\n if (t.isStringLiteral(n.value)) return n.value.value as 'verbose'\n return false\n })[0] as boolean | 'verbose' | undefined\n\n if (debugPropValue) {\n shouldPrintDebug = debugPropValue\n }\n\n if (shouldPrintDebug) {\n logger.info('\\n')\n logger.info(\n `\\x1b[33m%s\\x1b[0m ` +\n `${componentName} | ${codePosition} -------------------`\n )\n // prettier-ignore\n logger.info(['\\x1b[1m', '\\x1b[32m', `<${originalNodeName} />`, disableDebugAttr ? '' : '\uD83D\uDC1B'].join(' '))\n }\n\n // add data-* debug attributes\n if (shouldAddDebugProp && !disableDebugAttr) {\n res.modified++\n node.attributes.unshift(\n t.jsxAttribute(t.jsxIdentifier('data-is'), t.stringLiteral(node.name.name))\n )\n if (componentName) {\n node.attributes.unshift(\n t.jsxAttribute(t.jsxIdentifier('data-in'), t.stringLiteral(componentName))\n )\n }\n\n node.attributes.unshift(\n t.jsxAttribute(\n t.jsxIdentifier('data-at'),\n t.stringLiteral(`${basename(filePath)}:${lineNumbers}`)\n )\n )\n }\n\n if (shouldDisableExtraction) {\n return\n }\n\n try {\n const { staticConfig } = component\n const variants = staticConfig.variants || {}\n const isTextView = staticConfig.isText || false\n const validStyles = staticConfig?.validStyles ?? {}\n\n // find tag=\"a\" tag=\"main\" etc dom indicators\n let tagName = staticConfig.defaultProps.tag ?? (isTextView ? 'span' : 'div')\n traversePath\n .get('openingElement')\n .get('attributes')\n .forEach((path) => {\n const attr = path.node\n if (t.isJSXSpreadAttribute(attr)) return\n if (attr.name.name !== 'tag') return\n const val = attr.value\n if (!t.isStringLiteral(val)) return\n tagName = val.value\n })\n\n const flatNode = getFlattenedNode?.({ isTextView, tag: tagName })\n\n const inlineProps = new Set([\n // adding some always inline props\n 'dataSet',\n ...(restProps.inlineProps || []),\n ...(staticConfig.inlineProps || []),\n ])\n\n const deoptProps = new Set([\n // always de-opt animation\n 'animation',\n ...(restProps.deoptProps || []),\n ...(staticConfig.deoptProps || []),\n ])\n\n const inlineWhenUnflattened = new Set([\n ...(staticConfig.inlineWhenUnflattened || []),\n ])\n\n // Generate scope object at this level\n const staticNamespace = getStaticBindingsForScope(\n traversePath.scope,\n importsWhitelist,\n sourcePath,\n bindingCache,\n shouldPrintDebug\n )\n\n const attemptEval = !evaluateVars\n ? evaluateAstNode\n : createEvaluator({\n props: propsWithFileInfo,\n staticNamespace,\n sourcePath,\n traversePath,\n shouldPrintDebug,\n })\n const attemptEvalSafe = createSafeEvaluator(attemptEval)\n\n if (shouldPrintDebug) {\n logger.info(` staticNamespace ${Object.keys(staticNamespace).join(', ')}`)\n }\n\n //\n // SPREADS SETUP\n //\n\n if (couldntParse) {\n return\n }\n\n tm.mark('jsx-element-flattened', !!shouldPrintDebug)\n\n let attrs: ExtractedAttr[] = []\n let shouldDeopt = false\n const inlined = new Map<string, any>()\n const variantValues = new Map<string, any>()\n let hasSetOptimized = false\n const inlineWhenUnflattenedOGVals = {}\n\n // RUN first pass\n\n // normalize all conditionals so we can evaluate away easier later\n // at the same time lets normalize shorthand media queries into spreads:\n // that way we can parse them with the same logic later on\n //\n // {...media.sm && { color: x ? 'red' : 'blue' }}\n // => {...media.sm && x && { color: 'red' }}\n // => {...media.sm && !x && { color: 'blue' }}\n //\n // $sm={{ color: 'red' }}\n // => {...media.sm && { color: 'red' }}\n //\n // $sm={{ color: x ? 'red' : 'blue' }}\n // => {...media.sm && x && { color: 'red' }}\n // => {...media.sm && !x && { color: 'blue' }}\n\n attrs = traversePath\n .get('openingElement')\n .get('attributes')\n .flatMap((path) => {\n try {\n const res = evaluateAttribute(path)\n tm.mark('jsx-element-evaluate-attr', !!shouldPrintDebug)\n if (!res) {\n path.remove()\n }\n return res\n } catch (err: any) {\n if (shouldPrintDebug) {\n logger.info(\n [\n 'Recoverable error extracting attribute',\n err.message,\n shouldPrintDebug === 'verbose' ? err.stack : '',\n ].join(' ')\n )\n if (shouldPrintDebug === 'verbose') {\n logger.info(`node ${path.node?.type}`)\n }\n }\n // dont flatten if we run into error\n inlined.set(`${Math.random()}`, 'spread')\n return {\n type: 'attr',\n value: path.node,\n } as const\n }\n })\n .flat(4)\n .filter(isPresent)\n\n if (shouldPrintDebug) {\n logger.info(\n [' - attrs (before):\\n', logLines(attrs.map(attrStr).join(', '))].join(' ')\n )\n }\n\n // START function evaluateAttribute\n function evaluateAttribute(\n path: NodePath<t.JSXAttribute | t.JSXSpreadAttribute>\n ): ExtractedAttr | ExtractedAttr[] | null {\n const attribute = path.node\n const attr: ExtractedAttr = { type: 'attr', value: attribute }\n // ...spreads\n if (t.isJSXSpreadAttribute(attribute)) {\n const arg = attribute.argument\n const conditional = t.isConditionalExpression(arg)\n ? // <YStack {...isSmall ? { color: 'red } : { color: 'blue }}\n ([arg.test, arg.consequent, arg.alternate] as const)\n : t.isLogicalExpression(arg) && arg.operator === '&&'\n ? // <YStack {...isSmall && { color: 'red }}\n ([arg.left, arg.right, null] as const)\n : null\n\n if (conditional) {\n const [test, alt, cons] = conditional\n if (!test) throw new Error(`no test`)\n if ([alt, cons].some((side) => side && !isStaticObject(side))) {\n if (shouldPrintDebug) {\n logger.info(`not extractable ${alt} ${cons}`)\n }\n return attr\n }\n // split into individual ternaries per object property\n return [\n ...(createTernariesFromObjectProperties(test, alt) || []),\n ...((cons &&\n createTernariesFromObjectProperties(\n t.unaryExpression('!', test),\n cons\n )) ||\n []),\n ].map((ternary) => ({\n type: 'ternary',\n value: ternary,\n }))\n }\n }\n // END ...spreads\n\n // directly keep these\n // couldn't evaluate spread, undefined name, or name is not string\n if (\n t.isJSXSpreadAttribute(attribute) ||\n !attribute.name ||\n typeof attribute.name.name !== 'string'\n ) {\n if (shouldPrintDebug) {\n logger.info(' ! inlining, spread attr')\n }\n inlined.set(`${Math.random()}`, 'spread')\n return attr\n }\n\n const name = attribute.name.name\n\n if (excludeProps?.has(name)) {\n if (shouldPrintDebug) {\n logger.info([' excluding prop', name].join(' '))\n }\n return null\n }\n\n if (inlineProps.has(name)) {\n inlined.set(name, name)\n if (shouldPrintDebug) {\n logger.info([' ! inlining, inline prop', name].join(' '))\n }\n return attr\n }\n\n // can still optimize the object... see hoverStyle on native\n if (deoptProps.has(name)) {\n shouldDeopt = true\n inlined.set(name, name)\n if (shouldPrintDebug) {\n logger.info([' ! inlining, deopted prop', name].join(' '))\n }\n return attr\n }\n\n // pass className, key, and style props through untouched\n if (UNTOUCHED_PROPS[name]) {\n return attr\n }\n\n if (INLINE_EXTRACTABLE[name]) {\n inlined.set(name, INLINE_EXTRACTABLE[name])\n return attr\n }\n\n if (name.startsWith('data-')) {\n return attr\n }\n\n // shorthand media queries\n if (name[0] === '$' && t.isJSXExpressionContainer(attribute?.value)) {\n const shortname = name.slice(1)\n if (mediaQueryConfig[shortname]) {\n if (target === 'native') {\n shouldDeopt = true\n }\n\n // allow disabling this extraction\n if (disableExtractInlineMedia) {\n return attr\n }\n\n const expression = attribute.value.expression\n if (!t.isJSXEmptyExpression(expression)) {\n const ternaries = createTernariesFromObjectProperties(\n t.stringLiteral(shortname),\n expression,\n {\n inlineMediaQuery: shortname,\n }\n )\n if (ternaries) {\n return ternaries.map((value) => ({\n type: 'ternary',\n value,\n }))\n }\n }\n }\n }\n\n const [value, valuePath] = (() => {\n if (t.isJSXExpressionContainer(attribute?.value)) {\n return [attribute.value.expression!, path.get('value')!] as const\n } else {\n return [attribute.value!, path.get('value')!] as const\n }\n })()\n\n const remove = () => {\n Array.isArray(valuePath)\n ? valuePath.map((p) => p.remove())\n : valuePath.remove()\n }\n\n if (name === 'ref') {\n if (shouldPrintDebug) {\n logger.info([' ! inlining, ref', name].join(' '))\n }\n inlined.set('ref', 'ref')\n return attr\n }\n\n if (name === 'tag') {\n return {\n type: 'attr',\n value: path.node,\n }\n }\n\n // native shouldn't extract variables\n if (disableExtractVariables === true) {\n if (value) {\n if (value.type === 'StringLiteral' && value.value[0] === '$') {\n if (shouldPrintDebug) {\n logger.info(\n [\n ` ! inlining, native disable extract: ${name} =`,\n value.value,\n ].join(' ')\n )\n }\n inlined.set(name, true)\n return attr\n }\n }\n }\n\n if (name === 'theme') {\n inlined.set('theme', attr.value)\n return attr\n }\n\n // if value can be evaluated, extract it and filter it out\n const styleValue = attemptEvalSafe(value)\n\n // never flatten if a prop isn't a valid static attribute\n // only post prop-mapping\n if (!variants[name] && !isValidStyleKey(name, staticConfig)) {\n let keys = [name]\n let out: any = null\n\n // for now passing empty props {}, a bit odd, need to at least document\n // for now we don't expose custom components so just noting behavior\n out = staticConfig.propMapper(\n name,\n styleValue,\n defaultTheme,\n staticConfig.defaultProps,\n { resolveVariablesAs: 'auto' },\n undefined,\n undefined,\n shouldPrintDebug\n )\n\n if (out) {\n if (!Array.isArray(out)) {\n logger.warn(`Error expected array but got`, out)\n couldntParse = true\n shouldDeopt = true\n } else {\n out = Object.fromEntries(out)\n keys = Object.keys(out)\n }\n }\n if (out) {\n if (isTargetingHTML) {\n // translate to DOM-compat\n out = createDOMProps(isTextView ? 'span' : 'div', out)\n // remove className - we dont use rnw styling\n delete out.className\n }\n\n keys = Object.keys(out)\n }\n\n let didInline = false\n const attributes = keys.map((key) => {\n const val = out[key]\n const isStyle = isValidStyleKey(key, staticConfig)\n if (isStyle) {\n return {\n type: 'style',\n value: { [key]: styleValue },\n name: key,\n attr: path.node,\n } as const\n }\n if (\n validHTMLAttributes[key] ||\n key.startsWith('aria-') ||\n key.startsWith('data-') ||\n // this is debug stuff added by vite / new jsx transform\n key === '__source' ||\n key === '__self'\n ) {\n return attr\n }\n if (shouldPrintDebug) {\n logger.info(' ! inlining, non-static ' + key)\n }\n didInline = true\n inlined.set(key, val)\n return val\n })\n\n // weird logic whats going on here\n if (didInline) {\n if (shouldPrintDebug) {\n logger.info(` bailing flattening due to attributes ${attributes}`)\n }\n // bail\n return attr\n }\n\n // return evaluated attributes\n return attributes\n }\n\n // FAILED = dynamic or ternary, keep going\n if (styleValue !== FAILED_EVAL) {\n if (inlineWhenUnflattened.has(name)) {\n // preserve original value for restoration\n inlineWhenUnflattenedOGVals[name] = { styleValue, attr }\n }\n\n if (isValidStyleKey(name, staticConfig)) {\n if (shouldPrintDebug) {\n logger.info(` style: ${name} = ${styleValue}`)\n }\n if (!(name in staticConfig.defaultProps)) {\n if (!hasSetOptimized) {\n res.optimized++\n hasSetOptimized = true\n }\n }\n return {\n type: 'style',\n value: { [name]: styleValue },\n name,\n attr: path.node,\n }\n } else {\n if (variants[name]) {\n variantValues.set(name, styleValue)\n }\n inlined.set(name, true)\n return attr\n }\n }\n\n // ternaries!\n\n // binary ternary, we can eventually make this smarter but step 1\n // basically for the common use case of:\n // opacity={(conditional ? 0 : 1) * scale}\n if (t.isBinaryExpression(value)) {\n if (shouldPrintDebug) {\n logger.info(` binary expression ${name} = ${value}`)\n }\n const { operator, left, right } = value\n // if one side is a ternary, and the other side is evaluatable, we can maybe extract\n const lVal = attemptEvalSafe(left)\n const rVal = attemptEvalSafe(right)\n if (shouldPrintDebug) {\n logger.info(\n ` evalBinaryExpression lVal ${String(lVal)}, rVal ${String(rVal)}`\n )\n }\n if (lVal !== FAILED_EVAL && t.isConditionalExpression(right)) {\n const ternary = addBinaryConditional(operator, left, right)\n if (ternary) return ternary\n }\n if (rVal !== FAILED_EVAL && t.isConditionalExpression(left)) {\n const ternary = addBinaryConditional(operator, right, left)\n if (ternary) return ternary\n }\n if (shouldPrintDebug) {\n logger.info(` evalBinaryExpression cant extract`)\n }\n inlined.set(name, true)\n return attr\n }\n\n const staticConditional = getStaticConditional(value)\n if (staticConditional) {\n if (shouldPrintDebug === 'verbose') {\n logger.info(` static conditional ${name} ${value}`)\n }\n return { type: 'ternary', value: staticConditional }\n }\n\n const staticLogical = getStaticLogical(value)\n if (staticLogical) {\n if (shouldPrintDebug === 'verbose') {\n logger.info(` static ternary ${name} = ${value}`)\n }\n return { type: 'ternary', value: staticLogical }\n }\n\n // if we've made it this far, the prop stays inline\n inlined.set(name, true)\n if (shouldPrintDebug) {\n logger.info(` ! inline no match ${name} ${value}`)\n }\n\n //\n // RETURN ATTR\n //\n return attr\n\n // attr helpers:\n function addBinaryConditional(\n operator: any,\n staticExpr: any,\n cond: t.ConditionalExpression\n ): ExtractedAttr | null {\n if (getStaticConditional(cond)) {\n const alt = attemptEval(\n t.binaryExpression(operator, staticExpr, cond.alternate)\n )\n const cons = attemptEval(\n t.binaryExpression(operator, staticExpr, cond.consequent)\n )\n if (shouldPrintDebug) {\n logger.info([' binaryConditional', cond.test, cons, alt].join(' '))\n }\n return {\n type: 'ternary',\n value: {\n test: cond.test,\n remove,\n alternate: { [name]: alt },\n consequent: { [name]: cons },\n },\n }\n }\n return null\n }\n\n function getStaticConditional(value: t.Node): Ternary | null {\n if (t.isConditionalExpression(value)) {\n try {\n const aVal = attemptEval(value.alternate)\n const cVal = attemptEval(value.consequent)\n if (shouldPrintDebug) {\n const type = value.test.type\n logger.info([' static ternary', type, cVal, aVal].join(' '))\n }\n return {\n test: value.test,\n remove,\n consequent: { [name]: cVal },\n alternate: { [name]: aVal },\n }\n } catch (err: any) {\n if (shouldPrintDebug) {\n logger.info([' cant eval ternary', err.message].join(' '))\n }\n }\n }\n return null\n }\n\n function getStaticLogical(value: t.Node): Ternary | null {\n if (t.isLogicalExpression(value)) {\n if (value.operator === '&&') {\n try {\n const val = attemptEval(value.right)\n if (shouldPrintDebug) {\n logger.info([' staticLogical', value.left, name, val].join(' '))\n }\n return {\n test: value.left,\n remove,\n consequent: { [name]: val },\n alternate: null,\n }\n } catch (err) {\n if (shouldPrintDebug) {\n logger.info([' cant static eval logical', err].join(' '))\n }\n }\n }\n }\n return null\n }\n } // END function evaluateAttribute\n\n function isStaticObject(obj: t.Node): obj is t.ObjectExpression {\n return (\n t.isObjectExpression(obj) &&\n obj.properties.every((prop) => {\n if (!t.isObjectProperty(prop)) {\n logger.info(['not object prop', prop].join(' '))\n return false\n }\n const propName = prop.key['name']\n if (!isValidStyleKey(propName, staticConfig) && propName !== 'tag') {\n if (shouldPrintDebug) {\n logger.info([' not a valid style prop!', propName].join(' '))\n }\n return false\n }\n return true\n })\n )\n }\n\n // side = {\n // color: 'red',\n // background: x ? 'red' : 'green',\n // $gtSm: { color: 'green' }\n // }\n // => Ternary<test, { color: 'red' }, null>\n // => Ternary<test && x, { background: 'red' }, null>\n // => Ternary<test && !x, { background: 'green' }, null>\n // => Ternary<test && '$gtSm', { color: 'green' }, null>\n function createTernariesFromObjectProperties(\n test: t.Expression,\n side: t.Expression | null,\n ternaryPartial: Partial<Ternary> = {}\n ): null | Ternary[] {\n if (!side) {\n return null\n }\n if (!isStaticObject(side)) {\n throw new Error('not extractable')\n }\n return side.properties.flatMap((property) => {\n if (!t.isObjectProperty(property)) {\n throw new Error('expected object property')\n }\n // handle media queries inside spread/conditional objects\n if (t.isIdentifier(property.key)) {\n const key = property.key.name\n const mediaQueryKey = key.slice(1)\n const isMediaQuery = key[0] === '$' && mediaQueryConfig[mediaQueryKey]\n if (isMediaQuery) {\n if (t.isExpression(property.value)) {\n const ternaries = createTernariesFromObjectProperties(\n t.stringLiteral(mediaQueryKey),\n property.value,\n {\n inlineMediaQuery: mediaQueryKey,\n }\n )\n if (ternaries) {\n return ternaries.map((value) => ({\n ...ternaryPartial,\n ...value,\n // ensure media query test stays on left side (see getMediaQueryTernary)\n test: t.logicalExpression('&&', value.test, test),\n }))\n } else {\n logger.info(['\u26A0\uFE0F no ternaries?', property].join(' '))\n }\n } else {\n logger.info(['\u26A0\uFE0F not expression', property].join(' '))\n }\n }\n }\n // this could be a recurse here if we want to get fancy\n if (t.isConditionalExpression(property.value)) {\n // merge up into the parent conditional, split into two\n const [truthy, falsy] = [\n t.objectExpression([\n t.objectProperty(property.key, property.value.consequent),\n ]),\n t.objectExpression([\n t.objectProperty(property.key, property.value.alternate),\n ]),\n ].map((x) => attemptEval(x))\n return [\n createTernary({\n remove() {},\n ...ternaryPartial,\n test: t.logicalExpression('&&', test, property.value.test),\n consequent: truthy,\n alternate: null,\n }),\n createTernary({\n ...ternaryPartial,\n test: t.logicalExpression(\n '&&',\n test,\n t.unaryExpression('!', property.value.test)\n ),\n consequent: falsy,\n alternate: null,\n remove() {},\n }),\n ]\n }\n const obj = t.objectExpression([\n t.objectProperty(property.key, property.value),\n ])\n const consequent = attemptEval(obj)\n return createTernary({\n remove() {},\n ...ternaryPartial,\n test,\n consequent,\n alternate: null,\n })\n })\n }\n\n if (couldntParse || shouldDeopt) {\n if (shouldPrintDebug) {\n logger.info(\n [` avoid optimizing:`, { couldntParse, shouldDeopt }].join(' ')\n )\n }\n node.attributes = ogAttributes\n return\n }\n\n // before deopt, can still optimize\n const parentFn = findTopmostFunction(traversePath)\n if (parentFn) {\n modifiedComponents.add(parentFn)\n }\n\n // combine ternaries\n let ternaries: Ternary[] = []\n attrs = attrs\n .reduce<(ExtractedAttr | ExtractedAttr[])[]>((out, cur) => {\n const next = attrs[attrs.indexOf(cur) + 1]\n if (cur.type === 'ternary') {\n ternaries.push(cur.value)\n }\n if ((!next || next.type !== 'ternary') && ternaries.length) {\n // finish, process\n const normalized = normalizeTernaries(ternaries).map(\n ({ alternate, consequent, ...rest }) => {\n return {\n type: 'ternary' as const,\n value: {\n ...rest,\n alternate: alternate || null,\n consequent: consequent || null,\n },\n }\n }\n )\n try {\n return [...out, ...normalized]\n } finally {\n if (shouldPrintDebug) {\n logger.info(\n ` normalizeTernaries (${ternaries.length} => ${normalized.length})`\n )\n }\n ternaries = []\n }\n }\n if (cur.type === 'ternary') {\n return out\n }\n out.push(cur)\n return out\n }, [])\n .flat()\n\n // flatten logic!\n // fairly simple check to see if all children are text\n const hasSpread = attrs.some(\n (x) => x.type === 'attr' && t.isJSXSpreadAttribute(x.value)\n )\n\n const hasOnlyStringChildren =\n !hasSpread &&\n (node.selfClosing ||\n (traversePath.node.children &&\n traversePath.node.children.every((x) => x.type === 'JSXText')))\n\n const themeVal = inlined.get('theme')\n\n // on native we can't flatten when theme prop is set\n if (target !== 'native') {\n inlined.delete('theme')\n }\n\n for (const [key] of [...inlined]) {\n const isStaticObjectVariant =\n staticConfig.variants?.[key] && variantValues.has(key)\n if (INLINE_EXTRACTABLE[key] || isStaticObjectVariant) {\n inlined.delete(key)\n }\n }\n\n const canFlattenProps = inlined.size === 0\n\n let shouldFlatten = Boolean(\n flatNode &&\n !shouldDeopt &&\n canFlattenProps &&\n !hasSpread &&\n staticConfig.neverFlatten !== true &&\n (staticConfig.neverFlatten === 'jsx' ? hasOnlyStringChildren : true)\n )\n\n const shouldWrapTheme = shouldFlatten && themeVal\n const usedThemeKeys = new Set<string>()\n\n if (disableExtractVariables) {\n // if it accesses any theme values during evaluation\n themeAccessListeners.add((key) => {\n shouldFlatten = false\n usedThemeKeys.add(key)\n if (shouldPrintDebug === 'verbose') {\n logger.info([' ! accessing theme key, avoid flatten', key].join(' '))\n }\n })\n }\n\n if (shouldPrintDebug) {\n try {\n // prettier-ignore\n logger.info([' flatten?', shouldFlatten, objToStr({ hasSpread, shouldDeopt, canFlattenProps, shouldWrapTheme, hasOnlyStringChildren }), 'inlined', inlined.size, [...inlined]].join(' '))\n } catch {\n // ok\n }\n }\n\n // wrap theme around children on flatten\n // TODO move this to bottom and re-check shouldFlatten\n // account for shouldFlatten could change w the above block \"if (disableExtractVariables)\"\n if (shouldFlatten && shouldWrapTheme) {\n if (!programPath) {\n console.warn(\n `No program path found, avoiding importing flattening / importing theme in ${sourcePath}`\n )\n } else {\n if (shouldPrintDebug) {\n logger.info([' - wrapping theme', themeVal].join(' '))\n }\n\n // remove theme attribute from flattened node\n attrs = attrs.filter((x) =>\n x.type === 'attr' &&\n t.isJSXAttribute(x.value) &&\n x.value.name.name === 'theme'\n ? false\n : true\n )\n\n // add import\n if (!hasImportedTheme) {\n hasImportedTheme = true\n programPath.node.body.push(\n t.importDeclaration(\n [\n t.importSpecifier(\n t.identifier('_TamaguiTheme'),\n t.identifier('Theme')\n ),\n ],\n t.stringLiteral('@tamagui/core')\n )\n )\n }\n\n traversePath.replaceWith(\n t.jsxElement(\n t.jsxOpeningElement(t.jsxIdentifier('_TamaguiTheme'), [\n t.jsxAttribute(t.jsxIdentifier('name'), themeVal.value),\n ]),\n t.jsxClosingElement(t.jsxIdentifier('_TamaguiTheme')),\n [traversePath.node]\n )\n )\n }\n }\n\n // only if we flatten, ensure the default styles are there\n if (shouldFlatten) {\n const defaultStyleAttrs = Object.keys(staticConfig.defaultProps).flatMap(\n (key) => {\n if (!isValidStyleKey(key, staticConfig)) {\n return []\n }\n const value = staticConfig.defaultProps[key]\n const name = tamaguiConfig.shorthands[key] || key\n if (value === undefined) {\n logger.warn(\n `\u26A0\uFE0F Error evaluating default style for component, prop ${key} ${value}`\n )\n shouldDeopt = true\n return\n }\n const attr: ExtractedAttrStyle = {\n type: 'style',\n name,\n value: { [name]: value },\n }\n return attr\n }\n ) as ExtractedAttr[]\n\n if (defaultStyleAttrs.length) {\n attrs = [...defaultStyleAttrs, ...attrs]\n }\n }\n\n if (shouldDeopt || !shouldFlatten) {\n if (shouldPrintDebug) {\n logger.info(`Deopting ${shouldDeopt} ${shouldFlatten}`)\n }\n node.attributes = ogAttributes\n return\n }\n\n if (shouldPrintDebug) {\n logger.info(\n [' - attrs (flattened): \\n', logLines(attrs.map(attrStr).join(', '))].join(\n ' '\n )\n )\n }\n\n const state = {\n noClassNames: false,\n focus: false,\n hover: false,\n unmounted: false, // TODO match logic in createComponent\n press: false,\n pressIn: false,\n }\n\n function splitVariants(style: any) {\n const variants = {}\n const styles = {}\n for (const key in style) {\n if (staticConfig.variants?.[key]) {\n variants[key] = style[key]\n } else {\n styles[key] = style[key]\n }\n }\n return {\n variants,\n styles,\n }\n }\n\n function expandStylesWithoutVariants(style: any) {\n const { variants, styles } = splitVariants(style)\n return {\n ...expandStyles(styles),\n ...variants,\n }\n }\n\n // evaluates all static attributes into a simple object\n let foundStaticProps = {}\n for (const key in attrs) {\n const cur = attrs[key]\n if (cur.type === 'style') {\n // remove variants because they are processed later, and can lead to invalid values here\n // see <Spacer flex /> where flex looks like a valid style, but is a variant\n foundStaticProps = {\n ...foundStaticProps,\n ...expandStylesWithoutVariants(cur.value),\n }\n continue\n }\n if (cur.type === 'attr') {\n if (t.isJSXSpreadAttribute(cur.value)) {\n continue\n }\n if (!t.isJSXIdentifier(cur.value.name)) {\n continue\n }\n const key = cur.value.name.name\n // undefined = boolean true\n const value = attemptEvalSafe(cur.value.value || t.booleanLiteral(true))\n if (value !== FAILED_EVAL) {\n foundStaticProps = {\n ...foundStaticProps,\n [key]: value,\n }\n }\n }\n }\n\n // must preserve exact order\n const completeProps = {}\n for (const key in staticConfig.defaultProps) {\n if (!(key in foundStaticProps)) {\n completeProps[key] = staticConfig.defaultProps[key]\n }\n }\n for (const key in foundStaticProps) {\n completeProps[key] = foundStaticProps[key]\n }\n\n // expand shorthands, de-opt variables\n attrs = attrs.reduce<ExtractedAttr[]>((acc, cur) => {\n if (!cur) return acc\n if (cur.type === 'attr' && !t.isJSXSpreadAttribute(cur.value)) {\n if (shouldFlatten) {\n const name = cur.value.name.name\n if (typeof name === 'string') {\n if (name === 'tag') {\n // remove tag=\"\"\n return acc\n }\n\n // if flattening, expand variants\n if (variants[name] && variantValues.has(name)) {\n let out = Object.fromEntries(\n staticConfig.propMapper(\n name,\n variantValues.get(name),\n defaultTheme,\n completeProps,\n { ...state, resolveVariablesAs: 'auto' },\n undefined,\n undefined,\n shouldPrintDebug\n ) || []\n )\n if (out && isTargetingHTML) {\n const cn = out.className\n // translate to DOM-compat\n out = createDOMProps(isTextView ? 'span' : 'div', out)\n // remove rnw className use ours\n out.className = cn\n }\n if (shouldPrintDebug) {\n logger.info([' - expanded variant', name, out].join(' '))\n }\n for (const key in out) {\n const value = out[key]\n if (isValidStyleKey(key, staticConfig)) {\n acc.push({\n type: 'style',\n value: { [key]: value },\n name: key,\n attr: cur.value,\n } as const)\n } else {\n acc.push({\n type: 'attr',\n value: t.jsxAttribute(\n t.jsxIdentifier(key),\n t.jsxExpressionContainer(\n typeof value === 'string'\n ? t.stringLiteral(value)\n : literalToAst(value)\n )\n ),\n })\n }\n }\n }\n }\n }\n }\n\n if (cur.type !== 'style') {\n acc.push(cur)\n return acc\n }\n\n let key = Object.keys(cur.value)[0]\n const value = cur.value[key]\n const fullKey = tamaguiConfig.shorthands[key]\n // expand shorthands\n if (fullKey) {\n cur.value = { [fullKey]: value }\n key = fullKey\n }\n\n // finally we have all styles + expansions, lets see if we need to skip\n // any and keep them as attrs\n if (disableExtractVariables) {\n if (\n value[0] === '$' &&\n (usedThemeKeys.has(key) || usedThemeKeys.has(fullKey))\n ) {\n if (shouldPrintDebug) {\n logger.info([` keeping variable inline: ${key} =`, value].join(' '))\n }\n acc.push({\n type: 'attr',\n value: t.jsxAttribute(\n t.jsxIdentifier(key),\n t.jsxExpressionContainer(t.stringLiteral(value))\n ),\n })\n return acc\n }\n }\n\n acc.push(cur)\n return acc\n }, [])\n\n tm.mark('jsx-element-expanded', !!shouldPrintDebug)\n if (shouldPrintDebug) {\n logger.info(\n [' - attrs (expanded): \\n', logLines(attrs.map(attrStr).join(', '))].join(\n ' '\n )\n )\n }\n\n // merge styles, leave undefined values\n let prev: ExtractedAttr | null = null\n\n function mergeStyles(\n prev: ViewStyle & PseudoStyles,\n next: ViewStyle & PseudoStyles\n ) {\n for (const key in next) {\n // merge pseudos\n if (pseudoDescriptors[key]) {\n prev[key] = prev[key] || {}\n Object.assign(prev[key], next[key])\n } else {\n prev[key] = next[key]\n }\n }\n }\n\n attrs = attrs.reduce<ExtractedAttr[]>((acc, cur) => {\n if (cur.type === 'style') {\n const key = Object.keys(cur.value)[0]\n const value = cur.value[key]\n\n const shouldKeepOriginalAttr =\n // !isStyleAndAttr[key] &&\n !shouldFlatten &&\n // de-opt if non-style\n !validStyles[key] &&\n !pseudoDescriptors[key] &&\n !(key.startsWith('data-') || key.startsWith('aria-'))\n\n if (shouldKeepOriginalAttr) {\n if (shouldPrintDebug) {\n logger.info([' - keeping as non-style', key].join(' '))\n }\n prev = cur\n acc.push({\n type: 'attr',\n value: t.jsxAttribute(\n t.jsxIdentifier(key),\n t.jsxExpressionContainer(\n typeof value === 'string'\n ? t.stringLiteral(value)\n : literalToAst(value)\n )\n ),\n })\n acc.push(cur)\n return acc\n }\n\n if (prev?.type === 'style') {\n mergeStyles(prev.value, cur.value)\n return acc\n }\n }\n\n prev = cur\n acc.push(cur)\n return acc\n }, [])\n\n if (shouldPrintDebug) {\n logger.info(\n [\n ' - attrs (combined \uD83D\uDD00): \\n',\n logLines(attrs.map(attrStr).join(', ')),\n ].join(' ')\n )\n logger.info(\n [\n ' - defaultProps: \\n',\n logLines(objToStr(staticConfig.defaultProps)),\n ].join(' ')\n )\n // prettier-ignore\n logger.info([' - foundStaticProps: \\n', logLines(objToStr(foundStaticProps))].join(' '))\n logger.info(\n [' - completeProps: \\n', logLines(objToStr(completeProps))].join(' ')\n )\n }\n\n // post process\n const getStyles = (props: Object | null, debugName = '') => {\n if (!props || !Object.keys(props).length) {\n if (shouldPrintDebug) logger.info([' getStyles() no props'].join(' '))\n return {}\n }\n if (excludeProps && !!excludeProps.size) {\n for (const key in props) {\n if (excludeProps.has(key)) {\n if (shouldPrintDebug) logger.info([' delete excluded', key].join(' '))\n delete props[key]\n }\n }\n }\n try {\n const out = getSplitStyles(\n props,\n staticConfig,\n defaultTheme,\n {\n ...state,\n fallbackProps: completeProps,\n },\n undefined,\n undefined,\n undefined,\n debugPropValue\n )\n\n const outStyle = {\n ...out.style,\n ...out.pseudos,\n }\n\n if (shouldPrintDebug === 'verbose') {\n // prettier-ignore\n logger.info(` getStyles ${debugName} (props in): ${Object.keys(props)}`)\n // prettier-ignore\n logger.info(` getStyles ${debugName} (outStyle): ${Object.keys(outStyle)}`)\n }\n\n return outStyle\n } catch (err: any) {\n logger.info(['error', err.message, err.stack].join(' '))\n return {}\n }\n }\n\n // used to ensure we pass the entire prop bundle to getStyles\n const completeStyles = getStyles(completeProps, 'completeStyles')\n\n if (!completeStyles) {\n throw new Error(`Impossible, no styles`)\n }\n\n let getStyleError: any = null\n\n // fix up ternaries, combine final style values\n for (const attr of attrs) {\n try {\n switch (attr.type) {\n case 'ternary': {\n const a = getStyles(attr.value.alternate, 'ternary.alternate')\n const c = getStyles(attr.value.consequent, 'ternary.consequent')\n if (a) attr.value.alternate = a\n if (c) attr.value.consequent = c\n if (shouldPrintDebug)\n logger.info([' => tern ', attrStr(attr)].join(' '))\n continue\n }\n case 'style': {\n // expand variants and such\n const styles = getStyles(attr.value, 'style')\n if (styles) {\n attr.value = styles\n }\n // prettier-ignore\n if (shouldPrintDebug) logger.info([' * styles (in)', logLines(objToStr(attr.value))].join(' '))\n // prettier-ignore\n if (shouldPrintDebug) logger.info([' * styles (out)', logLines(objToStr(styles))].join(' '))\n continue\n }\n }\n } catch (err) {\n // any error de-opt\n getStyleError = err\n }\n }\n\n if (shouldPrintDebug) {\n // prettier-ignore\n logger.info([' - attrs (ternaries/combined):\\n', logLines(attrs.map(attrStr).join(', '))].join(' '))\n }\n\n tm.mark('jsx-element-styles', !!shouldPrintDebug)\n\n if (getStyleError) {\n logger.info([' \u26A0\uFE0F postprocessing error, deopt', getStyleError].join(' '))\n node.attributes = ogAttributes\n return null\n }\n\n // final lazy extra loop:\n const existingStyleKeys = new Set()\n for (let i = attrs.length - 1; i >= 0; i--) {\n const attr = attrs[i]\n\n // if flattening map inline props to proper flattened names\n if (shouldFlatten) {\n if (attr.type === 'attr') {\n if (t.isJSXAttribute(attr.value)) {\n if (t.isJSXIdentifier(attr.value.name)) {\n const name = attr.value.name.name\n if (INLINE_EXTRACTABLE[name]) {\n // map to HTML only name\n attr.value.name.name = INLINE_EXTRACTABLE[name]\n }\n }\n }\n }\n }\n\n // remove duplicate styles\n // so if you have:\n // style({ color: 'red' }), ...someProps, style({ color: 'green' })\n // this will mutate:\n // style({}), ...someProps, style({ color: 'green' })\n if (attr.type === 'style') {\n for (const key in attr.value) {\n if (existingStyleKeys.has(key)) {\n if (shouldPrintDebug) {\n logger.info([` >> delete existing ${key}`].join(' '))\n }\n delete attr.value[key]\n } else {\n existingStyleKeys.add(key)\n }\n }\n }\n }\n\n // inlineWhenUnflattened\n if (!shouldFlatten) {\n if (inlineWhenUnflattened.size) {\n for (const [index, attr] of attrs.entries()) {\n if (attr.type === 'style') {\n for (const key in attr.value) {\n if (!inlineWhenUnflattened.has(key)) continue\n const val = inlineWhenUnflattenedOGVals[key]\n if (val) {\n // delete the style\n delete attr.value[key]\n\n // and insert it before\n attrs.splice(index - 1, 0, val.attr)\n } else {\n // just delete it, it was added during expansion but should be left inline\n delete attr.value[key]\n }\n }\n }\n }\n }\n }\n\n if (shouldFlatten) {\n // DO FLATTEN\n if (shouldPrintDebug) {\n logger.info([' [\u2705] flattening', originalNodeName, flatNode].join(' '))\n }\n // @ts-ignore\n node.name.name = flatNode\n res.flattened++\n if (closingElement) {\n // @ts-ignore\n closingElement.name.name = flatNode\n }\n }\n\n const isNativeNotFlat = !shouldFlatten && target === 'native'\n if (isNativeNotFlat) {\n if (shouldPrintDebug) {\n logger.info(`Disabled flattening except for simple cases on native for now`)\n }\n node.attributes = ogAttributes\n return null\n }\n\n if (shouldPrintDebug) {\n // prettier-ignore\n logger.info([` - inlined props (${inlined.size}):`, shouldDeopt ? ' deopted' : '', hasSpread ? ' has spread' : '', staticConfig.neverFlatten ? 'neverFlatten' : ''].join(' '))\n logger.info(` - shouldFlatten/isFlattened: ${shouldFlatten}`)\n logger.info(` - attrs (end):\\n ${logLines(attrs.map(attrStr).join(', '))}`)\n }\n\n onExtractTag({\n parserProps: propsWithFileInfo,\n attrs,\n node,\n lineNumbers,\n filePath,\n attemptEval,\n jsxPath: traversePath,\n originalNodeName,\n isFlattened: shouldFlatten,\n programPath: programPath!,\n completeProps,\n staticConfig,\n })\n } catch (err) {\n node.attributes = ogAttributes\n console.error(`err: ${err}`)\n } finally {\n if (debugPropValue) {\n shouldPrintDebug = ogDebug\n }\n }\n },\n })\n\n tm.mark('jsx-done', !!shouldPrintDebug)\n\n /**\n * Step 3: Remove dead code from removed media query / theme hooks\n */\n if (modifiedComponents.size) {\n const all = Array.from(modifiedComponents)\n if (shouldPrintDebug) {\n logger.info(` [\uD83E\uDE9D] hook check ${all.length}`)\n }\n for (const comp of all) {\n removeUnusedHooks(comp, shouldPrintDebug)\n }\n }\n\n tm.done(shouldPrintDebug === 'verbose')\n\n return res\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["projectInfo", "_a", "target", "traverse", "out", "evaluateAttribute", "isStaticObject", "createTernariesFromObjectProperties", "ternaries", "value", "splitVariants", "variants", "expandStylesWithoutVariants", "mergeStyles", "prev", "res", "key"]
|
|
7
7
|
}
|
|
@@ -1,2 +1,65 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var ensureImportingConcat_exports = {};
|
|
30
|
+
__export(ensureImportingConcat_exports, {
|
|
31
|
+
ensureImportingConcat: () => ensureImportingConcat
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(ensureImportingConcat_exports);
|
|
34
|
+
var t = __toESM(require("@babel/types"));
|
|
35
|
+
const importConcatPkg = "@tamagui/helpers";
|
|
36
|
+
function ensureImportingConcat(path) {
|
|
37
|
+
const bodyPath = path.get("body");
|
|
38
|
+
const imported = bodyPath.find(
|
|
39
|
+
(x) => x.isImportDeclaration() && x.node.source.value === importConcatPkg
|
|
40
|
+
);
|
|
41
|
+
const importSpecifier = t.importSpecifier(
|
|
42
|
+
t.identifier("concatClassName"),
|
|
43
|
+
t.identifier("concatClassName")
|
|
44
|
+
);
|
|
45
|
+
if (!imported) {
|
|
46
|
+
path.node.body.push(
|
|
47
|
+
t.importDeclaration([importSpecifier], t.stringLiteral(importConcatPkg))
|
|
48
|
+
);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const specifiers = imported.node.specifiers;
|
|
52
|
+
const alreadyImported = specifiers.some(
|
|
53
|
+
(x) => t.isImportSpecifier(x) && t.isIdentifier(x.imported) && x.imported.name === "concatClassName"
|
|
54
|
+
);
|
|
55
|
+
if (!alreadyImported) {
|
|
56
|
+
specifiers.push(
|
|
57
|
+
t.importSpecifier(t.identifier("concatClassName"), t.identifier("concatClassName"))
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
62
|
+
0 && (module.exports = {
|
|
63
|
+
ensureImportingConcat
|
|
64
|
+
});
|
|
2
65
|
//# sourceMappingURL=ensureImportingConcat.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/ensureImportingConcat.ts"],
|
|
4
4
|
"sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nconst importConcatPkg = '@tamagui/helpers'\n\nexport function ensureImportingConcat(path: NodePath<t.Program>) {\n const bodyPath = path.get('body')\n const imported: NodePath<t.ImportDeclaration> | undefined = bodyPath.find(\n (x) => x.isImportDeclaration() && x.node.source.value === importConcatPkg\n ) as any\n const importSpecifier = t.importSpecifier(\n t.identifier('concatClassName'),\n t.identifier('concatClassName')\n )\n\n if (!imported) {\n path.node.body.push(\n t.importDeclaration([importSpecifier], t.stringLiteral(importConcatPkg))\n )\n return\n }\n\n const specifiers = imported.node.specifiers\n const alreadyImported = specifiers.some(\n (x) =>\n t.isImportSpecifier(x) &&\n t.isIdentifier(x.imported) &&\n x.imported.name === 'concatClassName'\n )\n\n if (!alreadyImported) {\n specifiers.push(\n t.importSpecifier(t.identifier('concatClassName'), t.identifier('concatClassName'))\n )\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": [
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,QAAmB;AAEnB,MAAM,kBAAkB;AAEjB,SAAS,sBAAsB,MAA2B;AAC/D,QAAM,WAAW,KAAK,IAAI,MAAM;AAChC,QAAM,WAAsD,SAAS;AAAA,IACnE,CAAC,MAAM,EAAE,oBAAoB,KAAK,EAAE,KAAK,OAAO,UAAU;AAAA,EAC5D;AACA,QAAM,kBAAkB,EAAE;AAAA,IACxB,EAAE,WAAW,iBAAiB;AAAA,IAC9B,EAAE,WAAW,iBAAiB;AAAA,EAChC;AAEA,MAAI,CAAC,UAAU;AACb,SAAK,KAAK,KAAK;AAAA,MACb,EAAE,kBAAkB,CAAC,eAAe,GAAG,EAAE,cAAc,eAAe,CAAC;AAAA,IACzE;AACA;AAAA,EACF;AAEA,QAAM,aAAa,SAAS,KAAK;AACjC,QAAM,kBAAkB,WAAW;AAAA,IACjC,CAAC,MACC,EAAE,kBAAkB,CAAC,KACrB,EAAE,aAAa,EAAE,QAAQ,KACzB,EAAE,SAAS,SAAS;AAAA,EACxB;AAEA,MAAI,CAAC,iBAAiB;AACpB,eAAW;AAAA,MACT,EAAE,gBAAgB,EAAE,WAAW,iBAAiB,GAAG,EAAE,WAAW,iBAAiB,CAAC;AAAA,IACpF;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,131 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var evaluateAstNode_exports = {};
|
|
30
|
+
__export(evaluateAstNode_exports, {
|
|
31
|
+
evaluateAstNode: () => evaluateAstNode
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(evaluateAstNode_exports);
|
|
34
|
+
var t = __toESM(require("@babel/types"));
|
|
35
|
+
function evaluateAstNode(exprNode, evalFn, shouldPrintDebug) {
|
|
36
|
+
if (exprNode === void 0) {
|
|
37
|
+
return void 0;
|
|
38
|
+
}
|
|
39
|
+
if (exprNode === null) {
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
if (t.isJSXExpressionContainer(exprNode)) {
|
|
43
|
+
return evaluateAstNode(exprNode.expression);
|
|
44
|
+
}
|
|
45
|
+
if (t.isObjectExpression(exprNode)) {
|
|
46
|
+
const ret = {};
|
|
47
|
+
for (let idx = -1, len = exprNode.properties.length; ++idx < len; ) {
|
|
48
|
+
const value = exprNode.properties[idx];
|
|
49
|
+
if (!t.isObjectProperty(value)) {
|
|
50
|
+
throw new Error("evaluateAstNode can only evaluate object properties");
|
|
51
|
+
}
|
|
52
|
+
let key;
|
|
53
|
+
if (value.computed) {
|
|
54
|
+
if (typeof evalFn !== "function") {
|
|
55
|
+
throw new Error(
|
|
56
|
+
"evaluateAstNode does not support computed keys unless an eval function is provided"
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
key = evaluateAstNode(value.key, evalFn);
|
|
60
|
+
} else if (t.isIdentifier(value.key)) {
|
|
61
|
+
key = value.key.name;
|
|
62
|
+
} else if (t.isStringLiteral(value.key) || t.isNumericLiteral(value.key)) {
|
|
63
|
+
key = value.key.value;
|
|
64
|
+
} else {
|
|
65
|
+
throw new Error("Unsupported key type: " + value.key.type);
|
|
66
|
+
}
|
|
67
|
+
if (typeof key !== "string" && typeof key !== "number") {
|
|
68
|
+
throw new Error("key must be either a string or a number");
|
|
69
|
+
}
|
|
70
|
+
ret[key] = evaluateAstNode(value.value, evalFn);
|
|
71
|
+
}
|
|
72
|
+
return ret;
|
|
73
|
+
}
|
|
74
|
+
if (t.isArrayExpression(exprNode)) {
|
|
75
|
+
return exprNode.elements.map((x) => {
|
|
76
|
+
return evaluateAstNode(x, evalFn);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
if (t.isUnaryExpression(exprNode) && exprNode.operator === "-") {
|
|
80
|
+
const ret = evaluateAstNode(exprNode.argument, evalFn);
|
|
81
|
+
if (ret == null) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return -ret;
|
|
85
|
+
}
|
|
86
|
+
if (t.isTemplateLiteral(exprNode)) {
|
|
87
|
+
if (typeof evalFn !== "function") {
|
|
88
|
+
throw new Error(
|
|
89
|
+
"evaluateAstNode does not support template literals unless an eval function is provided"
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
let ret = "";
|
|
93
|
+
for (let idx = -1, len = exprNode.quasis.length; ++idx < len; ) {
|
|
94
|
+
const quasi = exprNode.quasis[idx];
|
|
95
|
+
const expr = exprNode.expressions[idx];
|
|
96
|
+
ret += quasi.value.raw;
|
|
97
|
+
if (expr) {
|
|
98
|
+
ret += evaluateAstNode(expr, evalFn);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return ret;
|
|
102
|
+
}
|
|
103
|
+
if (t.isNullLiteral(exprNode)) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (t.isNumericLiteral(exprNode) || t.isStringLiteral(exprNode) || t.isBooleanLiteral(exprNode)) {
|
|
107
|
+
return exprNode.value;
|
|
108
|
+
}
|
|
109
|
+
if (t.isBinaryExpression(exprNode)) {
|
|
110
|
+
if (exprNode.operator === "+") {
|
|
111
|
+
return evaluateAstNode(exprNode.left, evalFn) + evaluateAstNode(exprNode.right, evalFn);
|
|
112
|
+
} else if (exprNode.operator === "-") {
|
|
113
|
+
return evaluateAstNode(exprNode.left, evalFn) - evaluateAstNode(exprNode.right, evalFn);
|
|
114
|
+
} else if (exprNode.operator === "*") {
|
|
115
|
+
return evaluateAstNode(exprNode.left, evalFn) * evaluateAstNode(exprNode.right, evalFn);
|
|
116
|
+
} else if (exprNode.operator === "/") {
|
|
117
|
+
return evaluateAstNode(exprNode.left, evalFn) / evaluateAstNode(exprNode.right, evalFn);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (typeof evalFn !== "function") {
|
|
121
|
+
throw new Error(
|
|
122
|
+
"evaluateAstNode does not support non-literal values unless an eval function is provided"
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
return evalFn(exprNode);
|
|
126
|
+
}
|
|
127
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
128
|
+
0 && (module.exports = {
|
|
129
|
+
evaluateAstNode
|
|
130
|
+
});
|
|
2
131
|
//# sourceMappingURL=evaluateAstNode.js.map
|