@tamagui/static 2.7.7 → 3.0.0-beta.643.1
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/check-dep-versions.cjs +355 -0
- package/dist/cjs/checkDeps.cjs +302 -0
- package/dist/cjs/compiler.cjs +286 -0
- package/dist/cjs/compilerHost.cjs +1695 -0
- package/dist/cjs/constants.cjs +33 -0
- package/dist/cjs/domStructuralPass.cjs +112 -0
- package/dist/cjs/exports.cjs +42 -0
- package/dist/cjs/extractor/addLocalExports.cjs +64 -0
- package/dist/cjs/extractor/bundle.cjs +203 -0
- package/dist/cjs/extractor/bundleConfig.cjs +747 -0
- package/dist/cjs/extractor/concatClassName.cjs +117 -0
- package/dist/cjs/extractor/detectModuleFormat.cjs +54 -0
- package/dist/cjs/extractor/esbuildAliasPlugin.cjs +47 -0
- package/dist/cjs/extractor/esbuildTsconfigPaths.cjs +92 -0
- package/dist/cjs/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +38 -0
- package/dist/cjs/extractor/loadTamagui.cjs +344 -0
- package/dist/cjs/extractor/regenerateConfig.cjs +161 -0
- package/dist/cjs/extractor/watchTamaguiConfig.cjs +64 -0
- package/dist/cjs/getPragmaOptions.cjs +67 -0
- package/dist/cjs/helpers/memoize.cjs +42 -0
- package/dist/cjs/helpers/requireTamaguiCore.cjs +40 -0
- package/dist/cjs/index.cjs +34 -0
- package/dist/cjs/registerRequire.cjs +220 -0
- package/dist/cjs/server.cjs +66 -0
- package/dist/cjs/staticEvaluationIgnoredModules.cjs +86 -0
- package/dist/cjs/types.cjs +17 -0
- package/dist/cjs/zero/artifact.cjs +145 -0
- package/dist/cjs/zero/graph.cjs +209 -0
- package/dist/cjs/zero/identity.cjs +61 -0
- package/dist/cjs/zero/index.cjs +26 -0
- package/dist/cjs/zero/islands.cjs +232 -0
- package/dist/cjs/zero/options.cjs +163 -0
- package/dist/cjs/zero/ownership.cjs +79 -0
- package/dist/cjs/zero/theme.cjs +328 -0
- package/dist/cjs/zero/transform.cjs +203 -0
- package/dist/esm/check-dep-versions.mjs +329 -0
- package/dist/esm/check-dep-versions.mjs.map +1 -0
- package/dist/esm/checkDeps.mjs +279 -0
- package/dist/esm/checkDeps.mjs.map +1 -0
- package/dist/esm/compiler.mjs +255 -0
- package/dist/esm/compiler.mjs.map +1 -0
- package/dist/esm/compilerHost.mjs +1675 -0
- package/dist/esm/compilerHost.mjs.map +1 -0
- package/dist/esm/constants.mjs +7 -0
- package/dist/esm/constants.mjs.map +1 -0
- package/dist/esm/domStructuralPass.mjs +92 -0
- package/dist/esm/domStructuralPass.mjs.map +1 -0
- package/dist/esm/exports.mjs +26 -0
- package/dist/esm/extractor/addLocalExports.mjs +44 -0
- package/dist/esm/extractor/addLocalExports.mjs.map +1 -0
- package/dist/esm/extractor/bundle.mjs +173 -0
- package/dist/esm/extractor/bundle.mjs.map +1 -0
- package/dist/esm/extractor/bundleConfig.mjs +706 -0
- package/dist/esm/extractor/bundleConfig.mjs.map +1 -0
- package/dist/esm/extractor/concatClassName.mjs +96 -0
- package/dist/esm/extractor/concatClassName.mjs.map +1 -0
- package/dist/esm/extractor/detectModuleFormat.mjs +31 -0
- package/dist/esm/extractor/detectModuleFormat.mjs.map +1 -0
- package/dist/esm/extractor/esbuildAliasPlugin.mjs +26 -0
- package/dist/esm/extractor/esbuildAliasPlugin.mjs.map +1 -0
- package/dist/esm/extractor/esbuildTsconfigPaths.mjs +63 -0
- package/dist/esm/extractor/esbuildTsconfigPaths.mjs.map +1 -0
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs +18 -0
- package/dist/esm/extractor/getTamaguiConfigPathFromOptionsConfig.mjs.map +1 -0
- package/dist/esm/extractor/loadTamagui.mjs +306 -0
- package/dist/esm/extractor/loadTamagui.mjs.map +1 -0
- package/dist/esm/extractor/regenerateConfig.mjs +131 -0
- package/dist/esm/extractor/regenerateConfig.mjs.map +1 -0
- package/dist/esm/extractor/watchTamaguiConfig.mjs +43 -0
- package/dist/esm/extractor/watchTamaguiConfig.mjs.map +1 -0
- package/dist/esm/getPragmaOptions.mjs +46 -0
- package/dist/esm/getPragmaOptions.mjs.map +1 -0
- package/dist/esm/helpers/memoize.mjs +21 -0
- package/dist/esm/helpers/memoize.mjs.map +1 -0
- package/dist/esm/helpers/requireTamaguiCore.mjs +19 -0
- package/dist/esm/helpers/requireTamaguiCore.mjs.map +1 -0
- package/dist/esm/index.mjs +8 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/registerRequire.mjs +195 -0
- package/dist/esm/registerRequire.mjs.map +1 -0
- package/dist/esm/server.mjs +40 -0
- package/dist/esm/server.mjs.map +1 -0
- package/dist/esm/setup.mjs +0 -0
- package/dist/esm/staticEvaluationIgnoredModules.mjs +61 -0
- package/dist/esm/staticEvaluationIgnoredModules.mjs.map +1 -0
- package/dist/esm/types.mjs +0 -0
- package/dist/esm/zero/artifact.mjs +119 -0
- package/dist/esm/zero/artifact.mjs.map +1 -0
- package/dist/esm/zero/graph.mjs +170 -0
- package/dist/esm/zero/graph.mjs.map +1 -0
- package/dist/esm/zero/identity.mjs +36 -0
- package/dist/esm/zero/identity.mjs.map +1 -0
- package/dist/esm/zero/index.mjs +15 -0
- package/dist/esm/zero/islands.mjs +197 -0
- package/dist/esm/zero/islands.mjs.map +1 -0
- package/dist/esm/zero/options.mjs +129 -0
- package/dist/esm/zero/options.mjs.map +1 -0
- package/dist/esm/zero/ownership.mjs +48 -0
- package/dist/esm/zero/ownership.mjs.map +1 -0
- package/dist/esm/zero/theme.mjs +303 -0
- package/dist/esm/zero/theme.mjs.map +1 -0
- package/dist/esm/zero/transform.mjs +177 -0
- package/dist/esm/zero/transform.mjs.map +1 -0
- package/package.json +33 -43
- package/src/check-dep-versions.ts +2 -2
- package/src/checkDeps.ts +3 -2
- package/src/compiler.ts +425 -0
- package/src/compilerHost.ts +3125 -0
- package/src/constants.ts +0 -5
- package/src/domStructuralPass.ts +170 -0
- package/src/exports.ts +3 -6
- package/src/extractor/addLocalExports.ts +49 -0
- package/src/extractor/bundle.ts +20 -35
- package/src/extractor/bundleConfig.ts +334 -187
- package/src/extractor/concatClassName.ts +13 -20
- package/src/extractor/getTamaguiConfigPathFromOptionsConfig.ts +5 -4
- package/src/extractor/loadTamagui.ts +196 -143
- package/src/extractor/regenerateConfig.ts +65 -13
- package/src/extractor/watchTamaguiConfig.ts +6 -1
- package/src/helpers/requireTamaguiCore.ts +6 -1
- package/src/registerRequire.ts +94 -132
- package/src/staticEvaluationIgnoredModules.ts +74 -0
- package/src/types.ts +2 -107
- package/src/zero/artifact.ts +142 -0
- package/src/zero/graph.ts +359 -0
- package/src/zero/identity.ts +73 -0
- package/src/zero/index.ts +8 -0
- package/src/zero/islands.ts +262 -0
- package/src/zero/options.ts +239 -0
- package/src/zero/ownership.ts +113 -0
- package/src/zero/theme.ts +478 -0
- package/src/zero/transform.ts +320 -0
- package/types/check-dep-versions.d.ts.map +1 -1
- package/types/checkDeps.d.ts.map +1 -1
- package/types/compiler.d.ts +117 -0
- package/types/compiler.d.ts.map +1 -0
- package/types/compilerHost.d.ts +25 -0
- package/types/compilerHost.d.ts.map +1 -0
- package/types/constants.d.ts +0 -1
- package/types/constants.d.ts.map +1 -1
- package/types/domStructuralPass.d.ts +3 -0
- package/types/domStructuralPass.d.ts.map +1 -0
- package/types/exports.d.ts +3 -6
- package/types/exports.d.ts.map +1 -1
- package/types/extractor/addLocalExports.d.ts +3 -0
- package/types/extractor/addLocalExports.d.ts.map +1 -0
- package/types/extractor/bundle.d.ts +66 -65
- package/types/extractor/bundle.d.ts.map +1 -1
- package/types/extractor/bundleConfig.d.ts +19 -4
- package/types/extractor/bundleConfig.d.ts.map +1 -1
- package/types/extractor/esbuildAliasPlugin.d.ts.map +1 -1
- package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts +1 -1
- package/types/extractor/getTamaguiConfigPathFromOptionsConfig.d.ts.map +1 -1
- package/types/extractor/loadTamagui.d.ts +26 -3
- package/types/extractor/loadTamagui.d.ts.map +1 -1
- package/types/extractor/regenerateConfig.d.ts +1 -1
- package/types/extractor/regenerateConfig.d.ts.map +1 -1
- package/types/extractor/watchTamaguiConfig.d.ts.map +1 -1
- package/types/getPragmaOptions.d.ts +1 -1
- package/types/helpers/memoize.d.ts +1 -1
- package/types/helpers/memoize.d.ts.map +1 -1
- package/types/helpers/requireTamaguiCore.d.ts.map +1 -1
- package/types/index.d.ts.map +1 -1
- package/types/registerRequire.d.ts +2 -2
- package/types/registerRequire.d.ts.map +1 -1
- package/types/staticEvaluationIgnoredModules.d.ts +9 -0
- package/types/staticEvaluationIgnoredModules.d.ts.map +1 -0
- package/types/types.d.ts +2 -90
- package/types/types.d.ts.map +1 -1
- package/types/zero/artifact.d.ts +44 -0
- package/types/zero/artifact.d.ts.map +1 -0
- package/types/zero/graph.d.ts +139 -0
- package/types/zero/graph.d.ts.map +1 -0
- package/types/zero/identity.d.ts +33 -0
- package/types/zero/identity.d.ts.map +1 -0
- package/types/zero/index.d.ts +9 -0
- package/types/zero/index.d.ts.map +1 -0
- package/types/zero/islands.d.ts +56 -0
- package/types/zero/islands.d.ts.map +1 -0
- package/types/zero/options.d.ts +58 -0
- package/types/zero/options.d.ts.map +1 -0
- package/types/zero/ownership.d.ts +51 -0
- package/types/zero/ownership.d.ts.map +1 -0
- package/types/zero/theme.d.ts +83 -0
- package/types/zero/theme.d.ts.map +1 -0
- package/types/zero/transform.d.ts +53 -0
- package/types/zero/transform.d.ts.map +1 -0
- package/dist/check-dep-versions.cjs +0 -372
- package/dist/checkDeps.cjs +0 -271
- package/dist/constants.cjs +0 -51
- package/dist/exports.cjs +0 -48
- package/dist/extractor/accessSafe.cjs +0 -48
- package/dist/extractor/babelParse.cjs +0 -56
- package/dist/extractor/buildClassName.cjs +0 -86
- package/dist/extractor/bundle.cjs +0 -234
- package/dist/extractor/bundleConfig.cjs +0 -729
- package/dist/extractor/concatClassName.cjs +0 -129
- package/dist/extractor/createEvaluator.cjs +0 -88
- package/dist/extractor/createExtractor.cjs +0 -1968
- package/dist/extractor/createLogger.cjs +0 -50
- package/dist/extractor/detectModuleFormat.cjs +0 -55
- package/dist/extractor/ensureImportingConcat.cjs +0 -54
- package/dist/extractor/errors.cjs +0 -28
- package/dist/extractor/esbuildAliasPlugin.cjs +0 -56
- package/dist/extractor/esbuildTsconfigPaths.cjs +0 -108
- package/dist/extractor/evaluateAstNode.cjs +0 -128
- package/dist/extractor/extractHelpers.cjs +0 -182
- package/dist/extractor/extractMediaStyle.cjs +0 -169
- package/dist/extractor/extractToClassNames.cjs +0 -475
- package/dist/extractor/extractToNative.cjs +0 -369
- package/dist/extractor/findTopmostFunction.cjs +0 -43
- package/dist/extractor/generatedUid.cjs +0 -58
- package/dist/extractor/getPrefixLogs.cjs +0 -31
- package/dist/extractor/getPropValueFromAttributes.cjs +0 -85
- package/dist/extractor/getSourceModule.cjs +0 -100
- package/dist/extractor/getStaticBindingsForScope.cjs +0 -213
- package/dist/extractor/getTamaguiConfigPathFromOptionsConfig.cjs +0 -41
- package/dist/extractor/hasTopLevelAwait.cjs +0 -62
- package/dist/extractor/hoistClassNames.cjs +0 -76
- package/dist/extractor/literalToAst.cjs +0 -109
- package/dist/extractor/loadFile.cjs +0 -17
- package/dist/extractor/loadTamagui.cjs +0 -373
- package/dist/extractor/logLines.cjs +0 -43
- package/dist/extractor/normalizeTernaries.cjs +0 -100
- package/dist/extractor/propsToFontFamilyCache.cjs +0 -42
- package/dist/extractor/regenerateConfig.cjs +0 -178
- package/dist/extractor/removeUnusedHooks.cjs +0 -108
- package/dist/extractor/timer.cjs +0 -52
- package/dist/extractor/validHTMLAttributes.cjs +0 -79
- package/dist/extractor/watchTamaguiConfig.cjs +0 -70
- package/dist/getPragmaOptions.cjs +0 -73
- package/dist/helpers/memoize.cjs +0 -45
- package/dist/helpers/requireTamaguiCore.cjs +0 -40
- package/dist/index.cjs +0 -42
- package/dist/registerRequire.cjs +0 -209
- package/dist/server.cjs +0 -82
- package/dist/types.cjs +0 -18
- package/dist/worker.cjs +0 -111
- package/src/extractor/accessSafe.ts +0 -22
- package/src/extractor/babelParse.ts +0 -38
- package/src/extractor/buildClassName.ts +0 -76
- package/src/extractor/createEvaluator.ts +0 -82
- package/src/extractor/createExtractor.ts +0 -2970
- package/src/extractor/createLogger.ts +0 -41
- package/src/extractor/ensureImportingConcat.ts +0 -36
- package/src/extractor/errors.ts +0 -1
- package/src/extractor/evaluateAstNode.ts +0 -136
- package/src/extractor/extractHelpers.ts +0 -211
- package/src/extractor/extractMediaStyle.ts +0 -194
- package/src/extractor/extractToClassNames.ts +0 -733
- package/src/extractor/extractToNative.ts +0 -506
- package/src/extractor/findTopmostFunction.ts +0 -24
- package/src/extractor/generatedUid.ts +0 -41
- package/src/extractor/getPrefixLogs.ts +0 -9
- package/src/extractor/getPropValueFromAttributes.ts +0 -95
- package/src/extractor/getSourceModule.ts +0 -96
- package/src/extractor/getStaticBindingsForScope.ts +0 -237
- package/src/extractor/hasTopLevelAwait.ts +0 -28
- package/src/extractor/hoistClassNames.ts +0 -52
- package/src/extractor/literalToAst.ts +0 -85
- package/src/extractor/loadFile.ts +0 -17
- package/src/extractor/logLines.ts +0 -16
- package/src/extractor/normalizeTernaries.ts +0 -89
- package/src/extractor/propsToFontFamilyCache.ts +0 -18
- package/src/extractor/removeUnusedHooks.ts +0 -83
- package/src/extractor/timer.ts +0 -25
- package/src/extractor/validHTMLAttributes.ts +0 -52
- package/src/worker.ts +0 -142
- package/types/extractor/accessSafe.d.ts +0 -3
- package/types/extractor/accessSafe.d.ts.map +0 -1
- package/types/extractor/babelParse.d.ts +0 -5
- package/types/extractor/babelParse.d.ts.map +0 -1
- package/types/extractor/buildClassName.d.ts +0 -7
- package/types/extractor/buildClassName.d.ts.map +0 -1
- package/types/extractor/createEvaluator.d.ts +0 -12
- package/types/extractor/createEvaluator.d.ts.map +0 -1
- package/types/extractor/createExtractor.d.ts +0 -32
- package/types/extractor/createExtractor.d.ts.map +0 -1
- package/types/extractor/createLogger.d.ts +0 -3
- package/types/extractor/createLogger.d.ts.map +0 -1
- package/types/extractor/ensureImportingConcat.d.ts +0 -4
- package/types/extractor/ensureImportingConcat.d.ts.map +0 -1
- package/types/extractor/errors.d.ts +0 -3
- package/types/extractor/errors.d.ts.map +0 -1
- package/types/extractor/evaluateAstNode.d.ts +0 -3
- package/types/extractor/evaluateAstNode.d.ts.map +0 -1
- package/types/extractor/extractHelpers.d.ts +0 -28
- package/types/extractor/extractHelpers.d.ts.map +0 -1
- package/types/extractor/extractMediaStyle.d.ts +0 -11
- package/types/extractor/extractMediaStyle.d.ts.map +0 -1
- package/types/extractor/extractToClassNames.d.ts +0 -25
- package/types/extractor/extractToClassNames.d.ts.map +0 -1
- package/types/extractor/extractToNative.d.ts +0 -13
- package/types/extractor/extractToNative.d.ts.map +0 -1
- package/types/extractor/findTopmostFunction.d.ts +0 -4
- package/types/extractor/findTopmostFunction.d.ts.map +0 -1
- package/types/extractor/generatedUid.d.ts +0 -5
- package/types/extractor/generatedUid.d.ts.map +0 -1
- package/types/extractor/getPrefixLogs.d.ts +0 -3
- package/types/extractor/getPrefixLogs.d.ts.map +0 -1
- package/types/extractor/getPropValueFromAttributes.d.ts +0 -19
- package/types/extractor/getPropValueFromAttributes.d.ts.map +0 -1
- package/types/extractor/getSourceModule.d.ts +0 -16
- package/types/extractor/getSourceModule.d.ts.map +0 -1
- package/types/extractor/getStaticBindingsForScope.d.ts +0 -5
- package/types/extractor/getStaticBindingsForScope.d.ts.map +0 -1
- package/types/extractor/hasTopLevelAwait.d.ts +0 -2
- package/types/extractor/hasTopLevelAwait.d.ts.map +0 -1
- package/types/extractor/hoistClassNames.d.ts +0 -6
- package/types/extractor/hoistClassNames.d.ts.map +0 -1
- package/types/extractor/literalToAst.d.ts +0 -4
- package/types/extractor/literalToAst.d.ts.map +0 -1
- package/types/extractor/loadFile.d.ts +0 -1
- package/types/extractor/loadFile.d.ts.map +0 -1
- package/types/extractor/logLines.d.ts +0 -2
- package/types/extractor/logLines.d.ts.map +0 -1
- package/types/extractor/normalizeTernaries.d.ts +0 -5
- package/types/extractor/normalizeTernaries.d.ts.map +0 -1
- package/types/extractor/propsToFontFamilyCache.d.ts +0 -4
- package/types/extractor/propsToFontFamilyCache.d.ts.map +0 -1
- package/types/extractor/removeUnusedHooks.d.ts +0 -3
- package/types/extractor/removeUnusedHooks.d.ts.map +0 -1
- package/types/extractor/timer.d.ts +0 -5
- package/types/extractor/timer.d.ts.map +0 -1
- package/types/extractor/validHTMLAttributes.d.ts +0 -52
- package/types/extractor/validHTMLAttributes.d.ts.map +0 -1
- package/types/worker.d.ts +0 -46
- package/types/worker.d.ts.map +0 -1
- /package/dist/{setup.cjs → cjs/setup.cjs} +0 -0
package/dist/registerRequire.cjs
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var registerRequire_exports = {};
|
|
24
|
-
__export(registerRequire_exports, {
|
|
25
|
-
getNameToPaths: () => getNameToPaths,
|
|
26
|
-
registerRequire: () => registerRequire,
|
|
27
|
-
setRequireResult: () => setRequireResult
|
|
28
|
-
});
|
|
29
|
-
module.exports = __toCommonJS(registerRequire_exports);
|
|
30
|
-
var import_node = require("esbuild-register/dist/node");
|
|
31
|
-
var import_bundle = require("./extractor/bundle.cjs");
|
|
32
|
-
var import_requireTamaguiCore = require("./helpers/requireTamaguiCore.cjs");
|
|
33
|
-
const nameToPaths = {};
|
|
34
|
-
const getNameToPaths = () => nameToPaths;
|
|
35
|
-
const Module = require("node:module");
|
|
36
|
-
const proxyWorm = require("@tamagui/proxy-worm");
|
|
37
|
-
let isRegistered = false;
|
|
38
|
-
let og;
|
|
39
|
-
const whitelisted = {
|
|
40
|
-
react: true
|
|
41
|
-
};
|
|
42
|
-
const compiled = {};
|
|
43
|
-
function setRequireResult(name, result) {
|
|
44
|
-
compiled[name] = result;
|
|
45
|
-
}
|
|
46
|
-
function getStaticExtractionStub(path) {
|
|
47
|
-
switch (path) {
|
|
48
|
-
case "expo-constants":
|
|
49
|
-
return {
|
|
50
|
-
__esModule: true,
|
|
51
|
-
default: {
|
|
52
|
-
executionEnvironment: null
|
|
53
|
-
},
|
|
54
|
-
ExecutionEnvironment: {
|
|
55
|
-
Bare: "bare",
|
|
56
|
-
Standalone: "standalone",
|
|
57
|
-
StoreClient: "storeClient"
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
case "expo-updates":
|
|
61
|
-
return {
|
|
62
|
-
__esModule: true,
|
|
63
|
-
default: {
|
|
64
|
-
isEnabled: false,
|
|
65
|
-
isUsingEmbeddedAssets: true
|
|
66
|
-
},
|
|
67
|
-
checkForUpdateAsync: async () => ({
|
|
68
|
-
isAvailable: false
|
|
69
|
-
}),
|
|
70
|
-
fetchUpdateAsync: async () => ({
|
|
71
|
-
isNew: false
|
|
72
|
-
}),
|
|
73
|
-
reloadAsync: async () => {}
|
|
74
|
-
};
|
|
75
|
-
default:
|
|
76
|
-
return null;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
function registerRequire(platform, {
|
|
80
|
-
proxyWormImports
|
|
81
|
-
} = {
|
|
82
|
-
proxyWormImports: false
|
|
83
|
-
}) {
|
|
84
|
-
if (isRegistered) {
|
|
85
|
-
return {
|
|
86
|
-
tamaguiRequire: require,
|
|
87
|
-
unregister: () => {}
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
const originalResolveFilename = Module._resolveFilename;
|
|
91
|
-
const {
|
|
92
|
-
unregister
|
|
93
|
-
} = (0, import_node.register)({
|
|
94
|
-
hookIgnoreNodeModules: false,
|
|
95
|
-
// don't transform @tamagui packages - they have pre-built dist files
|
|
96
|
-
hookMatcher: filename => {
|
|
97
|
-
if (filename.includes("@tamagui") || /\/tamagui\/code\/(core|ui|packages)\//.test(filename)) {
|
|
98
|
-
return false;
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
const tsconfigPatchedResolve = Module._resolveFilename;
|
|
104
|
-
Module._resolveFilename = function (request, ...args) {
|
|
105
|
-
if (request.startsWith("@tamagui/")) {
|
|
106
|
-
return originalResolveFilename.call(this, request, ...args);
|
|
107
|
-
}
|
|
108
|
-
return tsconfigPatchedResolve.call(this, request, ...args);
|
|
109
|
-
};
|
|
110
|
-
if (!og) {
|
|
111
|
-
og = Module.prototype.require;
|
|
112
|
-
}
|
|
113
|
-
isRegistered = true;
|
|
114
|
-
Module.prototype.require = tamaguiRequire;
|
|
115
|
-
function tamaguiRequire(path) {
|
|
116
|
-
const staticExtractionStub = getStaticExtractionStub(path);
|
|
117
|
-
if (staticExtractionStub) {
|
|
118
|
-
return staticExtractionStub;
|
|
119
|
-
}
|
|
120
|
-
if (path === "tamagui" && platform === "native") {
|
|
121
|
-
return og.apply(this, ["tamagui/native"]);
|
|
122
|
-
}
|
|
123
|
-
if (path === "@tamagui/core") {
|
|
124
|
-
return (0, import_requireTamaguiCore.requireTamaguiCore)(platform, path2 => {
|
|
125
|
-
return og.apply(this, [path2]);
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
if (path in knownIgnorableModules || path.startsWith("react-native-reanimated") || import_bundle.esbuildIgnoreFilesRegex.test(path)) {
|
|
129
|
-
return proxyWorm;
|
|
130
|
-
}
|
|
131
|
-
if (path in compiled) {
|
|
132
|
-
return compiled[path];
|
|
133
|
-
}
|
|
134
|
-
if (path === "react-native-svg") {
|
|
135
|
-
return og.apply(this, ["@tamagui/react-native-svg"]);
|
|
136
|
-
}
|
|
137
|
-
if (path === "react-native/package.json") {
|
|
138
|
-
return og.apply(this, ["react-native-web/package.json"]);
|
|
139
|
-
}
|
|
140
|
-
if (path === "@tamagui/react-native-web-lite" || path === "react-native" || path.startsWith("react-native/") || path === "react-native-web" || path.startsWith("react-native-web/")) {
|
|
141
|
-
try {
|
|
142
|
-
return og.apply("react-native");
|
|
143
|
-
} catch {
|
|
144
|
-
return og.apply(this, ["@tamagui/react-native-web-lite"]);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
if (!whitelisted[path]) {
|
|
148
|
-
if (proxyWormImports && !path.includes(".tamagui-dynamic-eval")) {
|
|
149
|
-
const callerFile = this?.filename || this?.id || "";
|
|
150
|
-
const isFromTamaguiPkg = callerFile.includes("@tamagui") || callerFile.includes("node_modules/tamagui/") || /\/tamagui\/code\/(core|ui|packages)\//.test(callerFile);
|
|
151
|
-
const isFromStaticLoader = !callerFile || callerFile === "." || callerFile === "[eval]" || callerFile.endsWith("/[eval]") || callerFile.includes("/code/compiler/static/") || callerFile.includes("/.tamagui/");
|
|
152
|
-
const isRelativeFromWhitelisted = path.startsWith(".") && Object.keys(whitelisted).some(pkg => callerFile.includes(`/node_modules/${pkg}/`));
|
|
153
|
-
if (path === "tamagui" || path.startsWith("@tamagui/") || isRelativeFromWhitelisted || isFromTamaguiPkg || isFromStaticLoader) {
|
|
154
|
-
return og.apply(this, [path]);
|
|
155
|
-
}
|
|
156
|
-
return proxyWorm;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
try {
|
|
160
|
-
const out = og.apply(this, arguments);
|
|
161
|
-
return out;
|
|
162
|
-
} catch (err) {
|
|
163
|
-
if (!process.env.TAMAGUI_ENABLE_WARN_DYNAMIC_LOAD && path.includes("tamagui-dynamic-eval")) {
|
|
164
|
-
return;
|
|
165
|
-
}
|
|
166
|
-
if (allowedIgnores[path] || IGNORES === "true") {} else if (!process.env.TAMAGUI_SHOW_FULL_BUNDLE_ERRORS && !process.env.DEBUG) {
|
|
167
|
-
if (hasWarnedForModules.has(path)) {} else {
|
|
168
|
-
hasWarnedForModules.add(path);
|
|
169
|
-
}
|
|
170
|
-
} else {
|
|
171
|
-
console.warn(` [tamagui] skipped "${path}" (set TAMAGUI_IGNORE_BUNDLE_ERRORS="${path}" to silence)`);
|
|
172
|
-
}
|
|
173
|
-
return proxyWorm;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return {
|
|
177
|
-
tamaguiRequire,
|
|
178
|
-
unregister: () => {
|
|
179
|
-
if (hasWarnedForModules.size) {
|
|
180
|
-
console.info(` [tamagui] skipped loading ${hasWarnedForModules.size} module, see: https://tamagui.dev/docs/intro/errors#warning-001`);
|
|
181
|
-
hasWarnedForModules.clear();
|
|
182
|
-
}
|
|
183
|
-
unregister();
|
|
184
|
-
isRegistered = false;
|
|
185
|
-
Module.prototype.require = og;
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
const IGNORES = process.env.TAMAGUI_IGNORE_BUNDLE_ERRORS;
|
|
190
|
-
const extraIgnores = IGNORES === "true" ? [] : process.env.TAMAGUI_IGNORE_BUNDLE_ERRORS?.split(",");
|
|
191
|
-
const knownIgnorableModules = {
|
|
192
|
-
"@gorhom/bottom-sheet": true,
|
|
193
|
-
"expo-modules": true,
|
|
194
|
-
solito: true,
|
|
195
|
-
"expo-linear-gradient": true,
|
|
196
|
-
"@expo/vector-icons": true,
|
|
197
|
-
"tamagui/linear-gradient": true,
|
|
198
|
-
// animation libraries not needed for static extraction
|
|
199
|
-
"@emotion/is-prop-valid": true,
|
|
200
|
-
"framer-motion": true,
|
|
201
|
-
motion: true,
|
|
202
|
-
...Object.fromEntries(extraIgnores?.map(k => [k, true]) || [])
|
|
203
|
-
};
|
|
204
|
-
const hasWarnedForModules = /* @__PURE__ */new Set();
|
|
205
|
-
const allowedIgnores = {
|
|
206
|
-
"expo-constants": true,
|
|
207
|
-
"./ExpoHaptics": true,
|
|
208
|
-
"./js/MaskedView": true
|
|
209
|
-
};
|
package/dist/server.cjs
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all) __defProp(target, name, {
|
|
9
|
-
get: all[name],
|
|
10
|
-
enumerable: true
|
|
11
|
-
});
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
-
get: () => from[key],
|
|
17
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
-
value: mod,
|
|
29
|
-
enumerable: true
|
|
30
|
-
}) : target, mod));
|
|
31
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
-
value: true
|
|
33
|
-
}), mod);
|
|
34
|
-
var server_exports = {};
|
|
35
|
-
__export(server_exports, {
|
|
36
|
-
startServer: () => startServer
|
|
37
|
-
});
|
|
38
|
-
module.exports = __toCommonJS(server_exports);
|
|
39
|
-
var import_node_net = __toESM(require("node:net"));
|
|
40
|
-
async function startServer(options) {
|
|
41
|
-
const port = await getAvailablePort();
|
|
42
|
-
const server = import_node_net.default.createServer();
|
|
43
|
-
server.unref();
|
|
44
|
-
await new Promise((resolve, reject) => {
|
|
45
|
-
server.on("error", reject);
|
|
46
|
-
server.on("connection", conn => {
|
|
47
|
-
conn.on("data", data => {
|
|
48
|
-
console.info("got", data.toString());
|
|
49
|
-
});
|
|
50
|
-
});
|
|
51
|
-
server.listen({
|
|
52
|
-
port
|
|
53
|
-
}, () => {
|
|
54
|
-
const {
|
|
55
|
-
port: port2
|
|
56
|
-
} = server.address();
|
|
57
|
-
server.close(() => {
|
|
58
|
-
resolve(port2);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
async function getAvailablePort(port = 8089) {
|
|
64
|
-
return checkAvailablePort(port).catch(() => getAvailablePort(port + 1));
|
|
65
|
-
}
|
|
66
|
-
function checkAvailablePort(port) {
|
|
67
|
-
return new Promise((resolve, reject) => {
|
|
68
|
-
const server = import_node_net.default.createServer();
|
|
69
|
-
server.unref();
|
|
70
|
-
server.on("error", reject);
|
|
71
|
-
server.listen({
|
|
72
|
-
port
|
|
73
|
-
}, () => {
|
|
74
|
-
const {
|
|
75
|
-
port: port2
|
|
76
|
-
} = server.address();
|
|
77
|
-
server.close(() => {
|
|
78
|
-
resolve(port2);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
}
|
package/dist/types.cjs
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
8
|
-
get: () => from[key],
|
|
9
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
return to;
|
|
13
|
-
};
|
|
14
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
15
|
-
value: true
|
|
16
|
-
}), mod);
|
|
17
|
-
var types_exports = {};
|
|
18
|
-
module.exports = __toCommonJS(types_exports);
|
package/dist/worker.cjs
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
-
get: () => from[key],
|
|
15
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
-
value: true
|
|
22
|
-
}), mod);
|
|
23
|
-
var worker_exports = {};
|
|
24
|
-
__export(worker_exports, {
|
|
25
|
-
default: () => worker_default,
|
|
26
|
-
runTask: () => runTask
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(worker_exports);
|
|
29
|
-
var import_createExtractor = require("./extractor/createExtractor.cjs");
|
|
30
|
-
var import_extractToClassNames = require("./extractor/extractToClassNames.cjs");
|
|
31
|
-
var import_extractToNative = require("./extractor/extractToNative.cjs");
|
|
32
|
-
let webExtractor = null;
|
|
33
|
-
let nativeExtractor = null;
|
|
34
|
-
function getWebExtractor() {
|
|
35
|
-
if (!webExtractor) {
|
|
36
|
-
webExtractor = (0, import_createExtractor.createExtractor)({
|
|
37
|
-
platform: "web"
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
return webExtractor;
|
|
41
|
-
}
|
|
42
|
-
function getNativeExtractor() {
|
|
43
|
-
if (!nativeExtractor) {
|
|
44
|
-
nativeExtractor = (0, import_createExtractor.createExtractor)({
|
|
45
|
-
platform: "native"
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
return nativeExtractor;
|
|
49
|
-
}
|
|
50
|
-
const configCache = /* @__PURE__ */new Map();
|
|
51
|
-
async function runTask(task) {
|
|
52
|
-
try {
|
|
53
|
-
if (task.type === "extractToClassNames") {
|
|
54
|
-
const isFullyDisabled = task.options.disableExtraction && task.options.disableDebugAttr;
|
|
55
|
-
if (!isFullyDisabled && !task.options["_disableLoadTamagui"]) {
|
|
56
|
-
const cacheKey = JSON.stringify({
|
|
57
|
-
config: task.options.config,
|
|
58
|
-
components: task.options.components
|
|
59
|
-
});
|
|
60
|
-
if (!configCache.has(cacheKey)) {
|
|
61
|
-
configCache.set(cacheKey, getWebExtractor().loadTamagui(task.options));
|
|
62
|
-
}
|
|
63
|
-
await configCache.get(cacheKey);
|
|
64
|
-
}
|
|
65
|
-
const result = await (0, import_extractToClassNames.extractToClassNames)({
|
|
66
|
-
extractor: getWebExtractor(),
|
|
67
|
-
source: task.source,
|
|
68
|
-
sourcePath: task.sourcePath,
|
|
69
|
-
options: task.options,
|
|
70
|
-
shouldPrintDebug: task.shouldPrintDebug
|
|
71
|
-
});
|
|
72
|
-
return {
|
|
73
|
-
success: true,
|
|
74
|
-
data: result
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
if (task.type === "extractToNative") {
|
|
78
|
-
const cacheKey = JSON.stringify({
|
|
79
|
-
config: task.options.config,
|
|
80
|
-
components: task.options.components
|
|
81
|
-
});
|
|
82
|
-
if (!configCache.has(cacheKey)) {
|
|
83
|
-
configCache.set(cacheKey, getNativeExtractor().loadTamagui(task.options));
|
|
84
|
-
}
|
|
85
|
-
await configCache.get(cacheKey);
|
|
86
|
-
const result = (0, import_extractToNative.extractToNative)(task.sourceFileName, task.sourceCode, task.options);
|
|
87
|
-
return {
|
|
88
|
-
success: true,
|
|
89
|
-
data: result
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
if (task.type === "clearCache") {
|
|
93
|
-
configCache.clear();
|
|
94
|
-
return {
|
|
95
|
-
success: true,
|
|
96
|
-
data: null
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
return {
|
|
100
|
-
success: false,
|
|
101
|
-
error: `Unknown task type: ${task.type}`
|
|
102
|
-
};
|
|
103
|
-
} catch (error) {
|
|
104
|
-
return {
|
|
105
|
-
success: false,
|
|
106
|
-
error: error instanceof Error ? error.message : String(error),
|
|
107
|
-
stack: error instanceof Error ? error.stack : void 0
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
var worker_default = runTask;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types'
|
|
2
|
-
|
|
3
|
-
// accessSafe wraps memberExpressions in object/null checks
|
|
4
|
-
// TODO: inject this as a function? this gets pretty repetitive
|
|
5
|
-
export function accessSafe(obj: t.Expression, member: string): t.LogicalExpression {
|
|
6
|
-
return t.logicalExpression(
|
|
7
|
-
'&&',
|
|
8
|
-
t.logicalExpression(
|
|
9
|
-
'&&',
|
|
10
|
-
// typeof obj === 'object
|
|
11
|
-
t.binaryExpression(
|
|
12
|
-
'===',
|
|
13
|
-
t.unaryExpression('typeof', obj),
|
|
14
|
-
t.stringLiteral('object')
|
|
15
|
-
),
|
|
16
|
-
// obj !== null
|
|
17
|
-
t.binaryExpression('!==', obj, t.nullLiteral())
|
|
18
|
-
),
|
|
19
|
-
// obj.member
|
|
20
|
-
t.memberExpression(obj, t.identifier(member), false)
|
|
21
|
-
)
|
|
22
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import * as babelParser from '@babel/parser'
|
|
2
|
-
import type * as t from '@babel/types'
|
|
3
|
-
|
|
4
|
-
const plugins: babelParser.ParserPlugin[] = [
|
|
5
|
-
'asyncGenerators',
|
|
6
|
-
'classProperties',
|
|
7
|
-
'dynamicImport',
|
|
8
|
-
'functionBind',
|
|
9
|
-
'jsx',
|
|
10
|
-
'numericSeparator',
|
|
11
|
-
'objectRestSpread',
|
|
12
|
-
'optionalCatchBinding',
|
|
13
|
-
'decorators-legacy',
|
|
14
|
-
'typescript',
|
|
15
|
-
'optionalChaining',
|
|
16
|
-
'nullishCoalescingOperator',
|
|
17
|
-
'topLevelAwait',
|
|
18
|
-
]
|
|
19
|
-
|
|
20
|
-
export const parserOptions: babelParser.ParserOptions = Object.freeze({
|
|
21
|
-
plugins,
|
|
22
|
-
sourceType: 'module',
|
|
23
|
-
})
|
|
24
|
-
|
|
25
|
-
const parser = babelParser.parse.bind(babelParser)
|
|
26
|
-
|
|
27
|
-
export function babelParse(code: string | Buffer, fileName?: string): t.File {
|
|
28
|
-
const codeString = code.toString()
|
|
29
|
-
try {
|
|
30
|
-
return parser(codeString, parserOptions) as any
|
|
31
|
-
} catch (err) {
|
|
32
|
-
throw new Error(
|
|
33
|
-
`Error parsing babel: ${err} in ${fileName}, code:\n${codeString}\n ${
|
|
34
|
-
(err as any).stack
|
|
35
|
-
}`
|
|
36
|
-
)
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import * as t from '@babel/types'
|
|
2
|
-
|
|
3
|
-
import type { ClassNameObject } from '../types'
|
|
4
|
-
|
|
5
|
-
type Builder = (
|
|
6
|
-
objects: ClassNameObject[],
|
|
7
|
-
extras?: string
|
|
8
|
-
) => t.Expression | t.StringLiteral | null
|
|
9
|
-
|
|
10
|
-
export const buildClassName: Builder = (objectsIn, extras = '') => {
|
|
11
|
-
let objects = buildClassNameLogic(objectsIn)
|
|
12
|
-
if (!objects) return null
|
|
13
|
-
if (t.isStringLiteral(objects)) {
|
|
14
|
-
// objects.value = objects.value
|
|
15
|
-
objects.value = `${extras} ${objects.value}`
|
|
16
|
-
} else {
|
|
17
|
-
objects = t.binaryExpression('+', t.stringLiteral(extras), objects)
|
|
18
|
-
}
|
|
19
|
-
return objects
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export const buildClassNameLogic: Builder = (objects) => {
|
|
23
|
-
return objects.reduce<t.Expression | null>((acc, val) => {
|
|
24
|
-
if (acc == null) {
|
|
25
|
-
if (
|
|
26
|
-
// pass conditional expressions through
|
|
27
|
-
t.isConditionalExpression(val) ||
|
|
28
|
-
// pass non-null literals through
|
|
29
|
-
t.isStringLiteral(val) ||
|
|
30
|
-
t.isNumericLiteral(val)
|
|
31
|
-
) {
|
|
32
|
-
return val
|
|
33
|
-
}
|
|
34
|
-
return t.logicalExpression('||', val, t.stringLiteral(''))
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
let inner: t.Expression
|
|
38
|
-
if (t.isStringLiteral(val)) {
|
|
39
|
-
if (t.isStringLiteral(acc)) {
|
|
40
|
-
// join adjacent string literals
|
|
41
|
-
return t.stringLiteral(`${acc.value} ${val.value}`)
|
|
42
|
-
}
|
|
43
|
-
inner = t.stringLiteral(` ${val.value}`)
|
|
44
|
-
} else if (t.isLiteral(val)) {
|
|
45
|
-
inner = t.binaryExpression('+', t.stringLiteral(' '), val)
|
|
46
|
-
} else if (t.isConditionalExpression(val) || t.isBinaryExpression(val)) {
|
|
47
|
-
if (t.isStringLiteral(acc)) {
|
|
48
|
-
return t.binaryExpression('+', t.stringLiteral(`${acc.value} `), val)
|
|
49
|
-
}
|
|
50
|
-
inner = t.binaryExpression('+', t.stringLiteral(' '), val)
|
|
51
|
-
} else if (t.isIdentifier(val) || t.isMemberExpression(val)) {
|
|
52
|
-
// identifiers and member expressions make for reasonable ternaries
|
|
53
|
-
inner = t.conditionalExpression(
|
|
54
|
-
val,
|
|
55
|
-
t.binaryExpression('+', t.stringLiteral(' '), val),
|
|
56
|
-
t.stringLiteral('')
|
|
57
|
-
)
|
|
58
|
-
} else {
|
|
59
|
-
if (t.isStringLiteral(acc)) {
|
|
60
|
-
return t.binaryExpression(
|
|
61
|
-
'+',
|
|
62
|
-
t.stringLiteral(`${acc.value} `),
|
|
63
|
-
t.logicalExpression('||', val, t.stringLiteral(''))
|
|
64
|
-
)
|
|
65
|
-
}
|
|
66
|
-
// use a logical expression for more complex prop values
|
|
67
|
-
inner = t.binaryExpression(
|
|
68
|
-
'+',
|
|
69
|
-
t.stringLiteral(' '),
|
|
70
|
-
t.logicalExpression('||', val, t.stringLiteral(''))
|
|
71
|
-
)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return t.binaryExpression('+', acc, inner)
|
|
75
|
-
}, null)
|
|
76
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import vm from 'node:vm'
|
|
2
|
-
|
|
3
|
-
import generate from '@babel/generator'
|
|
4
|
-
import type { NodePath } from '@babel/traverse'
|
|
5
|
-
import * as t from '@babel/types'
|
|
6
|
-
import esbuild from 'esbuild'
|
|
7
|
-
|
|
8
|
-
import { FAILED_EVAL } from '../constants'
|
|
9
|
-
import type { TamaguiOptionsWithFileInfo } from '../types'
|
|
10
|
-
import { evaluateAstNode } from './evaluateAstNode'
|
|
11
|
-
|
|
12
|
-
export function createEvaluator({
|
|
13
|
-
props,
|
|
14
|
-
staticNamespace,
|
|
15
|
-
sourcePath,
|
|
16
|
-
traversePath,
|
|
17
|
-
shouldPrintDebug,
|
|
18
|
-
}: {
|
|
19
|
-
props: TamaguiOptionsWithFileInfo
|
|
20
|
-
staticNamespace: Record<string, any>
|
|
21
|
-
sourcePath?: string
|
|
22
|
-
traversePath?: NodePath<t.JSXElement>
|
|
23
|
-
shouldPrintDebug: boolean | 'verbose'
|
|
24
|
-
}) {
|
|
25
|
-
// called when evaluateAstNode encounters a dynamic-looking prop
|
|
26
|
-
const evalFn = (n: t.Node) => {
|
|
27
|
-
// variable
|
|
28
|
-
if (t.isIdentifier(n) && typeof staticNamespace[n.name] !== 'undefined') {
|
|
29
|
-
return staticNamespace[n.name]
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const evalContext = vm.createContext(staticNamespace)
|
|
33
|
-
// @ts-ignore
|
|
34
|
-
const codeWithTypescriptAnnotations = `(${generate(n as any).code})`
|
|
35
|
-
const code = esbuild
|
|
36
|
-
.transformSync(codeWithTypescriptAnnotations, { loader: 'tsx' })
|
|
37
|
-
.code.replace(/;\n$/, '')
|
|
38
|
-
|
|
39
|
-
if (shouldPrintDebug) {
|
|
40
|
-
console.info('evaluating', code)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const result1 = vm.runInContext(code, evalContext)
|
|
44
|
-
const result2 = vm.runInContext(code, evalContext)
|
|
45
|
-
|
|
46
|
-
const isDeterministic =
|
|
47
|
-
Object.is(result1, result2) ||
|
|
48
|
-
(typeof result1 === 'object' &&
|
|
49
|
-
typeof result2 === 'object' &&
|
|
50
|
-
JSON.stringify(result1) === JSON.stringify(result2))
|
|
51
|
-
|
|
52
|
-
if (!isDeterministic) {
|
|
53
|
-
if (shouldPrintDebug) {
|
|
54
|
-
console.info(
|
|
55
|
-
'Bailing on non-deterministic expression:',
|
|
56
|
-
code,
|
|
57
|
-
'\nFirst result:',
|
|
58
|
-
result1,
|
|
59
|
-
'Second result:',
|
|
60
|
-
result2
|
|
61
|
-
)
|
|
62
|
-
}
|
|
63
|
-
throw new Error(`Non-deterministic value, bailing`)
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
return result1
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return (n: t.Node) => {
|
|
70
|
-
return evaluateAstNode(n, evalFn)
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export function createSafeEvaluator(attemptEval: (n: t.Node) => any) {
|
|
75
|
-
return (n: t.Node) => {
|
|
76
|
-
try {
|
|
77
|
-
return attemptEval(n)
|
|
78
|
-
} catch (err) {
|
|
79
|
-
return FAILED_EVAL
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|