@tamagui/static 1.13.2 → 1.13.4
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 +1 -52
- package/dist/cjs/constants.js.map +2 -2
- package/dist/cjs/extractor/accessSafe.js +1 -52
- package/dist/cjs/extractor/accessSafe.js.map +2 -2
- package/dist/cjs/extractor/babelParse.js +1 -66
- package/dist/cjs/extractor/babelParse.js.map +2 -2
- package/dist/cjs/extractor/buildClassName.js +1 -99
- package/dist/cjs/extractor/buildClassName.js.map +2 -2
- package/dist/cjs/extractor/bundle.js +1 -126
- package/dist/cjs/extractor/bundle.js.map +2 -2
- package/dist/cjs/extractor/createEvaluator.js +1 -86
- package/dist/cjs/extractor/createEvaluator.js.map +2 -2
- package/dist/cjs/extractor/createExtractor.js +15 -1630
- package/dist/cjs/extractor/createExtractor.js.map +2 -2
- package/dist/cjs/extractor/ensureImportingConcat.js +1 -64
- package/dist/cjs/extractor/ensureImportingConcat.js.map +2 -2
- package/dist/cjs/extractor/evaluateAstNode.js +1 -130
- package/dist/cjs/extractor/evaluateAstNode.js.map +2 -2
- package/dist/cjs/extractor/extractHelpers.js +1 -207
- package/dist/cjs/extractor/extractHelpers.js.map +2 -2
- package/dist/cjs/extractor/extractMediaStyle.js +1 -193
- package/dist/cjs/extractor/extractMediaStyle.js.map +2 -2
- package/dist/cjs/extractor/extractToClassNames.js +13 -413
- package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
- package/dist/cjs/extractor/findTopmostFunction.js +1 -43
- package/dist/cjs/extractor/findTopmostFunction.js.map +2 -2
- package/dist/cjs/extractor/generatedUid.js +1 -59
- package/dist/cjs/extractor/generatedUid.js.map +2 -2
- package/dist/cjs/extractor/getPrefixLogs.js +1 -31
- package/dist/cjs/extractor/getPrefixLogs.js.map +2 -2
- package/dist/cjs/extractor/getPropValueFromAttributes.js +1 -89
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/cjs/extractor/getSourceModule.js +1 -103
- package/dist/cjs/extractor/getSourceModule.js.map +2 -2
- package/dist/cjs/extractor/getStaticBindingsForScope.js +1 -225
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/cjs/extractor/hoistClassNames.js +1 -74
- package/dist/cjs/extractor/hoistClassNames.js.map +2 -2
- package/dist/cjs/extractor/literalToAst.js +1 -115
- package/dist/cjs/extractor/literalToAst.js.map +2 -2
- package/dist/cjs/extractor/loadFile.js +2 -20
- package/dist/cjs/extractor/loadFile.js.map +2 -2
- package/dist/cjs/extractor/loadTamagui.js +15 -432
- package/dist/cjs/extractor/loadTamagui.js.map +2 -2
- package/dist/cjs/extractor/logLines.js +3 -43
- package/dist/cjs/extractor/logLines.js.map +2 -2
- package/dist/cjs/extractor/normalizeTernaries.js +1 -85
- package/dist/cjs/extractor/normalizeTernaries.js.map +2 -2
- package/dist/cjs/extractor/removeUnusedHooks.js +1 -109
- package/dist/cjs/extractor/removeUnusedHooks.js.map +2 -2
- package/dist/cjs/extractor/timer.js +1 -52
- package/dist/cjs/extractor/timer.js.map +2 -2
- package/dist/cjs/extractor/validHTMLAttributes.js +1 -126
- package/dist/cjs/extractor/validHTMLAttributes.js.map +2 -2
- package/dist/cjs/getPragmaOptions.js +2 -67
- package/dist/cjs/getPragmaOptions.js.map +2 -2
- package/dist/cjs/helpers/memoize.js +1 -45
- package/dist/cjs/helpers/memoize.js.map +2 -2
- package/dist/cjs/index.js +1 -42
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/require.js +5 -81
- package/dist/cjs/require.js.map +2 -2
- package/dist/cjs/types.js +1 -16
- package/dist/cjs/types.js.map +2 -2
- package/dist/cjs/webpackPlugin.js +1 -34
- package/dist/cjs/webpackPlugin.js.map +2 -2
- package/dist/esm/constants.js +1 -14
- package/dist/esm/constants.js.map +2 -2
- package/dist/esm/constants.mjs +1 -14
- package/dist/esm/constants.mjs.map +2 -2
- package/dist/esm/extractor/accessSafe.js +1 -18
- package/dist/esm/extractor/accessSafe.js.map +2 -2
- package/dist/esm/extractor/accessSafe.mjs +1 -18
- package/dist/esm/extractor/accessSafe.mjs.map +2 -2
- package/dist/esm/extractor/babelParse.js +1 -31
- package/dist/esm/extractor/babelParse.js.map +2 -2
- package/dist/esm/extractor/babelParse.mjs +1 -31
- package/dist/esm/extractor/babelParse.mjs.map +2 -2
- package/dist/esm/extractor/buildClassName.js +1 -64
- package/dist/esm/extractor/buildClassName.js.map +2 -2
- package/dist/esm/extractor/buildClassName.mjs +1 -64
- package/dist/esm/extractor/buildClassName.mjs.map +2 -2
- package/dist/esm/extractor/bundle.js +1 -91
- package/dist/esm/extractor/bundle.js.map +2 -2
- package/dist/esm/extractor/bundle.mjs +1 -91
- package/dist/esm/extractor/bundle.mjs.map +2 -2
- package/dist/esm/extractor/createEvaluator.js +1 -51
- package/dist/esm/extractor/createEvaluator.js.map +2 -2
- package/dist/esm/extractor/createEvaluator.mjs +1 -51
- package/dist/esm/extractor/createEvaluator.mjs.map +2 -2
- package/dist/esm/extractor/createExtractor.js +15 -1613
- package/dist/esm/extractor/createExtractor.js.map +2 -2
- package/dist/esm/extractor/createExtractor.mjs +15 -1613
- package/dist/esm/extractor/createExtractor.mjs.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.js +1 -30
- package/dist/esm/extractor/ensureImportingConcat.js.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.mjs +1 -30
- package/dist/esm/extractor/ensureImportingConcat.mjs.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.js +1 -96
- package/dist/esm/extractor/evaluateAstNode.js.map +2 -2
- package/dist/esm/extractor/evaluateAstNode.mjs +1 -96
- package/dist/esm/extractor/evaluateAstNode.mjs.map +2 -2
- package/dist/esm/extractor/extractHelpers.js +1 -161
- package/dist/esm/extractor/extractHelpers.js.map +2 -2
- package/dist/esm/extractor/extractHelpers.mjs +1 -161
- package/dist/esm/extractor/extractHelpers.mjs.map +2 -2
- package/dist/esm/extractor/extractMediaStyle.js +1 -158
- package/dist/esm/extractor/extractMediaStyle.js.map +2 -2
- package/dist/esm/extractor/extractMediaStyle.mjs +1 -158
- package/dist/esm/extractor/extractMediaStyle.mjs.map +2 -2
- package/dist/esm/extractor/extractToClassNames.js +13 -379
- package/dist/esm/extractor/extractToClassNames.js.map +2 -2
- package/dist/esm/extractor/extractToClassNames.mjs +13 -379
- package/dist/esm/extractor/extractToClassNames.mjs.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.js +1 -19
- package/dist/esm/extractor/findTopmostFunction.js.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.mjs +1 -19
- package/dist/esm/extractor/findTopmostFunction.mjs.map +2 -2
- package/dist/esm/extractor/generatedUid.js +1 -25
- package/dist/esm/extractor/generatedUid.js.map +2 -2
- package/dist/esm/extractor/generatedUid.mjs +1 -25
- package/dist/esm/extractor/generatedUid.mjs.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.js +1 -7
- package/dist/esm/extractor/getPrefixLogs.js.map +2 -2
- package/dist/esm/extractor/getPrefixLogs.mjs +1 -7
- package/dist/esm/extractor/getPrefixLogs.mjs.map +2 -2
- package/dist/esm/extractor/getPropValueFromAttributes.js +1 -55
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/esm/extractor/getPropValueFromAttributes.mjs +1 -55
- package/dist/esm/extractor/getPropValueFromAttributes.mjs.map +2 -2
- package/dist/esm/extractor/getSourceModule.js +1 -69
- package/dist/esm/extractor/getSourceModule.js.map +2 -2
- package/dist/esm/extractor/getSourceModule.mjs +1 -69
- package/dist/esm/extractor/getSourceModule.mjs.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.js +1 -190
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/esm/extractor/getStaticBindingsForScope.mjs +1 -190
- package/dist/esm/extractor/getStaticBindingsForScope.mjs.map +2 -2
- package/dist/esm/extractor/hoistClassNames.js +1 -40
- package/dist/esm/extractor/hoistClassNames.js.map +2 -2
- package/dist/esm/extractor/hoistClassNames.mjs +1 -40
- package/dist/esm/extractor/hoistClassNames.mjs.map +2 -2
- package/dist/esm/extractor/literalToAst.js +1 -80
- package/dist/esm/extractor/literalToAst.js.map +2 -2
- package/dist/esm/extractor/literalToAst.mjs +1 -80
- package/dist/esm/extractor/literalToAst.mjs.map +2 -2
- package/dist/esm/extractor/loadFile.js +2 -19
- package/dist/esm/extractor/loadFile.js.map +2 -2
- package/dist/esm/extractor/loadFile.mjs +2 -19
- package/dist/esm/extractor/loadFile.mjs.map +2 -2
- package/dist/esm/extractor/loadTamagui.js +15 -396
- package/dist/esm/extractor/loadTamagui.js.map +2 -2
- package/dist/esm/extractor/loadTamagui.mjs +15 -396
- package/dist/esm/extractor/loadTamagui.mjs.map +2 -2
- package/dist/esm/extractor/logLines.js +3 -19
- package/dist/esm/extractor/logLines.js.map +2 -2
- package/dist/esm/extractor/logLines.mjs +3 -19
- package/dist/esm/extractor/logLines.mjs.map +2 -2
- package/dist/esm/extractor/normalizeTernaries.js +1 -51
- package/dist/esm/extractor/normalizeTernaries.js.map +2 -2
- package/dist/esm/extractor/normalizeTernaries.mjs +1 -51
- package/dist/esm/extractor/normalizeTernaries.mjs.map +2 -2
- package/dist/esm/extractor/removeUnusedHooks.js +1 -75
- package/dist/esm/extractor/removeUnusedHooks.js.map +2 -2
- package/dist/esm/extractor/removeUnusedHooks.mjs +1 -75
- package/dist/esm/extractor/removeUnusedHooks.mjs.map +2 -2
- package/dist/esm/extractor/timer.js +1 -28
- package/dist/esm/extractor/timer.js.map +2 -2
- package/dist/esm/extractor/timer.mjs +1 -28
- package/dist/esm/extractor/timer.mjs.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.js +1 -101
- package/dist/esm/extractor/validHTMLAttributes.js.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.mjs +1 -101
- package/dist/esm/extractor/validHTMLAttributes.mjs.map +2 -2
- package/dist/esm/getPragmaOptions.js +2 -43
- package/dist/esm/getPragmaOptions.js.map +2 -2
- package/dist/esm/getPragmaOptions.mjs +2 -43
- package/dist/esm/getPragmaOptions.mjs.map +2 -2
- package/dist/esm/helpers/memoize.js +1 -21
- package/dist/esm/helpers/memoize.js.map +2 -2
- package/dist/esm/helpers/memoize.mjs +1 -21
- package/dist/esm/helpers/memoize.mjs.map +2 -2
- package/dist/esm/index.js +1 -15
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/index.mjs +1 -15
- package/dist/esm/index.mjs.map +2 -2
- package/dist/esm/require.js +5 -55
- package/dist/esm/require.js.map +2 -2
- package/dist/esm/require.mjs +5 -55
- package/dist/esm/require.mjs.map +2 -2
- package/dist/esm/webpackPlugin.js +1 -10
- package/dist/esm/webpackPlugin.js.map +2 -2
- package/dist/esm/webpackPlugin.mjs +1 -10
- 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": ["projectInfo", "_a", "target", "out", "evaluateAttribute", "isStaticObject", "createTernariesFromObjectProperties", "ternaries", "value", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["basename", "relative", "traverse", "t", "expandStyles", "getSplitStyles", "mediaQueryConfig", "proxyThemeVariables", "pseudoDescriptors", "createDOMProps", "FAILED_EVAL", "createEvaluator", "createSafeEvaluator", "evaluateAstNode", "attrStr", "findComponentName", "getValidComponent", "getValidImport", "isPresent", "isValidImport", "objToStr", "findTopmostFunction", "cleanupBeforeExit", "getStaticBindingsForScope", "literalToAst", "loadTamagui", "loadTamaguiSync", "logLines", "normalizeTernaries", "removeUnusedHooks", "timer", "validHTMLAttributes", "UNTOUCHED_PROPS", "INLINE_EXTRACTABLE", "validHooks", "isAttr", "x", "createTernary", "hasLoggedBaseInfo", "createExtractor", "logger", "shouldAddDebugProp", "projectInfo", "loadSync", "props", "load", "f", "parseWithConfig", "components", "tamaguiConfig", "fileOrPath", "options", "_a", "config", "importsWhitelist", "evaluateVars", "sourcePath", "onExtractTag", "onStyleRule", "getFlattenedNode", "disable", "disableExtraction", "disableExtractInlineMedia", "disableExtractVariables", "disableDebugAttr", "disableExtractFoundComponents", "includeExtensions", "extractStyledDefinitions", "prefixLogs", "excludeProps", "target", "restProps", "shouldPrintDebug", "ext", "isValidStyleKey", "name", "staticConfig", "_b", "isTargetingHTML", "ogDebug", "tm", "propsWithFileInfo", "comp", "next", "info", "nameToInfo", "key", "firstThemeName", "firstTheme", "proxiedTheme", "themeAccessListeners", "defaultTheme", "cb", "body", "k", "doesUseValidImport", "hasImportedTheme", "importDeclarations", "bodyPath", "node", "moduleName", "valid", "specifier", "names", "isValidComponent", "getValidImportedComponent", "componentName", "importDeclaration", "dec", "spec", "couldntParse", "modifiedComponents", "bindingCache", "callTraverse", "shouldDisableExtraction", "programPath", "res", "path", "variableName", "parentNode", "parentName", "definition", "Component", "componentSkipProps", "skipped", "styles", "staticNamespace", "attemptEval", "attemptEvalSafe", "property", "out", "classNames", "rule", "cn", "val", "identifier", "rules", "traversePath", "ogAttributes", "attr", "closingElement", "binding", "modulePath", "component", "originalNodeName", "filePath", "lineNumbers", "codePosition", "debugPropValue", "n", "evaluateAttribute", "attribute", "arg", "conditional", "test", "alt", "cons", "side", "isStaticObject", "createTernariesFromObjectProperties", "ternary", "inlined", "inlineProps", "deoptProps", "shouldDeopt", "shortname", "expression", "ternaries", "value", "valuePath", "remove", "p", "styleValue", "variants", "keys", "isTextView", "didInline", "attributes", "inlineWhenUnflattened", "inlineWhenUnflattenedOGVals", "hasSetOptimized", "variantValues", "operator", "left", "right", "lVal", "rVal", "addBinaryConditional", "staticConditional", "getStaticConditional", "staticLogical", "getStaticLogical", "staticExpr", "cond", "aVal", "cVal", "type", "err", "obj", "prop", "propName", "ternaryPartial", "mediaQueryKey", "truthy", "falsy", "consequent", "splitVariants", "style", "expandStylesWithoutVariants", "mergeStyles", "prev", "validStyles", "tagName", "flatNode", "attrs", "parentFn", "cur", "normalized", "alternate", "rest", "hasSpread", "hasOnlyStringChildren", "themeVal", "isStaticObjectVariant", "canFlattenProps", "shouldFlatten", "shouldWrapTheme", "usedThemeKeys", "defaultStyleAttrs", "state", "foundStaticProps", "completeProps", "acc", "fullKey", "getStyles", "debugName", "outStyle", "getStyleError", "a", "c", "existingStyleKeys", "i", "index", "all"]
|
|
7
7
|
}
|
|
@@ -1,31 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const importConcatPkg = "@tamagui/helpers";
|
|
3
|
-
function ensureImportingConcat(path) {
|
|
4
|
-
const bodyPath = path.get("body");
|
|
5
|
-
const imported = bodyPath.find(
|
|
6
|
-
(x) => x.isImportDeclaration() && x.node.source.value === importConcatPkg
|
|
7
|
-
);
|
|
8
|
-
const importSpecifier = t.importSpecifier(
|
|
9
|
-
t.identifier("concatClassName"),
|
|
10
|
-
t.identifier("concatClassName")
|
|
11
|
-
);
|
|
12
|
-
if (!imported) {
|
|
13
|
-
path.node.body.push(
|
|
14
|
-
t.importDeclaration([importSpecifier], t.stringLiteral(importConcatPkg))
|
|
15
|
-
);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const specifiers = imported.node.specifiers;
|
|
19
|
-
const alreadyImported = specifiers.some(
|
|
20
|
-
(x) => t.isImportSpecifier(x) && t.isIdentifier(x.imported) && x.imported.name === "concatClassName"
|
|
21
|
-
);
|
|
22
|
-
if (!alreadyImported) {
|
|
23
|
-
specifiers.push(
|
|
24
|
-
t.importSpecifier(t.identifier("concatClassName"), t.identifier("concatClassName"))
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export {
|
|
29
|
-
ensureImportingConcat
|
|
30
|
-
};
|
|
1
|
+
import*as e from"@babel/types";const a="@tamagui/helpers";function p(t){const o=t.get("body").find(i=>i.isImportDeclaration()&&i.node.source.value===a),n=e.importSpecifier(e.identifier("concatClassName"),e.identifier("concatClassName"));if(!o){t.node.body.push(e.importDeclaration([n],e.stringLiteral(a)));return}const r=o.node.specifiers;r.some(i=>e.isImportSpecifier(i)&&e.isIdentifier(i.imported)&&i.imported.name==="concatClassName")||r.push(e.importSpecifier(e.identifier("concatClassName"),e.identifier("concatClassName")))}export{p as ensureImportingConcat};
|
|
31
2
|
//# 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": "AACA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AACA,UAAYA,MAAO,eAEnB,MAAMC,EAAkB,mBAEjB,SAASC,EAAsBC,EAA2B,CAE/D,MAAMC,EADWD,EAAK,IAAI,MAAM,EACqC,KAClEE,GAAMA,EAAE,oBAAoB,GAAKA,EAAE,KAAK,OAAO,QAAUJ,CAC5D,EACMK,EAAkBN,EAAE,gBACxBA,EAAE,WAAW,iBAAiB,EAC9BA,EAAE,WAAW,iBAAiB,CAChC,EAEA,GAAI,CAACI,EAAU,CACbD,EAAK,KAAK,KAAK,KACbH,EAAE,kBAAkB,CAACM,CAAe,EAAGN,EAAE,cAAcC,CAAe,CAAC,CACzE,EACA,MACF,CAEA,MAAMM,EAAaH,EAAS,KAAK,WACTG,EAAW,KAChCF,GACCL,EAAE,kBAAkBK,CAAC,GACrBL,EAAE,aAAaK,EAAE,QAAQ,GACzBA,EAAE,SAAS,OAAS,iBACxB,GAGEE,EAAW,KACTP,EAAE,gBAAgBA,EAAE,WAAW,iBAAiB,EAAGA,EAAE,WAAW,iBAAiB,CAAC,CACpF,CAEJ",
|
|
6
|
+
"names": ["t", "importConcatPkg", "ensureImportingConcat", "path", "imported", "x", "importSpecifier", "specifiers"]
|
|
7
7
|
}
|
|
@@ -1,31 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
const importConcatPkg = "@tamagui/helpers";
|
|
3
|
-
function ensureImportingConcat(path) {
|
|
4
|
-
const bodyPath = path.get("body");
|
|
5
|
-
const imported = bodyPath.find(
|
|
6
|
-
(x) => x.isImportDeclaration() && x.node.source.value === importConcatPkg
|
|
7
|
-
);
|
|
8
|
-
const importSpecifier = t.importSpecifier(
|
|
9
|
-
t.identifier("concatClassName"),
|
|
10
|
-
t.identifier("concatClassName")
|
|
11
|
-
);
|
|
12
|
-
if (!imported) {
|
|
13
|
-
path.node.body.push(
|
|
14
|
-
t.importDeclaration([importSpecifier], t.stringLiteral(importConcatPkg))
|
|
15
|
-
);
|
|
16
|
-
return;
|
|
17
|
-
}
|
|
18
|
-
const specifiers = imported.node.specifiers;
|
|
19
|
-
const alreadyImported = specifiers.some(
|
|
20
|
-
(x) => t.isImportSpecifier(x) && t.isIdentifier(x.imported) && x.imported.name === "concatClassName"
|
|
21
|
-
);
|
|
22
|
-
if (!alreadyImported) {
|
|
23
|
-
specifiers.push(
|
|
24
|
-
t.importSpecifier(t.identifier("concatClassName"), t.identifier("concatClassName"))
|
|
25
|
-
);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
export {
|
|
29
|
-
ensureImportingConcat
|
|
30
|
-
};
|
|
1
|
+
import*as e from"@babel/types";const a="@tamagui/helpers";function p(t){const o=t.get("body").find(i=>i.isImportDeclaration()&&i.node.source.value===a),n=e.importSpecifier(e.identifier("concatClassName"),e.identifier("concatClassName"));if(!o){t.node.body.push(e.importDeclaration([n],e.stringLiteral(a)));return}const r=o.node.specifiers;r.some(i=>e.isImportSpecifier(i)&&e.isIdentifier(i.imported)&&i.imported.name==="concatClassName")||r.push(e.importSpecifier(e.identifier("concatClassName"),e.identifier("concatClassName")))}export{p as ensureImportingConcat};
|
|
31
2
|
//# sourceMappingURL=ensureImportingConcat.mjs.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": "AACA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AACA,UAAYA,MAAO,eAEnB,MAAMC,EAAkB,mBAEjB,SAASC,EAAsBC,EAA2B,CAE/D,MAAMC,EADWD,EAAK,IAAI,MAAM,EACqC,KAClEE,GAAMA,EAAE,oBAAoB,GAAKA,EAAE,KAAK,OAAO,QAAUJ,CAC5D,EACMK,EAAkBN,EAAE,gBACxBA,EAAE,WAAW,iBAAiB,EAC9BA,EAAE,WAAW,iBAAiB,CAChC,EAEA,GAAI,CAACI,EAAU,CACbD,EAAK,KAAK,KAAK,KACbH,EAAE,kBAAkB,CAACM,CAAe,EAAGN,EAAE,cAAcC,CAAe,CAAC,CACzE,EACA,MACF,CAEA,MAAMM,EAAaH,EAAS,KAAK,WACTG,EAAW,KAChCF,GACCL,EAAE,kBAAkBK,CAAC,GACrBL,EAAE,aAAaK,EAAE,QAAQ,GACzBA,EAAE,SAAS,OAAS,iBACxB,GAGEE,EAAW,KACTP,EAAE,gBAAgBA,EAAE,WAAW,iBAAiB,EAAGA,EAAE,WAAW,iBAAiB,CAAC,CACpF,CAEJ",
|
|
6
|
+
"names": ["t", "importConcatPkg", "ensureImportingConcat", "path", "imported", "x", "importSpecifier", "specifiers"]
|
|
7
7
|
}
|
|
@@ -1,97 +1,2 @@
|
|
|
1
|
-
import
|
|
2
|
-
function evaluateAstNode(exprNode, evalFn, shouldPrintDebug) {
|
|
3
|
-
if (exprNode === void 0) {
|
|
4
|
-
return void 0;
|
|
5
|
-
}
|
|
6
|
-
if (exprNode === null) {
|
|
7
|
-
return true;
|
|
8
|
-
}
|
|
9
|
-
if (t.isJSXExpressionContainer(exprNode)) {
|
|
10
|
-
return evaluateAstNode(exprNode.expression);
|
|
11
|
-
}
|
|
12
|
-
if (t.isObjectExpression(exprNode)) {
|
|
13
|
-
const ret = {};
|
|
14
|
-
for (let idx = -1, len = exprNode.properties.length; ++idx < len; ) {
|
|
15
|
-
const value = exprNode.properties[idx];
|
|
16
|
-
if (!t.isObjectProperty(value)) {
|
|
17
|
-
throw new Error("evaluateAstNode can only evaluate object properties");
|
|
18
|
-
}
|
|
19
|
-
let key;
|
|
20
|
-
if (value.computed) {
|
|
21
|
-
if (typeof evalFn !== "function") {
|
|
22
|
-
throw new Error(
|
|
23
|
-
"evaluateAstNode does not support computed keys unless an eval function is provided"
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
key = evaluateAstNode(value.key, evalFn);
|
|
27
|
-
} else if (t.isIdentifier(value.key)) {
|
|
28
|
-
key = value.key.name;
|
|
29
|
-
} else if (t.isStringLiteral(value.key) || t.isNumericLiteral(value.key)) {
|
|
30
|
-
key = value.key.value;
|
|
31
|
-
} else {
|
|
32
|
-
throw new Error("Unsupported key type: " + value.key.type);
|
|
33
|
-
}
|
|
34
|
-
if (typeof key !== "string" && typeof key !== "number") {
|
|
35
|
-
throw new Error("key must be either a string or a number");
|
|
36
|
-
}
|
|
37
|
-
ret[key] = evaluateAstNode(value.value, evalFn);
|
|
38
|
-
}
|
|
39
|
-
return ret;
|
|
40
|
-
}
|
|
41
|
-
if (t.isArrayExpression(exprNode)) {
|
|
42
|
-
return exprNode.elements.map((x) => {
|
|
43
|
-
return evaluateAstNode(x, evalFn);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
if (t.isUnaryExpression(exprNode) && exprNode.operator === "-") {
|
|
47
|
-
const ret = evaluateAstNode(exprNode.argument, evalFn);
|
|
48
|
-
if (ret == null) {
|
|
49
|
-
return null;
|
|
50
|
-
}
|
|
51
|
-
return -ret;
|
|
52
|
-
}
|
|
53
|
-
if (t.isTemplateLiteral(exprNode)) {
|
|
54
|
-
if (typeof evalFn !== "function") {
|
|
55
|
-
throw new Error(
|
|
56
|
-
"evaluateAstNode does not support template literals unless an eval function is provided"
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
let ret = "";
|
|
60
|
-
for (let idx = -1, len = exprNode.quasis.length; ++idx < len; ) {
|
|
61
|
-
const quasi = exprNode.quasis[idx];
|
|
62
|
-
const expr = exprNode.expressions[idx];
|
|
63
|
-
ret += quasi.value.raw;
|
|
64
|
-
if (expr) {
|
|
65
|
-
ret += evaluateAstNode(expr, evalFn);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return ret;
|
|
69
|
-
}
|
|
70
|
-
if (t.isNullLiteral(exprNode)) {
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
if (t.isNumericLiteral(exprNode) || t.isStringLiteral(exprNode) || t.isBooleanLiteral(exprNode)) {
|
|
74
|
-
return exprNode.value;
|
|
75
|
-
}
|
|
76
|
-
if (t.isBinaryExpression(exprNode)) {
|
|
77
|
-
if (exprNode.operator === "+") {
|
|
78
|
-
return evaluateAstNode(exprNode.left, evalFn) + evaluateAstNode(exprNode.right, evalFn);
|
|
79
|
-
} else if (exprNode.operator === "-") {
|
|
80
|
-
return evaluateAstNode(exprNode.left, evalFn) - evaluateAstNode(exprNode.right, evalFn);
|
|
81
|
-
} else if (exprNode.operator === "*") {
|
|
82
|
-
return evaluateAstNode(exprNode.left, evalFn) * evaluateAstNode(exprNode.right, evalFn);
|
|
83
|
-
} else if (exprNode.operator === "/") {
|
|
84
|
-
return evaluateAstNode(exprNode.left, evalFn) / evaluateAstNode(exprNode.right, evalFn);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (typeof evalFn !== "function") {
|
|
88
|
-
throw new Error(
|
|
89
|
-
"evaluateAstNode does not support non-literal values unless an eval function is provided"
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
return evalFn(exprNode);
|
|
93
|
-
}
|
|
94
|
-
export {
|
|
95
|
-
evaluateAstNode
|
|
96
|
-
};
|
|
1
|
+
import*as i from"@babel/types";function e(t,r,f){if(t!==void 0){if(t===null)return!0;if(i.isJSXExpressionContainer(t))return e(t.expression);if(i.isObjectExpression(t)){const s={};for(let o=-1,l=t.properties.length;++o<l;){const n=t.properties[o];if(!i.isObjectProperty(n))throw new Error("evaluateAstNode can only evaluate object properties");let u;if(n.computed){if(typeof r!="function")throw new Error("evaluateAstNode does not support computed keys unless an eval function is provided");u=e(n.key,r)}else if(i.isIdentifier(n.key))u=n.key.name;else if(i.isStringLiteral(n.key)||i.isNumericLiteral(n.key))u=n.key.value;else throw new Error("Unsupported key type: "+n.key.type);if(typeof u!="string"&&typeof u!="number")throw new Error("key must be either a string or a number");s[u]=e(n.value,r)}return s}if(i.isArrayExpression(t))return t.elements.map(s=>e(s,r));if(i.isUnaryExpression(t)&&t.operator==="-"){const s=e(t.argument,r);return s==null?null:-s}if(i.isTemplateLiteral(t)){if(typeof r!="function")throw new Error("evaluateAstNode does not support template literals unless an eval function is provided");let s="";for(let o=-1,l=t.quasis.length;++o<l;){const n=t.quasis[o],u=t.expressions[o];s+=n.value.raw,u&&(s+=e(u,r))}return s}if(i.isNullLiteral(t))return null;if(i.isNumericLiteral(t)||i.isStringLiteral(t)||i.isBooleanLiteral(t))return t.value;if(i.isBinaryExpression(t)){if(t.operator==="+")return e(t.left,r)+e(t.right,r);if(t.operator==="-")return e(t.left,r)-e(t.right,r);if(t.operator==="*")return e(t.left,r)*e(t.right,r);if(t.operator==="/")return e(t.left,r)/e(t.right,r)}if(typeof r!="function")throw new Error("evaluateAstNode does not support non-literal values unless an eval function is provided");return r(t)}}export{e as evaluateAstNode};
|
|
97
2
|
//# sourceMappingURL=evaluateAstNode.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/evaluateAstNode.ts"],
|
|
4
4
|
"sourcesContent": ["import * as t from '@babel/types'\n\nexport function evaluateAstNode(\n exprNode: t.Node | undefined | null,\n evalFn?: (node: t.Node) => any,\n shouldPrintDebug?: boolean | 'verbose'\n): any {\n if (exprNode === undefined) {\n return undefined\n }\n\n // null === boolean true (at least in our use cases for jsx eval)\n if (exprNode === null) {\n return true\n }\n\n if (t.isJSXExpressionContainer(exprNode)) {\n return evaluateAstNode(exprNode.expression)\n }\n\n // loop through ObjectExpression keys\n if (t.isObjectExpression(exprNode)) {\n const ret: Record<string, any> = {}\n for (let idx = -1, len = exprNode.properties.length; ++idx < len; ) {\n const value = exprNode.properties[idx]\n\n if (!t.isObjectProperty(value)) {\n throw new Error('evaluateAstNode can only evaluate object properties')\n }\n\n let key: string | number | null | undefined | boolean\n if (value.computed) {\n if (typeof evalFn !== 'function') {\n throw new Error(\n 'evaluateAstNode does not support computed keys unless an eval function is provided'\n )\n }\n key = evaluateAstNode(value.key, evalFn)\n } else if (t.isIdentifier(value.key)) {\n key = value.key.name\n } else if (t.isStringLiteral(value.key) || t.isNumericLiteral(value.key)) {\n key = value.key.value\n } else {\n throw new Error('Unsupported key type: ' + value.key.type)\n }\n\n if (typeof key !== 'string' && typeof key !== 'number') {\n throw new Error('key must be either a string or a number')\n }\n\n ret[key] = evaluateAstNode(value.value, evalFn)\n }\n return ret\n }\n\n if (t.isArrayExpression(exprNode)) {\n return exprNode.elements.map((x) => {\n return evaluateAstNode(x as any, evalFn)\n })\n }\n\n if (t.isUnaryExpression(exprNode) && exprNode.operator === '-') {\n const ret = evaluateAstNode(exprNode.argument, evalFn)\n if (ret == null) {\n return null\n }\n return -ret\n }\n\n if (t.isTemplateLiteral(exprNode)) {\n if (typeof evalFn !== 'function') {\n throw new Error(\n 'evaluateAstNode does not support template literals unless an eval function is provided'\n )\n }\n\n let ret = ''\n for (let idx = -1, len = exprNode.quasis.length; ++idx < len; ) {\n const quasi = exprNode.quasis[idx]\n const expr = exprNode.expressions[idx]\n ret += quasi.value.raw\n if (expr) {\n ret += evaluateAstNode(expr, evalFn)\n }\n }\n return ret\n }\n\n // In the interest of representing the \"evaluated\" prop\n // as the user intended, we support negative null. Why not.\n if (t.isNullLiteral(exprNode)) {\n return null\n }\n\n if (t.isNumericLiteral(exprNode) || t.isStringLiteral(exprNode) || t.isBooleanLiteral(exprNode)) {\n // In the interest of representing the \"evaluated\" prop\n // as the user intended, we support negative null. Why not.\n return exprNode.value\n }\n\n if (t.isBinaryExpression(exprNode)) {\n if (exprNode.operator === '+') {\n return evaluateAstNode(exprNode.left, evalFn) + evaluateAstNode(exprNode.right, evalFn)\n } else if (exprNode.operator === '-') {\n return evaluateAstNode(exprNode.left, evalFn) - evaluateAstNode(exprNode.right, evalFn)\n } else if (exprNode.operator === '*') {\n return evaluateAstNode(exprNode.left, evalFn) * evaluateAstNode(exprNode.right, evalFn)\n } else if (exprNode.operator === '/') {\n return evaluateAstNode(exprNode.left, evalFn) / evaluateAstNode(exprNode.right, evalFn)\n }\n }\n\n // if we've made it this far, the value has to be evaluated\n if (typeof evalFn !== 'function') {\n throw new Error(\n 'evaluateAstNode does not support non-literal values unless an eval function is provided'\n )\n }\n\n return evalFn(exprNode)\n}\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "AAAA,UAAYA,MAAO,eAEZ,SAASC,EACdC,EACAC,EACAC,EACK,CACL,GAAIF,IAAa,OAKjB,IAAIA,IAAa,KACf,MAAO,GAGT,GAAIF,EAAE,yBAAyBE,CAAQ,EACrC,OAAOD,EAAgBC,EAAS,UAAU,EAI5C,GAAIF,EAAE,mBAAmBE,CAAQ,EAAG,CAClC,MAAMG,EAA2B,CAAC,EAClC,QAASC,EAAM,GAAIC,EAAML,EAAS,WAAW,OAAQ,EAAEI,EAAMC,GAAO,CAClE,MAAMC,EAAQN,EAAS,WAAWI,CAAG,EAErC,GAAI,CAACN,EAAE,iBAAiBQ,CAAK,EAC3B,MAAM,IAAI,MAAM,qDAAqD,EAGvE,IAAIC,EACJ,GAAID,EAAM,SAAU,CAClB,GAAI,OAAOL,GAAW,WACpB,MAAM,IAAI,MACR,oFACF,EAEFM,EAAMR,EAAgBO,EAAM,IAAKL,CAAM,CACzC,SAAWH,EAAE,aAAaQ,EAAM,GAAG,EACjCC,EAAMD,EAAM,IAAI,aACPR,EAAE,gBAAgBQ,EAAM,GAAG,GAAKR,EAAE,iBAAiBQ,EAAM,GAAG,EACrEC,EAAMD,EAAM,IAAI,UAEhB,OAAM,IAAI,MAAM,yBAA2BA,EAAM,IAAI,IAAI,EAG3D,GAAI,OAAOC,GAAQ,UAAY,OAAOA,GAAQ,SAC5C,MAAM,IAAI,MAAM,yCAAyC,EAG3DJ,EAAII,CAAG,EAAIR,EAAgBO,EAAM,MAAOL,CAAM,CAChD,CACA,OAAOE,CACT,CAEA,GAAIL,EAAE,kBAAkBE,CAAQ,EAC9B,OAAOA,EAAS,SAAS,IAAKQ,GACrBT,EAAgBS,EAAUP,CAAM,CACxC,EAGH,GAAIH,EAAE,kBAAkBE,CAAQ,GAAKA,EAAS,WAAa,IAAK,CAC9D,MAAMG,EAAMJ,EAAgBC,EAAS,SAAUC,CAAM,EACrD,OAAIE,GAAO,KACF,KAEF,CAACA,CACV,CAEA,GAAIL,EAAE,kBAAkBE,CAAQ,EAAG,CACjC,GAAI,OAAOC,GAAW,WACpB,MAAM,IAAI,MACR,wFACF,EAGF,IAAIE,EAAM,GACV,QAASC,EAAM,GAAIC,EAAML,EAAS,OAAO,OAAQ,EAAEI,EAAMC,GAAO,CAC9D,MAAMI,EAAQT,EAAS,OAAOI,CAAG,EAC3BM,EAAOV,EAAS,YAAYI,CAAG,EACrCD,GAAOM,EAAM,MAAM,IACfC,IACFP,GAAOJ,EAAgBW,EAAMT,CAAM,EAEvC,CACA,OAAOE,CACT,CAIA,GAAIL,EAAE,cAAcE,CAAQ,EAC1B,OAAO,KAGT,GAAIF,EAAE,iBAAiBE,CAAQ,GAAKF,EAAE,gBAAgBE,CAAQ,GAAKF,EAAE,iBAAiBE,CAAQ,EAG5F,OAAOA,EAAS,MAGlB,GAAIF,EAAE,mBAAmBE,CAAQ,EAAG,CAClC,GAAIA,EAAS,WAAa,IACxB,OAAOD,EAAgBC,EAAS,KAAMC,CAAM,EAAIF,EAAgBC,EAAS,MAAOC,CAAM,EACjF,GAAID,EAAS,WAAa,IAC/B,OAAOD,EAAgBC,EAAS,KAAMC,CAAM,EAAIF,EAAgBC,EAAS,MAAOC,CAAM,EACjF,GAAID,EAAS,WAAa,IAC/B,OAAOD,EAAgBC,EAAS,KAAMC,CAAM,EAAIF,EAAgBC,EAAS,MAAOC,CAAM,EACjF,GAAID,EAAS,WAAa,IAC/B,OAAOD,EAAgBC,EAAS,KAAMC,CAAM,EAAIF,EAAgBC,EAAS,MAAOC,CAAM,CAE1F,CAGA,GAAI,OAAOA,GAAW,WACpB,MAAM,IAAI,MACR,yFACF,EAGF,OAAOA,EAAOD,CAAQ,EACxB",
|
|
6
|
+
"names": ["t", "evaluateAstNode", "exprNode", "evalFn", "shouldPrintDebug", "ret", "idx", "len", "value", "key", "x", "quasi", "expr"]
|
|
7
7
|
}
|