@tamagui/static 1.0.1-beta.140 → 1.0.1-beta.143
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 +0 -0
- package/dist/cjs/constants.js.map +0 -0
- package/dist/cjs/extractor/accessSafe.js +0 -0
- package/dist/cjs/extractor/accessSafe.js.map +0 -0
- package/dist/cjs/extractor/babelParse.js +0 -0
- package/dist/cjs/extractor/babelParse.js.map +0 -0
- package/dist/cjs/extractor/buildClassName.js +0 -0
- package/dist/cjs/extractor/buildClassName.js.map +0 -0
- package/dist/cjs/extractor/createEvaluator.js +0 -0
- package/dist/cjs/extractor/createEvaluator.js.map +2 -2
- package/dist/cjs/extractor/createExtractor.js +1138 -1106
- package/dist/cjs/extractor/createExtractor.js.map +2 -2
- package/dist/cjs/extractor/ensureImportingConcat.js +0 -0
- package/dist/cjs/extractor/ensureImportingConcat.js.map +0 -0
- package/dist/cjs/extractor/evaluateAstNode.js +0 -0
- package/dist/cjs/extractor/evaluateAstNode.js.map +0 -0
- package/dist/cjs/extractor/extractHelpers.js +0 -0
- package/dist/cjs/extractor/extractHelpers.js.map +0 -0
- package/dist/cjs/extractor/extractMediaStyle.js +0 -0
- package/dist/cjs/extractor/extractMediaStyle.js.map +0 -0
- package/dist/cjs/extractor/extractToClassNames.js +4 -4
- package/dist/cjs/extractor/extractToClassNames.js.map +2 -2
- package/dist/cjs/extractor/findTopmostFunction.js +0 -0
- package/dist/cjs/extractor/findTopmostFunction.js.map +0 -0
- package/dist/cjs/extractor/generatedUid.js +0 -0
- package/dist/cjs/extractor/generatedUid.js.map +0 -0
- package/dist/cjs/extractor/getPrefixLogs.js +0 -0
- package/dist/cjs/extractor/getPrefixLogs.js.map +0 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js +0 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +0 -0
- package/dist/cjs/extractor/getSourceModule.js +0 -0
- package/dist/cjs/extractor/getSourceModule.js.map +0 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js +18 -2
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/cjs/extractor/hoistClassNames.js +0 -0
- package/dist/cjs/extractor/hoistClassNames.js.map +0 -0
- package/dist/cjs/extractor/literalToAst.js +0 -0
- package/dist/cjs/extractor/literalToAst.js.map +0 -0
- package/dist/cjs/extractor/loadFile.js +0 -0
- package/dist/cjs/extractor/loadFile.js.map +0 -0
- package/dist/cjs/extractor/loadTamagui.js +205 -28
- package/dist/cjs/extractor/loadTamagui.js.map +2 -2
- package/dist/cjs/extractor/logLines.js +0 -0
- package/dist/cjs/extractor/logLines.js.map +0 -0
- package/dist/cjs/extractor/normalizeTernaries.js +0 -0
- package/dist/cjs/extractor/normalizeTernaries.js.map +0 -0
- package/dist/cjs/extractor/removeUnusedHooks.js +0 -0
- package/dist/cjs/extractor/removeUnusedHooks.js.map +0 -0
- package/dist/cjs/extractor/timer.js +8 -1
- package/dist/cjs/extractor/timer.js.map +2 -2
- package/dist/cjs/extractor/validHTMLAttributes.js +0 -0
- package/dist/cjs/extractor/validHTMLAttributes.js.map +0 -0
- package/dist/cjs/getPragmaOptions.js +68 -0
- package/dist/cjs/getPragmaOptions.js.map +7 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/require.js +1 -20
- package/dist/cjs/require.js.map +2 -2
- package/dist/cjs/types.js +0 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/webpackPlugin.js +35 -0
- package/dist/cjs/webpackPlugin.js.map +7 -0
- package/dist/esm/constants.js +0 -0
- package/dist/esm/constants.js.map +0 -0
- package/dist/esm/extractor/accessSafe.js +0 -0
- package/dist/esm/extractor/accessSafe.js.map +0 -0
- package/dist/esm/extractor/babelParse.js +0 -0
- package/dist/esm/extractor/babelParse.js.map +0 -0
- package/dist/esm/extractor/buildClassName.js +0 -0
- package/dist/esm/extractor/buildClassName.js.map +0 -0
- package/dist/esm/extractor/createEvaluator.js +0 -0
- package/dist/esm/extractor/createEvaluator.js.map +2 -2
- package/dist/esm/extractor/createExtractor.js +1140 -1108
- package/dist/esm/extractor/createExtractor.js.map +2 -2
- package/dist/esm/extractor/ensureImportingConcat.js +0 -0
- package/dist/esm/extractor/ensureImportingConcat.js.map +0 -0
- package/dist/esm/extractor/evaluateAstNode.js +0 -0
- package/dist/esm/extractor/evaluateAstNode.js.map +0 -0
- package/dist/esm/extractor/extractHelpers.js +0 -0
- package/dist/esm/extractor/extractHelpers.js.map +0 -0
- package/dist/esm/extractor/extractMediaStyle.js +0 -0
- package/dist/esm/extractor/extractMediaStyle.js.map +0 -0
- package/dist/esm/extractor/extractToClassNames.js +4 -4
- package/dist/esm/extractor/extractToClassNames.js.map +2 -2
- package/dist/esm/extractor/findTopmostFunction.js +0 -0
- package/dist/esm/extractor/findTopmostFunction.js.map +0 -0
- package/dist/esm/extractor/generatedUid.js +0 -0
- package/dist/esm/extractor/generatedUid.js.map +0 -0
- package/dist/esm/extractor/getPrefixLogs.js +0 -0
- package/dist/esm/extractor/getPrefixLogs.js.map +0 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js +0 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +0 -0
- package/dist/esm/extractor/getSourceModule.js +0 -0
- package/dist/esm/extractor/getSourceModule.js.map +0 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js +17 -2
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/esm/extractor/hoistClassNames.js +0 -0
- package/dist/esm/extractor/hoistClassNames.js.map +0 -0
- package/dist/esm/extractor/literalToAst.js +0 -0
- package/dist/esm/extractor/literalToAst.js.map +0 -0
- package/dist/esm/extractor/loadFile.js +0 -0
- package/dist/esm/extractor/loadFile.js.map +0 -0
- package/dist/esm/extractor/loadTamagui.js +201 -28
- package/dist/esm/extractor/loadTamagui.js.map +2 -2
- package/dist/esm/extractor/logLines.js +0 -0
- package/dist/esm/extractor/logLines.js.map +0 -0
- package/dist/esm/extractor/normalizeTernaries.js +0 -0
- package/dist/esm/extractor/normalizeTernaries.js.map +0 -0
- package/dist/esm/extractor/removeUnusedHooks.js +0 -0
- package/dist/esm/extractor/removeUnusedHooks.js.map +0 -0
- package/dist/esm/extractor/timer.js +8 -1
- package/dist/esm/extractor/timer.js.map +2 -2
- package/dist/esm/extractor/validHTMLAttributes.js +0 -0
- package/dist/esm/extractor/validHTMLAttributes.js.map +0 -0
- package/dist/esm/getPragmaOptions.js +44 -0
- package/dist/esm/getPragmaOptions.js.map +7 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/require.js +2 -21
- package/dist/esm/require.js.map +2 -2
- package/dist/esm/types.js +0 -0
- package/dist/esm/types.js.map +0 -0
- package/dist/esm/webpackPlugin.js +11 -0
- package/dist/esm/webpackPlugin.js.map +7 -0
- package/dist/jsx/constants.js +1 -2
- package/dist/jsx/constants.js.map +1 -1
- package/dist/jsx/extractor/accessSafe.js +0 -0
- package/dist/jsx/extractor/accessSafe.js.map +0 -0
- package/dist/jsx/extractor/babelParse.js +0 -0
- package/dist/jsx/extractor/babelParse.js.map +0 -0
- package/dist/jsx/extractor/buildClassName.js +0 -0
- package/dist/jsx/extractor/buildClassName.js.map +0 -0
- package/dist/jsx/extractor/createEvaluator.js +0 -0
- package/dist/jsx/extractor/createEvaluator.js.map +2 -2
- package/dist/jsx/extractor/createExtractor.js +1133 -1108
- package/dist/jsx/extractor/createExtractor.js.map +2 -2
- package/dist/jsx/extractor/ensureImportingConcat.js +0 -0
- package/dist/jsx/extractor/ensureImportingConcat.js.map +0 -0
- package/dist/jsx/extractor/evaluateAstNode.js +0 -0
- package/dist/jsx/extractor/evaluateAstNode.js.map +0 -0
- package/dist/jsx/extractor/extractHelpers.js +3 -5
- package/dist/jsx/extractor/extractHelpers.js.map +1 -1
- package/dist/jsx/extractor/extractMediaStyle.js +2 -3
- package/dist/jsx/extractor/extractMediaStyle.js.map +1 -1
- package/dist/jsx/extractor/extractToClassNames.js +7 -10
- package/dist/jsx/extractor/extractToClassNames.js.map +2 -2
- package/dist/jsx/extractor/findTopmostFunction.js +0 -0
- package/dist/jsx/extractor/findTopmostFunction.js.map +0 -0
- package/dist/jsx/extractor/generatedUid.js +0 -0
- package/dist/jsx/extractor/generatedUid.js.map +0 -0
- package/dist/jsx/extractor/getPrefixLogs.js +1 -2
- package/dist/jsx/extractor/getPrefixLogs.js.map +1 -1
- package/dist/jsx/extractor/getPropValueFromAttributes.js +0 -0
- package/dist/jsx/extractor/getPropValueFromAttributes.js.map +0 -0
- package/dist/jsx/extractor/getSourceModule.js +0 -0
- package/dist/jsx/extractor/getSourceModule.js.map +0 -0
- package/dist/jsx/extractor/getStaticBindingsForScope.js +17 -2
- package/dist/jsx/extractor/getStaticBindingsForScope.js.map +2 -2
- package/dist/jsx/extractor/hoistClassNames.js +0 -0
- package/dist/jsx/extractor/hoistClassNames.js.map +0 -0
- package/dist/jsx/extractor/literalToAst.js +1 -1
- package/dist/jsx/extractor/literalToAst.js.map +1 -1
- package/dist/jsx/extractor/loadFile.js +3 -4
- package/dist/jsx/extractor/loadFile.js.map +1 -1
- package/dist/jsx/extractor/loadTamagui.js +199 -28
- package/dist/jsx/extractor/loadTamagui.js.map +2 -2
- package/dist/jsx/extractor/logLines.js +0 -0
- package/dist/jsx/extractor/logLines.js.map +0 -0
- package/dist/jsx/extractor/normalizeTernaries.js +2 -3
- package/dist/jsx/extractor/normalizeTernaries.js.map +1 -1
- package/dist/jsx/extractor/removeUnusedHooks.js +3 -5
- package/dist/jsx/extractor/removeUnusedHooks.js.map +1 -1
- package/dist/jsx/extractor/timer.js +8 -1
- package/dist/jsx/extractor/timer.js.map +2 -2
- package/dist/jsx/extractor/validHTMLAttributes.js +0 -0
- package/dist/jsx/extractor/validHTMLAttributes.js.map +0 -0
- package/dist/jsx/getPragmaOptions.js +43 -0
- package/dist/jsx/getPragmaOptions.js.map +7 -0
- package/dist/jsx/index.js +1 -0
- package/dist/jsx/index.js.map +2 -2
- package/dist/jsx/require.js +2 -21
- package/dist/jsx/require.js.map +2 -2
- package/dist/jsx/types.js +0 -0
- package/dist/jsx/types.js.map +0 -0
- package/dist/jsx/webpackPlugin.js +11 -0
- package/dist/jsx/webpackPlugin.js.map +7 -0
- package/package.json +20 -17
- package/src/extractor/createEvaluator.ts +2 -0
- package/src/extractor/createExtractor.ts +1592 -1532
- package/src/extractor/extractToClassNames.ts +25 -10
- package/src/extractor/getStaticBindingsForScope.ts +22 -5
- package/src/extractor/loadTamagui.ts +250 -32
- package/src/extractor/timer.ts +12 -1
- package/src/getPragmaOptions.ts +52 -0
- package/src/index.ts +2 -0
- package/src/require.ts +29 -24
- package/src/types.ts +16 -0
- package/src/webpackPlugin.ts +9 -0
- package/types/extractor/createExtractor.d.ts +22 -6
- package/types/extractor/extractToClassNames.d.ts +1 -1
- package/types/extractor/getStaticBindingsForScope.d.ts +1 -0
- package/types/extractor/loadTamagui.d.ts +5 -3
- package/types/getPragmaOptions.d.ts +9 -0
- package/types/index.d.ts +1 -0
- package/types/types.d.ts +13 -0
- package/types/webpackPlugin.d.ts +4 -0
|
@@ -1,47 +1,166 @@
|
|
|
1
|
-
import { join } from "path";
|
|
1
|
+
import { basename, dirname, join, sep } from "path";
|
|
2
2
|
import { getDefaultTamaguiConfig } from "@tamagui/config-default-node";
|
|
3
3
|
import { createTamagui } from "@tamagui/core-node";
|
|
4
|
+
import esbuild from "esbuild";
|
|
5
|
+
import { ensureDir, pathExists, stat, writeFile } from "fs-extra";
|
|
4
6
|
import { SHOULD_DEBUG } from "../constants";
|
|
5
7
|
import { getNameToPaths, registerRequire, unregisterRequire } from "../require";
|
|
6
|
-
|
|
7
|
-
function loadTamagui(props) {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
const cache = {};
|
|
9
|
+
async function loadTamagui(props) {
|
|
10
|
+
const key = JSON.stringify(props);
|
|
11
|
+
if (cache[key]) {
|
|
12
|
+
if (cache[key] instanceof Promise) {
|
|
13
|
+
return await cache[key];
|
|
14
|
+
}
|
|
15
|
+
return cache[key];
|
|
16
|
+
}
|
|
17
|
+
let resolver = () => {
|
|
18
|
+
};
|
|
19
|
+
cache[key] = new Promise((res) => {
|
|
20
|
+
resolver = res;
|
|
21
|
+
});
|
|
22
|
+
const tmpDir = join(process.cwd(), "dist", "tamagui-node");
|
|
23
|
+
const configOutPath = join(tmpDir, `tamagui.config.js`);
|
|
24
|
+
const includesCore = props.components.includes("@tamagui/core");
|
|
25
|
+
const baseComponents = props.components.filter((x) => x !== "@tamagui/core");
|
|
26
|
+
const componentOutPaths = baseComponents.map((componentModule) => join(tmpDir, `${componentModule.split(sep).join("-").replace(/[^a-z0-9]+/gi, "")}-components.config.js`));
|
|
27
|
+
const external = ["@tamagui/core", "@tamagui/core-node", "react", "react-dom"];
|
|
28
|
+
const configEntry = props.config ? join(process.cwd(), props.config) : "";
|
|
29
|
+
if (process.env.DEBUG?.startsWith("tamagui")) {
|
|
30
|
+
console.log(`Building config entry`, configEntry);
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
await ensureDir(tmpDir);
|
|
34
|
+
} catch {
|
|
35
|
+
}
|
|
36
|
+
await Promise.all([
|
|
37
|
+
props.config ? buildTamaguiConfig({
|
|
38
|
+
entryPoints: [configEntry],
|
|
39
|
+
external,
|
|
40
|
+
outfile: configOutPath
|
|
41
|
+
}) : null,
|
|
42
|
+
...baseComponents.map((componentModule, i) => {
|
|
43
|
+
return buildTamaguiConfig({
|
|
44
|
+
entryPoints: [componentModule],
|
|
45
|
+
external,
|
|
46
|
+
outfile: componentOutPaths[i]
|
|
47
|
+
});
|
|
48
|
+
})
|
|
49
|
+
]);
|
|
50
|
+
if (process.env.DEBUG?.startsWith("tamagui")) {
|
|
51
|
+
console.log(`Built configs`);
|
|
52
|
+
}
|
|
53
|
+
const coreNode = require("@tamagui/core-node");
|
|
54
|
+
registerRequire();
|
|
55
|
+
const config = require(configOutPath).default;
|
|
56
|
+
unregisterRequire();
|
|
57
|
+
const components = {
|
|
58
|
+
...loadComponents(componentOutPaths),
|
|
59
|
+
...includesCore && gatherTamaguiComponentInfo([coreNode])
|
|
60
|
+
};
|
|
61
|
+
cache[key] = {
|
|
62
|
+
components,
|
|
63
|
+
nameToPaths: {},
|
|
64
|
+
tamaguiConfig: config
|
|
65
|
+
};
|
|
66
|
+
createTamagui(cache[key].tamaguiConfig);
|
|
67
|
+
resolver(cache[key]);
|
|
68
|
+
return cache[key];
|
|
69
|
+
}
|
|
70
|
+
async function buildTamaguiConfig(options, aliases) {
|
|
71
|
+
const alias = require("@tamagui/core-node").aliasPlugin;
|
|
72
|
+
const lockFile = join(dirname(options.outfile), basename(options.outfile, ".lock"));
|
|
73
|
+
const lockStat = await stat(lockFile).catch(() => {
|
|
74
|
+
});
|
|
75
|
+
const lockedMsAgo = !lockStat ? Infinity : new Date().getTime() - new Date(lockStat.mtime).getTime();
|
|
76
|
+
if (lockedMsAgo < 500) {
|
|
77
|
+
if (process.env.DEBUG?.startsWith("tamagui")) {
|
|
78
|
+
console.log(`Waiting for existing build`, options.entryPoints);
|
|
79
|
+
}
|
|
80
|
+
let tries = 5;
|
|
81
|
+
while (tries--) {
|
|
82
|
+
if (await pathExists(options.outfile)) {
|
|
83
|
+
return;
|
|
84
|
+
} else {
|
|
85
|
+
await new Promise((res) => setTimeout(res, 50));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
writeFile(lockFile, "");
|
|
90
|
+
if (process.env.DEBUG?.startsWith("tamagui")) {
|
|
91
|
+
console.log(`Building`, options.entryPoints);
|
|
92
|
+
}
|
|
93
|
+
return esbuild.build({
|
|
94
|
+
bundle: true,
|
|
95
|
+
...options,
|
|
96
|
+
format: "cjs",
|
|
97
|
+
target: "node18",
|
|
98
|
+
keepNames: true,
|
|
99
|
+
platform: "node",
|
|
100
|
+
loader: {
|
|
101
|
+
".js": "jsx"
|
|
102
|
+
},
|
|
103
|
+
allowOverwrite: true,
|
|
104
|
+
logLevel: "warning",
|
|
105
|
+
plugins: [
|
|
106
|
+
{
|
|
107
|
+
name: "external",
|
|
108
|
+
setup(build) {
|
|
109
|
+
build.onResolve({ filter: /@tamagui\/core/ }, (args) => {
|
|
110
|
+
return {
|
|
111
|
+
path: "@tamagui/core-node",
|
|
112
|
+
external: true
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
build.onResolve({ filter: /^(react-native)$/ }, (args) => {
|
|
116
|
+
return {
|
|
117
|
+
path: "react-native-web-lite",
|
|
118
|
+
external: true
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
alias({
|
|
124
|
+
"react-native-svg": require.resolve("@tamagui/react-native-svg"),
|
|
125
|
+
"react-native-safe-area-context": require.resolve("@tamagui/fake-react-native"),
|
|
126
|
+
"react-native-gesture-handler": require.resolve("@tamagui/proxy-worm"),
|
|
127
|
+
...aliases
|
|
128
|
+
})
|
|
129
|
+
]
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
function loadTamaguiSync(props) {
|
|
133
|
+
const key = JSON.stringify(props);
|
|
134
|
+
if (cache[key]) {
|
|
135
|
+
return cache[key];
|
|
10
136
|
}
|
|
11
|
-
const configPath = join(process.cwd(), props.config);
|
|
12
137
|
const { unregister } = require("esbuild-register/dist/node").register({
|
|
13
138
|
target: "es2019",
|
|
14
139
|
format: "cjs"
|
|
15
140
|
});
|
|
16
141
|
try {
|
|
142
|
+
registerRequire();
|
|
17
143
|
process.env.IS_STATIC = "is_static";
|
|
18
144
|
if (typeof globalThis["__DEV__"] === "undefined") {
|
|
19
145
|
globalThis["__DEV__"] = process.env.NODE_ENV === "development";
|
|
20
146
|
}
|
|
21
|
-
registerRequire();
|
|
22
147
|
try {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
for (const moduleName of props.components) {
|
|
32
|
-
const exported = require(moduleName);
|
|
33
|
-
for (const Name in exported) {
|
|
34
|
-
const val = exported[Name];
|
|
35
|
-
const staticConfig = val == null ? void 0 : val.staticConfig;
|
|
36
|
-
if (staticConfig) {
|
|
37
|
-
const { Component, reactNativeWebComponent, ...sc } = staticConfig;
|
|
38
|
-
Object.assign(components, { [Name]: { staticConfig: sc } });
|
|
39
|
-
}
|
|
148
|
+
let tamaguiConfig = null;
|
|
149
|
+
if (props.config) {
|
|
150
|
+
const configPath = join(process.cwd(), props.config);
|
|
151
|
+
const exp = require(configPath);
|
|
152
|
+
tamaguiConfig = exp["default"] || exp;
|
|
153
|
+
if (!tamaguiConfig || !tamaguiConfig.parsed) {
|
|
154
|
+
const confPath = require.resolve(configPath);
|
|
155
|
+
throw new Error(`Can't find valid config in ${confPath}`);
|
|
40
156
|
}
|
|
41
157
|
}
|
|
158
|
+
const components = loadComponents(props.components);
|
|
42
159
|
process.env.IS_STATIC = void 0;
|
|
43
|
-
|
|
44
|
-
|
|
160
|
+
if (tamaguiConfig) {
|
|
161
|
+
createTamagui(tamaguiConfig);
|
|
162
|
+
}
|
|
163
|
+
cache[key] = {
|
|
45
164
|
components,
|
|
46
165
|
tamaguiConfig,
|
|
47
166
|
nameToPaths: getNameToPaths()
|
|
@@ -66,7 +185,7 @@ function loadTamagui(props) {
|
|
|
66
185
|
nameToPaths: {}
|
|
67
186
|
};
|
|
68
187
|
}
|
|
69
|
-
return
|
|
188
|
+
return cache[key];
|
|
70
189
|
} catch (err) {
|
|
71
190
|
console.log("Error loading Tamagui", err);
|
|
72
191
|
throw err;
|
|
@@ -75,7 +194,59 @@ function loadTamagui(props) {
|
|
|
75
194
|
unregisterRequire();
|
|
76
195
|
}
|
|
77
196
|
}
|
|
197
|
+
function interopDefaultExport(mod) {
|
|
198
|
+
return mod?.default ?? mod;
|
|
199
|
+
}
|
|
200
|
+
const cacheComponents = {};
|
|
201
|
+
function loadComponents(componentsModules) {
|
|
202
|
+
const key = componentsModules.join("");
|
|
203
|
+
if (cacheComponents[key]) {
|
|
204
|
+
return cacheComponents[key];
|
|
205
|
+
}
|
|
206
|
+
try {
|
|
207
|
+
const requiredModules = componentsModules.map((name) => {
|
|
208
|
+
return interopDefaultExport(require(name));
|
|
209
|
+
});
|
|
210
|
+
const res = gatherTamaguiComponentInfo(requiredModules);
|
|
211
|
+
cacheComponents[key] = res;
|
|
212
|
+
return res;
|
|
213
|
+
} catch (err) {
|
|
214
|
+
console.log(`Tamagui error bundling components`, err.message, err.stack);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
function gatherTamaguiComponentInfo(packages) {
|
|
218
|
+
const components = {};
|
|
219
|
+
for (const exported of packages) {
|
|
220
|
+
try {
|
|
221
|
+
for (const componentName in exported) {
|
|
222
|
+
const found = getTamaguiComponent(componentName, exported[componentName]);
|
|
223
|
+
if (found) {
|
|
224
|
+
const { Component, reactNativeWebComponent, ...sc } = found.staticConfig;
|
|
225
|
+
Object.assign(components, { [componentName]: { staticConfig: sc } });
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
} catch (err) {
|
|
229
|
+
console.error(`Tamagui failed getting components`);
|
|
230
|
+
if (err instanceof Error) {
|
|
231
|
+
console.error(err.message, err.stack);
|
|
232
|
+
} else {
|
|
233
|
+
console.error(err);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
return components;
|
|
238
|
+
}
|
|
239
|
+
function getTamaguiComponent(name, Component) {
|
|
240
|
+
if (name[0].toUpperCase() !== name[0]) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const staticConfig = Component?.staticConfig;
|
|
244
|
+
if (staticConfig) {
|
|
245
|
+
return Component;
|
|
246
|
+
}
|
|
247
|
+
}
|
|
78
248
|
export {
|
|
79
|
-
loadTamagui
|
|
249
|
+
loadTamagui,
|
|
250
|
+
loadTamaguiSync
|
|
80
251
|
};
|
|
81
252
|
//# sourceMappingURL=loadTamagui.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/loadTamagui.ts"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-console */\nimport { basename, dirname, join, sep } from 'path'\n\nimport { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport type { StaticConfig, TamaguiComponent, TamaguiInternalConfig } from '@tamagui/core-node'\nimport { createTamagui } from '@tamagui/core-node'\nimport esbuild from 'esbuild'\nimport { ensureDir, pathExists, remove, stat, writeFile } from 'fs-extra'\n\nimport { SHOULD_DEBUG } from '../constants'\nimport { getNameToPaths, registerRequire, unregisterRequire } from '../require'\n\ntype NameToPaths = {\n [key: string]: Set<string>\n}\n\nexport type TamaguiProjectInfo = {\n components: Record<string, TamaguiComponent>\n tamaguiConfig: TamaguiInternalConfig\n nameToPaths: NameToPaths\n}\n\ntype Props = { components: string[]; config?: string }\n\nconst cache = {}\n\n// TODO needs a plugin for webpack / vite to run this once at startup and not again until changed...\n\nexport async function loadTamagui(props: Props): Promise<TamaguiProjectInfo> {\n const key = JSON.stringify(props)\n if (cache[key]) {\n if (cache[key] instanceof Promise) {\n return await cache[key]\n }\n return cache[key]\n }\n\n let resolver: Function = () => {}\n cache[key] = new Promise((res) => {\n resolver = res\n })\n\n const tmpDir = join(process.cwd(), 'dist', 'tamagui-node')\n const configOutPath = join(tmpDir, `tamagui.config.js`)\n const includesCore = props.components.includes('@tamagui/core')\n const baseComponents = props.components.filter((x) => x !== '@tamagui/core')\n const componentOutPaths = baseComponents.map((componentModule) =>\n join(\n tmpDir,\n `${componentModule\n .split(sep)\n .join('-')\n .replace(/[^a-z0-9]+/gi, '')}-components.config.js`\n )\n )\n\n const external = ['@tamagui/core', '@tamagui/core-node', 'react', 'react-dom']\n const configEntry = props.config ? join(process.cwd(), props.config) : ''\n\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Building config entry`, configEntry)\n }\n\n // build them to node-compat versions\n try {\n await ensureDir(tmpDir)\n } catch {\n //\n }\n\n await Promise.all([\n props.config\n ? buildTamaguiConfig({\n entryPoints: [configEntry],\n external,\n outfile: configOutPath,\n })\n : null,\n ...baseComponents.map((componentModule, i) => {\n return buildTamaguiConfig({\n entryPoints: [componentModule],\n external,\n outfile: componentOutPaths[i],\n })\n }),\n ])\n\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Built configs`)\n }\n\n const coreNode = require('@tamagui/core-node')\n\n registerRequire()\n const config = require(configOutPath).default\n unregisterRequire()\n\n const components = {\n ...loadComponents(componentOutPaths),\n ...(includesCore && gatherTamaguiComponentInfo([coreNode])),\n }\n\n cache[key] = {\n components,\n nameToPaths: {},\n tamaguiConfig: config,\n }\n\n // init core-node\n createTamagui(cache[key].tamaguiConfig)\n\n resolver(cache[key])\n\n return cache[key]\n}\n\nasync function buildTamaguiConfig(\n options: Partial<esbuild.BuildOptions> & { outfile: string },\n aliases?: Record<string, string>\n) {\n const alias = require('@tamagui/core-node').aliasPlugin\n // until i do fancier things w plugins:\n const lockFile = join(dirname(options.outfile), basename(options.outfile, '.lock'))\n const lockStat = await stat(lockFile).catch(() => {\n // ok\n })\n const lockedMsAgo = !lockStat\n ? Infinity\n : new Date().getTime() - new Date(lockStat.mtime).getTime()\n if (lockedMsAgo < 500) {\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Waiting for existing build`, options.entryPoints)\n }\n let tries = 5\n while (tries--) {\n if (await pathExists(options.outfile)) {\n return\n } else {\n await new Promise((res) => setTimeout(res, 50))\n }\n }\n }\n writeFile(lockFile, '')\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Building`, options.entryPoints)\n }\n return esbuild.build({\n bundle: true,\n ...options,\n format: 'cjs',\n target: 'node18',\n keepNames: true,\n platform: 'node',\n loader: {\n '.js': 'jsx',\n },\n allowOverwrite: true,\n logLevel: 'warning',\n plugins: [\n {\n name: 'external',\n setup(build) {\n build.onResolve({ filter: /@tamagui\\/core/ }, (args) => {\n return {\n path: '@tamagui/core-node',\n external: true,\n }\n })\n\n build.onResolve({ filter: /^(react-native)$/ }, (args) => {\n return {\n path: 'react-native-web-lite',\n external: true,\n }\n })\n },\n },\n alias({\n 'react-native-svg': require.resolve('@tamagui/react-native-svg'),\n 'react-native-safe-area-context': require.resolve('@tamagui/fake-react-native'),\n 'react-native-gesture-handler': require.resolve('@tamagui/proxy-worm'),\n ...aliases,\n }),\n ],\n })\n}\n\n// loads in-process using esbuild-register\nexport function loadTamaguiSync(props: Props): TamaguiProjectInfo {\n const key = JSON.stringify(props)\n if (cache[key]) {\n return cache[key]\n }\n\n const { unregister } = require('esbuild-register/dist/node').register({\n target: 'es2019',\n format: 'cjs',\n })\n\n try {\n registerRequire()\n\n // lets shim require and avoid importing react-native + react-native-web\n // we just need to read the config around them\n process.env.IS_STATIC = 'is_static'\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = process.env.NODE_ENV === 'development'\n }\n\n try {\n // import config\n let tamaguiConfig: TamaguiInternalConfig | null = null\n\n if (props.config) {\n const configPath = join(process.cwd(), props.config)\n const exp = require(configPath)\n tamaguiConfig = (exp['default'] || exp) as TamaguiInternalConfig\n if (!tamaguiConfig || !tamaguiConfig.parsed) {\n const confPath = require.resolve(configPath)\n throw new Error(`Can't find valid config in ${confPath}`)\n }\n }\n\n const components = loadComponents(props.components)\n\n // undo shims\n process.env.IS_STATIC = undefined\n\n // set up core-node\n if (tamaguiConfig) {\n createTamagui(tamaguiConfig)\n }\n\n cache[key] = {\n components,\n tamaguiConfig,\n nameToPaths: getNameToPaths(),\n }\n } catch (err) {\n if (err instanceof Error) {\n console.warn(\n `Error loading tamagui.config.ts (set DEBUG=tamagui to see full stack), running tamagui without custom config`\n )\n console.log(`\\n\\n ${err.message}\\n\\n`)\n if (SHOULD_DEBUG) {\n console.log(err.stack)\n }\n } else {\n console.error(`Error loading tamagui.config.ts`, err)\n }\n return {\n components: {},\n tamaguiConfig: getDefaultTamaguiConfig(),\n nameToPaths: {},\n }\n }\n\n return cache[key]\n } catch (err) {\n console.log('Error loading Tamagui', err)\n throw err\n } finally {\n unregister()\n unregisterRequire()\n }\n}\n\nfunction interopDefaultExport(mod: any) {\n return mod?.default ?? mod\n}\n\nconst cacheComponents = {}\n\nfunction loadComponents(componentsModules: string[]) {\n const key = componentsModules.join('')\n if (cacheComponents[key]) {\n return cacheComponents[key]\n }\n try {\n const requiredModules = componentsModules.map((name) => {\n return interopDefaultExport(require(name))\n })\n const res = gatherTamaguiComponentInfo(requiredModules)\n cacheComponents[key] = res\n return res\n } catch (err: any) {\n console.log(`Tamagui error bundling components`, err.message, err.stack)\n }\n}\n\nfunction gatherTamaguiComponentInfo(packages: any[]) {\n const components = {}\n for (const exported of packages) {\n try {\n for (const componentName in exported) {\n const found = getTamaguiComponent(componentName, exported[componentName])\n if (found) {\n // remove non-stringifyable\n const { Component, reactNativeWebComponent, ...sc } = found.staticConfig\n Object.assign(components, { [componentName]: { staticConfig: sc } })\n }\n }\n } catch (err) {\n console.error(`Tamagui failed getting components`)\n if (err instanceof Error) {\n console.error(err.message, err.stack)\n } else {\n console.error(err)\n }\n }\n }\n return components\n}\n\nfunction getTamaguiComponent(\n name: string,\n Component: any\n): undefined | { staticConfig: StaticConfig } {\n if (name[0].toUpperCase() !== name[0]) {\n return\n }\n const staticConfig = Component?.staticConfig as StaticConfig | undefined\n if (staticConfig) {\n return Component\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
File without changes
|
|
File without changes
|
|
@@ -2,7 +2,6 @@ import generate from "@babel/generator";
|
|
|
2
2
|
import * as t from "@babel/types";
|
|
3
3
|
import invariant from "invariant";
|
|
4
4
|
function normalizeTernaries(ternaries) {
|
|
5
|
-
var _a, _b;
|
|
6
5
|
invariant(Array.isArray(ternaries), "extractStaticTernaries expects param 1 to be an array of ternaries");
|
|
7
6
|
if (ternaries.length === 0) {
|
|
8
7
|
return [];
|
|
@@ -34,8 +33,8 @@ function normalizeTernaries(ternaries) {
|
|
|
34
33
|
remove
|
|
35
34
|
};
|
|
36
35
|
}
|
|
37
|
-
const altStyle = (
|
|
38
|
-
const consStyle = (
|
|
36
|
+
const altStyle = (shouldSwap ? consequent : alternate) ?? {};
|
|
37
|
+
const consStyle = (shouldSwap ? alternate : consequent) ?? {};
|
|
39
38
|
Object.assign(ternariesByKey[key].alternate, altStyle);
|
|
40
39
|
Object.assign(ternariesByKey[key].consequent, consStyle);
|
|
41
40
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/normalizeTernaries.ts"],
|
|
4
4
|
"sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport invariant from 'invariant'\n\nimport { Ternary } from '../types'\n\nexport function normalizeTernaries(ternaries: Ternary[]) {\n invariant(\n Array.isArray(ternaries),\n 'extractStaticTernaries expects param 1 to be an array of ternaries'\n )\n\n if (ternaries.length === 0) {\n return []\n }\n\n const ternariesByKey: { [key: string]: Ternary } = {}\n\n for (let idx = -1, len = ternaries.length; ++idx < len; ) {\n const { test, consequent, alternate, remove, ...rest } = ternaries[idx]\n\n let ternaryTest = test\n\n // strip parens\n if (t.isExpressionStatement(test)) {\n ternaryTest = (test as any).expression\n }\n\n // convert `!thing` to `thing` with swapped consequent and alternate\n let shouldSwap = false\n if (t.isUnaryExpression(test) && test.operator === '!') {\n ternaryTest = test.argument\n shouldSwap = true\n } else if (t.isBinaryExpression(test)) {\n if (test.operator === '!==' || test.operator === '!=') {\n ternaryTest = t.binaryExpression(test.operator, test.left, test.right)\n shouldSwap = true\n }\n }\n\n const key = generate(ternaryTest).code\n\n if (!ternariesByKey[key]) {\n ternariesByKey[key] = {\n ...rest,\n alternate: {},\n consequent: {},\n test: ternaryTest,\n remove,\n }\n }\n const altStyle = (shouldSwap ? consequent : alternate) ?? {}\n const consStyle = (shouldSwap ? alternate : consequent) ?? {}\n Object.assign(ternariesByKey[key].alternate!, altStyle)\n Object.assign(ternariesByKey[key].consequent!, consStyle)\n }\n\n const ternaryExpression = Object.keys(ternariesByKey).map((key) => {\n return ternariesByKey[key]\n })\n\n return ternaryExpression\n}\n"],
|
|
5
|
-
"mappings": "AAAA;AACA;AACA;AAIO,4BAA4B,WAAsB;
|
|
5
|
+
"mappings": "AAAA;AACA;AACA;AAIO,4BAA4B,WAAsB;AACvD,YACE,MAAM,QAAQ,SAAS,GACvB,oEACF;AAEA,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO,CAAC;AAAA,EACV;AAEA,QAAM,iBAA6C,CAAC;AAEpD,WAAS,MAAM,IAAI,MAAM,UAAU,QAAQ,EAAE,MAAM,OAAO;AACxD,UAAM,EAAE,MAAM,YAAY,WAAW,WAAW,SAAS,UAAU;AAEnE,QAAI,cAAc;AAGlB,QAAI,EAAE,sBAAsB,IAAI,GAAG;AACjC,oBAAe,KAAa;AAAA,IAC9B;AAGA,QAAI,aAAa;AACjB,QAAI,EAAE,kBAAkB,IAAI,KAAK,KAAK,aAAa,KAAK;AACtD,oBAAc,KAAK;AACnB,mBAAa;AAAA,IACf,WAAW,EAAE,mBAAmB,IAAI,GAAG;AACrC,UAAI,KAAK,aAAa,SAAS,KAAK,aAAa,MAAM;AACrD,sBAAc,EAAE,iBAAiB,KAAK,UAAU,KAAK,MAAM,KAAK,KAAK;AACrE,qBAAa;AAAA,MACf;AAAA,IACF;AAEA,UAAM,MAAM,SAAS,WAAW,EAAE;AAElC,QAAI,CAAC,eAAe,MAAM;AACxB,qBAAe,OAAO;AAAA,QACpB,GAAG;AAAA,QACH,WAAW,CAAC;AAAA,QACZ,YAAY,CAAC;AAAA,QACb,MAAM;AAAA,QACN;AAAA,MACF;AAAA,IACF;AACA,UAAM,WAAY,cAAa,aAAa,cAAc,CAAC;AAC3D,UAAM,YAAa,cAAa,YAAY,eAAe,CAAC;AAC5D,WAAO,OAAO,eAAe,KAAK,WAAY,QAAQ;AACtD,WAAO,OAAO,eAAe,KAAK,YAAa,SAAS;AAAA,EAC1D;AAEA,QAAM,oBAAoB,OAAO,KAAK,cAAc,EAAE,IAAI,CAAC,QAAQ;AACjE,WAAO,eAAe;AAAA,EACxB,CAAC;AAED,SAAO;AACT;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -4,9 +4,8 @@ const hooks = {
|
|
|
4
4
|
useTheme: true
|
|
5
5
|
};
|
|
6
6
|
function removeUnusedHooks(compFn, shouldPrintDebug) {
|
|
7
|
-
var _a;
|
|
8
7
|
compFn.scope.crawl();
|
|
9
|
-
let bodyStatements = compFn
|
|
8
|
+
let bodyStatements = compFn?.get("body");
|
|
10
9
|
if (!bodyStatements) {
|
|
11
10
|
console.log("no body statemnts?", compFn);
|
|
12
11
|
return;
|
|
@@ -31,8 +30,7 @@ function removeUnusedHooks(compFn, shouldPrintDebug) {
|
|
|
31
30
|
continue;
|
|
32
31
|
}
|
|
33
32
|
const isBindingReferenced = (name) => {
|
|
34
|
-
|
|
35
|
-
return !!((_a2 = statement.scope.getBinding(name)) == null ? void 0 : _a2.referenced);
|
|
33
|
+
return !!statement.scope.getBinding(name)?.referenced;
|
|
36
34
|
};
|
|
37
35
|
for (const declarator of declarations) {
|
|
38
36
|
const id = declarator.get("id");
|
|
@@ -65,7 +63,7 @@ function removeUnusedHooks(compFn, shouldPrintDebug) {
|
|
|
65
63
|
if (shouldRemove) {
|
|
66
64
|
declarator.remove();
|
|
67
65
|
if (shouldPrintDebug) {
|
|
68
|
-
console.log(` [\u{1FA9D}] removed ${
|
|
66
|
+
console.log(` [\u{1FA9D}] removed ${id.node["name"] ?? ""}`);
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/removeUnusedHooks.ts"],
|
|
4
4
|
"sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nconst hooks = {\n useMedia: true,\n useTheme: true,\n}\n\nexport function removeUnusedHooks(compFn: NodePath<any>, shouldPrintDebug: boolean | 'verbose') {\n compFn.scope.crawl()\n // check the top level statements\n let bodyStatements = compFn?.get('body')\n if (!bodyStatements) {\n console.log('no body statemnts?', compFn)\n return\n }\n if (!Array.isArray(bodyStatements)) {\n if (bodyStatements.isFunctionExpression()) {\n bodyStatements = bodyStatements.scope.path.get('body')\n } else {\n bodyStatements = bodyStatements.get('body')\n }\n }\n if (!bodyStatements || !Array.isArray(bodyStatements)) {\n return\n }\n const statements = bodyStatements as NodePath<any>[]\n for (const statement of statements) {\n if (!statement.isVariableDeclaration()) {\n continue\n }\n const declarations = statement.get('declarations')\n if (!Array.isArray(declarations)) {\n continue\n }\n const isBindingReferenced = (name: string) => {\n return !!statement.scope.getBinding(name)?.referenced\n }\n for (const declarator of declarations) {\n const id = declarator.get('id')\n const init = declarator.node.init\n if (Array.isArray(id) || Array.isArray(init)) {\n continue\n }\n const shouldRemove = (() => {\n const isHook =\n t.isCallExpression(init) && t.isIdentifier(init.callee) && hooks[init.callee.name]\n if (!isHook) {\n return false\n }\n if (t.isIdentifier(id.node)) {\n // remove \"const media = useMedia()\"\n const name = id.node.name\n return !isBindingReferenced(name)\n } else if (t.isObjectPattern(id.node)) {\n // remove \"const { sm } = useMedia()\"\n const propPaths = id.get('properties') as NodePath<any>[]\n return propPaths.every((prop) => {\n if (!prop.isObjectProperty()) return false\n const value = prop.get('value')\n if (Array.isArray(value) || !value.isIdentifier()) return false\n const name = value.node.name\n return !isBindingReferenced(name)\n })\n }\n return false\n })()\n if (shouldRemove) {\n declarator.remove()\n if (shouldPrintDebug) {\n console.log(` [\uD83E\uDE9D] removed ${id.node['name'] ?? ''}`)\n }\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "AACA;AAEA,MAAM,QAAQ;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AACZ;AAEO,2BAA2B,QAAuB,kBAAuC;
|
|
5
|
+
"mappings": "AACA;AAEA,MAAM,QAAQ;AAAA,EACZ,UAAU;AAAA,EACV,UAAU;AACZ;AAEO,2BAA2B,QAAuB,kBAAuC;AAC9F,SAAO,MAAM,MAAM;AAEnB,MAAI,iBAAiB,QAAQ,IAAI,MAAM;AACvC,MAAI,CAAC,gBAAgB;AACnB,YAAQ,IAAI,sBAAsB,MAAM;AACxC;AAAA,EACF;AACA,MAAI,CAAC,MAAM,QAAQ,cAAc,GAAG;AAClC,QAAI,eAAe,qBAAqB,GAAG;AACzC,uBAAiB,eAAe,MAAM,KAAK,IAAI,MAAM;AAAA,IACvD,OAAO;AACL,uBAAiB,eAAe,IAAI,MAAM;AAAA,IAC5C;AAAA,EACF;AACA,MAAI,CAAC,kBAAkB,CAAC,MAAM,QAAQ,cAAc,GAAG;AACrD;AAAA,EACF;AACA,QAAM,aAAa;AACnB,aAAW,aAAa,YAAY;AAClC,QAAI,CAAC,UAAU,sBAAsB,GAAG;AACtC;AAAA,IACF;AACA,UAAM,eAAe,UAAU,IAAI,cAAc;AACjD,QAAI,CAAC,MAAM,QAAQ,YAAY,GAAG;AAChC;AAAA,IACF;AACA,UAAM,sBAAsB,CAAC,SAAiB;AAC5C,aAAO,CAAC,CAAC,UAAU,MAAM,WAAW,IAAI,GAAG;AAAA,IAC7C;AACA,eAAW,cAAc,cAAc;AACrC,YAAM,KAAK,WAAW,IAAI,IAAI;AAC9B,YAAM,OAAO,WAAW,KAAK;AAC7B,UAAI,MAAM,QAAQ,EAAE,KAAK,MAAM,QAAQ,IAAI,GAAG;AAC5C;AAAA,MACF;AACA,YAAM,eAAgB,OAAM;AAC1B,cAAM,SACJ,EAAE,iBAAiB,IAAI,KAAK,EAAE,aAAa,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO;AAC/E,YAAI,CAAC,QAAQ;AACX,iBAAO;AAAA,QACT;AACA,YAAI,EAAE,aAAa,GAAG,IAAI,GAAG;AAE3B,gBAAM,OAAO,GAAG,KAAK;AACrB,iBAAO,CAAC,oBAAoB,IAAI;AAAA,QAClC,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAAG;AAErC,gBAAM,YAAY,GAAG,IAAI,YAAY;AACrC,iBAAO,UAAU,MAAM,CAAC,SAAS;AAC/B,gBAAI,CAAC,KAAK,iBAAiB;AAAG,qBAAO;AACrC,kBAAM,QAAQ,KAAK,IAAI,OAAO;AAC9B,gBAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,aAAa;AAAG,qBAAO;AAC1D,kBAAM,OAAO,MAAM,KAAK;AACxB,mBAAO,CAAC,oBAAoB,IAAI;AAAA,UAClC,CAAC;AAAA,QACH;AACA,eAAO;AAAA,MACT,GAAG;AACH,UAAI,cAAc;AAChB,mBAAW,OAAO;AAClB,YAAI,kBAAkB;AACpB,kBAAQ,IAAI,yBAAkB,GAAG,KAAK,WAAW,IAAI;AAAA,QACvD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -7,11 +7,18 @@ const timer = () => {
|
|
|
7
7
|
const took = Date.now() - last;
|
|
8
8
|
last = Date.now();
|
|
9
9
|
console.log(`Time ${name}: ${took}ms`);
|
|
10
|
+
if (took > 10) {
|
|
11
|
+
console.log(" long timer");
|
|
12
|
+
}
|
|
10
13
|
}
|
|
11
14
|
},
|
|
12
15
|
done: (print = false) => {
|
|
13
16
|
if (print) {
|
|
14
|
-
|
|
17
|
+
const total = Date.now() - start;
|
|
18
|
+
console.log(`Total time: ${total}ms`);
|
|
19
|
+
if (total > 50) {
|
|
20
|
+
console.log(" long timer");
|
|
21
|
+
}
|
|
15
22
|
}
|
|
16
23
|
}
|
|
17
24
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/extractor/timer.ts"],
|
|
4
|
-
"sourcesContent": ["export const timer = () => {\n const start = Date.now()\n let last = start\n return {\n mark: (name: string, print = false) => {\n if (print) {\n const took = Date.now() - last\n last = Date.now()\n console.log(`Time ${name}: ${took}ms`)\n }\n },\n done: (print = false) => {\n if (print) {\n console.log(`Total time: ${
|
|
5
|
-
"mappings": "AAAO,MAAM,QAAQ,MAAM;AACzB,QAAM,QAAQ,KAAK,IAAI;AACvB,MAAI,OAAO;AACX,SAAO;AAAA,IACL,MAAM,CAAC,MAAc,QAAQ,UAAU;AACrC,UAAI,OAAO;AACT,cAAM,OAAO,KAAK,IAAI,IAAI;AAC1B,eAAO,KAAK,IAAI;
|
|
4
|
+
"sourcesContent": ["export const timer = () => {\n const start = Date.now()\n let last = start\n return {\n mark: (name: string, print = false) => {\n if (print) {\n const took = Date.now() - last\n last = Date.now()\n // eslint-disable-next-line no-console\n console.log(`Time ${name}: ${took}ms`)\n if (took > 10) {\n // eslint-disable-next-line no-console\n console.log(' long timer')\n }\n }\n },\n done: (print = false) => {\n if (print) {\n const total = Date.now() - start\n // eslint-disable-next-line no-console\n console.log(`Total time: ${total}ms`)\n if (total > 50) {\n // eslint-disable-next-line no-console\n console.log(' long timer')\n }\n }\n },\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAO,MAAM,QAAQ,MAAM;AACzB,QAAM,QAAQ,KAAK,IAAI;AACvB,MAAI,OAAO;AACX,SAAO;AAAA,IACL,MAAM,CAAC,MAAc,QAAQ,UAAU;AACrC,UAAI,OAAO;AACT,cAAM,OAAO,KAAK,IAAI,IAAI;AAC1B,eAAO,KAAK,IAAI;AAEhB,gBAAQ,IAAI,QAAQ,SAAS,QAAQ;AACrC,YAAI,OAAO,IAAI;AAEb,kBAAQ,IAAI,cAAc;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAAA,IACA,MAAM,CAAC,QAAQ,UAAU;AACvB,UAAI,OAAO;AACT,cAAM,QAAQ,KAAK,IAAI,IAAI;AAE3B,gBAAQ,IAAI,eAAe,SAAS;AACpC,YAAI,QAAQ,IAAI;AAEd,kBAAQ,IAAI,cAAc;AAAA,QAC5B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
function getPragmaOptions({
|
|
2
|
+
source,
|
|
3
|
+
path,
|
|
4
|
+
disableCommentCheck
|
|
5
|
+
}) {
|
|
6
|
+
if (!disableCommentCheck && !source.startsWith("//") && !source.startsWith("/*")) {
|
|
7
|
+
return {
|
|
8
|
+
shouldPrintDebug: false,
|
|
9
|
+
shouldDisable: false
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
let shouldPrintDebug = false;
|
|
13
|
+
let shouldDisable = false;
|
|
14
|
+
const firstLine = source.split("\n", 1)[0];
|
|
15
|
+
if (firstLine.includes("tamagui-ignore")) {
|
|
16
|
+
shouldDisable = true;
|
|
17
|
+
}
|
|
18
|
+
if (firstLine.includes("debug")) {
|
|
19
|
+
shouldPrintDebug = true;
|
|
20
|
+
}
|
|
21
|
+
if (firstLine.includes("debug-verbose")) {
|
|
22
|
+
shouldPrintDebug = "verbose";
|
|
23
|
+
}
|
|
24
|
+
if (process.env.TAMAGUI_DEBUG_FILE) {
|
|
25
|
+
if (path.includes(process.env.TAMAGUI_DEBUG_FILE)) {
|
|
26
|
+
shouldPrintDebug = "verbose";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
if (process.env.DEBUG?.includes("tamagui")) {
|
|
30
|
+
shouldPrintDebug = true;
|
|
31
|
+
}
|
|
32
|
+
if (process.env.DEBUG?.includes("tamagui-verbose")) {
|
|
33
|
+
shouldPrintDebug = "verbose";
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
shouldPrintDebug,
|
|
37
|
+
shouldDisable
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export {
|
|
41
|
+
getPragmaOptions
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=getPragmaOptions.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/getPragmaOptions.ts"],
|
|
4
|
+
"sourcesContent": ["export function getPragmaOptions({\n source,\n path,\n disableCommentCheck,\n}: {\n source: string\n path: string\n disableCommentCheck?: boolean\n}) {\n if (!disableCommentCheck && !source.startsWith('//') && !source.startsWith('/*')) {\n return {\n shouldPrintDebug: false,\n shouldDisable: false,\n }\n }\n\n let shouldPrintDebug: boolean | 'verbose' = false\n let shouldDisable = false\n\n const firstLine = source.split('\\n', 1)[0]\n\n if (firstLine.includes('tamagui-ignore')) {\n shouldDisable = true\n }\n\n if (firstLine.includes('debug')) {\n shouldPrintDebug = true\n }\n\n if (firstLine.includes('debug-verbose')) {\n shouldPrintDebug = 'verbose'\n }\n\n if (process.env.TAMAGUI_DEBUG_FILE) {\n if (path.includes(process.env.TAMAGUI_DEBUG_FILE)) {\n shouldPrintDebug = 'verbose'\n }\n }\n\n if (process.env.DEBUG?.includes('tamagui')) {\n shouldPrintDebug = true\n }\n\n if (process.env.DEBUG?.includes('tamagui-verbose')) {\n shouldPrintDebug = 'verbose'\n }\n\n return {\n shouldPrintDebug,\n shouldDisable,\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAO,0BAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,GAKC;AACD,MAAI,CAAC,uBAAuB,CAAC,OAAO,WAAW,IAAI,KAAK,CAAC,OAAO,WAAW,IAAI,GAAG;AAChF,WAAO;AAAA,MACL,kBAAkB;AAAA,MAClB,eAAe;AAAA,IACjB;AAAA,EACF;AAEA,MAAI,mBAAwC;AAC5C,MAAI,gBAAgB;AAEpB,QAAM,YAAY,OAAO,MAAM,MAAM,CAAC,EAAE;AAExC,MAAI,UAAU,SAAS,gBAAgB,GAAG;AACxC,oBAAgB;AAAA,EAClB;AAEA,MAAI,UAAU,SAAS,OAAO,GAAG;AAC/B,uBAAmB;AAAA,EACrB;AAEA,MAAI,UAAU,SAAS,eAAe,GAAG;AACvC,uBAAmB;AAAA,EACrB;AAEA,MAAI,QAAQ,IAAI,oBAAoB;AAClC,QAAI,KAAK,SAAS,QAAQ,IAAI,kBAAkB,GAAG;AACjD,yBAAmB;AAAA,IACrB;AAAA,EACF;AAEA,MAAI,QAAQ,IAAI,OAAO,SAAS,SAAS,GAAG;AAC1C,uBAAmB;AAAA,EACrB;AAEA,MAAI,QAAQ,IAAI,OAAO,SAAS,iBAAiB,GAAG;AAClD,uBAAmB;AAAA,EACrB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/jsx/index.js
CHANGED
package/dist/jsx/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["process.env.TAMAGUI_COMPILE_PROCESS = '1'\n\nexport { TamaguiOptions } from './types'\nexport { createExtractor } from './extractor/createExtractor'\nexport { literalToAst } from './extractor/literalToAst'\nexport * from './constants'\nexport * from './extractor/extractToClassNames'\nexport * from './extractor/extractHelpers'\nexport * from '@tamagui/patch-rnw'\nexport * from './extractor/loadTamagui'\nexport * from './require'\n"],
|
|
5
|
-
"mappings": "AAAA,QAAQ,IAAI,0BAA0B;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;",
|
|
4
|
+
"sourcesContent": ["process.env.TAMAGUI_COMPILE_PROCESS = '1'\n\nexport { TamaguiOptions } from './types'\nexport { createExtractor } from './extractor/createExtractor'\nexport { literalToAst } from './extractor/literalToAst'\nexport * from './constants'\nexport * from './extractor/extractToClassNames'\nexport * from './extractor/extractHelpers'\nexport * from '@tamagui/patch-rnw'\nexport * from './extractor/loadTamagui'\nexport * from './require'\nexport * from './getPragmaOptions'\n// export * from './webpackPlugin'\n"],
|
|
5
|
+
"mappings": "AAAA,QAAQ,IAAI,0BAA0B;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/jsx/require.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sep } from "path";
|
|
2
2
|
import { SHOULD_DEBUG } from "./constants";
|
|
3
3
|
const nameToPaths = {};
|
|
4
4
|
const Module = require("module");
|
|
@@ -18,9 +18,8 @@ function registerRequire() {
|
|
|
18
18
|
const rnw = require("react-native-web");
|
|
19
19
|
const core = require("@tamagui/core-node");
|
|
20
20
|
Module.prototype.require = function(path) {
|
|
21
|
-
var _a, _b, _c;
|
|
22
21
|
if (SHOULD_DEBUG) {
|
|
23
|
-
console.log("tamagui
|
|
22
|
+
console.log("tamagui:require", path);
|
|
24
23
|
}
|
|
25
24
|
if (path.endsWith(".css") || path.endsWith(".json") || path.endsWith(".ttf")) {
|
|
26
25
|
return {};
|
|
@@ -36,24 +35,6 @@ function registerRequire() {
|
|
|
36
35
|
}
|
|
37
36
|
try {
|
|
38
37
|
const out = og.apply(this, arguments);
|
|
39
|
-
if (!nameToPaths[path]) {
|
|
40
|
-
if (out && typeof out === "object") {
|
|
41
|
-
for (const key in out) {
|
|
42
|
-
try {
|
|
43
|
-
const conf = (_a = out[key]) == null ? void 0 : _a.staticConfig;
|
|
44
|
-
if (conf) {
|
|
45
|
-
if (conf.componentName) {
|
|
46
|
-
(_c = nameToPaths[_b = conf.componentName]) != null ? _c : nameToPaths[_b] = /* @__PURE__ */ new Set();
|
|
47
|
-
const fullName = path.startsWith(".") ? join(`${this.path.replace(/dist(\/cjs)?/, "src")}`, path) : path;
|
|
48
|
-
nameToPaths[conf.componentName].add(fullName);
|
|
49
|
-
} else {
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
} catch {
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
38
|
return out;
|
|
58
39
|
} catch (err) {
|
|
59
40
|
if (SHOULD_DEBUG) {
|
package/dist/jsx/require.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/require.ts"],
|
|
4
|
-
"sourcesContent": ["import { join, sep } from 'path'\n\nimport type { StaticConfig } from '@tamagui/core-node'\n\nimport { SHOULD_DEBUG } from './constants'\n\nconst nameToPaths = {}\nconst Module = require('module')\nconst og = Module.prototype.require\nglobalThis['ogRequire'] = og\n\nexport const getNameToPaths = () => nameToPaths\n\n// just for catching egregious amounts of errors in a tight loop\nlet tries = 0\nsetInterval(() => {\n tries = 0\n}, 50)\n\nexport function registerRequire() {\n if (Module.prototype.require !== globalThis['ogRequire']) {\n console.warn('didnt unregister before re-registering')\n process.exit(1)\n }\n\n const proxyWorm = require('@tamagui/proxy-worm')\n const rnw = require('react-native-web')\n const core = require('@tamagui/core-node')\n\n Module.prototype.require = function (path: string) {\n if (SHOULD_DEBUG) {\n console.log('tamagui
|
|
5
|
-
"mappings": "AAAA;AAIA;AAEA,MAAM,cAAc,CAAC;AACrB,MAAM,SAAS,QAAQ,QAAQ;AAC/B,MAAM,KAAK,OAAO,UAAU;AAC5B,WAAW,eAAe;AAEnB,MAAM,iBAAiB,MAAM;AAGpC,IAAI,QAAQ;AACZ,YAAY,MAAM;AAChB,UAAQ;AACV,GAAG,EAAE;AAEE,2BAA2B;AAChC,MAAI,OAAO,UAAU,YAAY,WAAW,cAAc;
|
|
4
|
+
"sourcesContent": ["import { join, sep } from 'path'\n\nimport type { StaticConfig } from '@tamagui/core-node'\n\nimport { SHOULD_DEBUG } from './constants'\n\nconst nameToPaths = {}\nconst Module = require('module')\nconst og = Module.prototype.require\nglobalThis['ogRequire'] = og\n\nexport const getNameToPaths = () => nameToPaths\n\n// just for catching egregious amounts of errors in a tight loop\nlet tries = 0\nsetInterval(() => {\n tries = 0\n}, 50)\n\nexport function registerRequire() {\n if (Module.prototype.require !== globalThis['ogRequire']) {\n // eslint-disable-next-line no-console\n console.warn('didnt unregister before re-registering')\n process.exit(1)\n }\n\n const proxyWorm = require('@tamagui/proxy-worm')\n // TODO can swap with react-native-web-lite\n const rnw = require('react-native-web')\n const core = require('@tamagui/core-node')\n\n Module.prototype.require = function (path: string) {\n if (SHOULD_DEBUG) {\n // eslint-disable-next-line no-console\n console.log('tamagui:require', path)\n }\n if (path.endsWith('.css') || path.endsWith('.json') || path.endsWith('.ttf')) {\n return {}\n }\n if (\n path === '@gorhom/bottom-sheet' ||\n path.startsWith('react-native-reanimated') ||\n path === 'expo-linear-gradient' ||\n path === '@expo/vector-icons'\n ) {\n return proxyWorm\n }\n if (\n path.startsWith('react-native') &&\n // allow our rnw.tsx imports through\n !path.startsWith('react-native-web/dist/cjs/exports'.replace(/\\//g, sep))\n ) {\n return rnw\n }\n if (path === '@tamagui/core') {\n return core\n }\n try {\n const out = og.apply(this, arguments)\n // only for studio disable for now\n // if (!nameToPaths[path]) {\n // if (out && typeof out === 'object') {\n // for (const key in out) {\n // try {\n // const conf = out[key]?.staticConfig as StaticConfig\n // if (conf) {\n // if (conf.componentName) {\n // nameToPaths[conf.componentName] ??= new Set()\n // const fullName = path.startsWith('.')\n // ? join(`${this.path.replace(/dist(\\/cjs)?/, 'src')}`, path)\n // : path\n // nameToPaths[conf.componentName].add(fullName)\n // } else {\n // // console.log('no name component', path)\n // }\n // }\n // } catch {\n // // ok\n // }\n // }\n // }\n // }\n return out\n } catch (err: any) {\n if (SHOULD_DEBUG) {\n // eslint-disable-next-line no-console\n console.error(\n `Tamagui failed requiring ${path} from your tamagui.config.ts file, ignoring\\n`,\n err.message,\n err.stack\n )\n }\n const max = process.env.TAMAGUI_MAX_ERRORS ? +process.env.TAMAGUI_MAX_ERRORS : 200\n if (++tries > max) {\n // eslint-disable-next-line no-console\n console.log(\n `Too many errors loading design system, exiting (set TAMAGUI_MAX_ERRORS to override)..`\n )\n // avoid infinite loops\n process.exit(1)\n }\n // return proxyWorm by default\n return proxyWorm\n }\n }\n\n return Module.prototype.require\n}\n\nexport function unregisterRequire() {\n Module.prototype.require = og\n}\n"],
|
|
5
|
+
"mappings": "AAAA;AAIA;AAEA,MAAM,cAAc,CAAC;AACrB,MAAM,SAAS,QAAQ,QAAQ;AAC/B,MAAM,KAAK,OAAO,UAAU;AAC5B,WAAW,eAAe;AAEnB,MAAM,iBAAiB,MAAM;AAGpC,IAAI,QAAQ;AACZ,YAAY,MAAM;AAChB,UAAQ;AACV,GAAG,EAAE;AAEE,2BAA2B;AAChC,MAAI,OAAO,UAAU,YAAY,WAAW,cAAc;AAExD,YAAQ,KAAK,wCAAwC;AACrD,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,YAAY,QAAQ,qBAAqB;AAE/C,QAAM,MAAM,QAAQ,kBAAkB;AACtC,QAAM,OAAO,QAAQ,oBAAoB;AAEzC,SAAO,UAAU,UAAU,SAAU,MAAc;AACjD,QAAI,cAAc;AAEhB,cAAQ,IAAI,mBAAmB,IAAI;AAAA,IACrC;AACA,QAAI,KAAK,SAAS,MAAM,KAAK,KAAK,SAAS,OAAO,KAAK,KAAK,SAAS,MAAM,GAAG;AAC5E,aAAO,CAAC;AAAA,IACV;AACA,QACE,SAAS,0BACT,KAAK,WAAW,yBAAyB,KACzC,SAAS,0BACT,SAAS,sBACT;AACA,aAAO;AAAA,IACT;AACA,QACE,KAAK,WAAW,cAAc,KAE9B,CAAC,KAAK,WAAW,oCAAoC,QAAQ,OAAO,GAAG,CAAC,GACxE;AACA,aAAO;AAAA,IACT;AACA,QAAI,SAAS,iBAAiB;AAC5B,aAAO;AAAA,IACT;AACA,QAAI;AACF,YAAM,MAAM,GAAG,MAAM,MAAM,SAAS;AAwBpC,aAAO;AAAA,IACT,SAAS,KAAP;AACA,UAAI,cAAc;AAEhB,gBAAQ,MACN,4BAA4B;AAAA,GAC5B,IAAI,SACJ,IAAI,KACN;AAAA,MACF;AACA,YAAM,MAAM,QAAQ,IAAI,qBAAqB,CAAC,QAAQ,IAAI,qBAAqB;AAC/E,UAAI,EAAE,QAAQ,KAAK;AAEjB,gBAAQ,IACN,uFACF;AAEA,gBAAQ,KAAK,CAAC;AAAA,MAChB;AAEA,aAAO;AAAA,IACT;AAAA,EACF;AAEA,SAAO,OAAO,UAAU;AAC1B;AAEO,6BAA6B;AAClC,SAAO,UAAU,UAAU;AAC7B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/jsx/types.js
CHANGED
|
File without changes
|
package/dist/jsx/types.js.map
CHANGED
|
File without changes
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/webpackPlugin.ts"],
|
|
4
|
+
"sourcesContent": ["const pluginName = 'TamaguiWebpackPlugin'\n\nexport class TamaguiWebpackPlugin {\n apply(compiler) {\n compiler.hooks.run.tap(pluginName, (compilation) => {\n // console.log('The webpack build process is starting!');\n })\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,MAAM,aAAa;AAEZ,MAAM,qBAAqB;AAAA,EAChC,MAAM,UAAU;AACd,aAAS,MAAM,IAAI,IAAI,YAAY,CAAC,gBAAgB;AAAA,IAEpD,CAAC;AAAA,EACH;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|