@tamagui/static 1.0.1-beta.193 → 1.0.1-beta.194
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/extractor/babelParse.js.map +2 -2
- package/dist/extractor/bundle.js +117 -0
- package/dist/extractor/bundle.js.map +7 -0
- package/dist/extractor/createExtractor.js +147 -79
- package/dist/extractor/createExtractor.js.map +3 -3
- package/dist/extractor/extractHelpers.js +41 -6
- package/dist/extractor/extractHelpers.js.map +2 -2
- package/dist/extractor/extractToClassNames.js +2 -1
- package/dist/extractor/extractToClassNames.js.map +2 -2
- package/dist/extractor/getPropValueFromAttributes.js.map +2 -2
- package/dist/extractor/loadTamagui.js +219 -117
- package/dist/extractor/loadTamagui.js.map +3 -3
- package/dist/extractor/normalizeTernaries.js.map +2 -2
- package/dist/getPragmaOptions.js +1 -1
- package/dist/getPragmaOptions.js.map +2 -2
- package/dist/index.js +0 -1
- package/dist/index.js.map +2 -2
- package/dist/require.js +13 -7
- package/dist/require.js.map +2 -2
- package/dist/tamagui-node/tamagui.config.js +6781 -0
- package/dist/tamagui-node/tamaguicore-components.config.js +0 -0
- package/dist/tamagui-node/tamaguitestdesignsystem-components.config.js +31 -0
- package/dist/types.js.map +1 -1
- package/package.json +20 -17
- package/src/extractor/babelParse.ts +3 -2
- package/src/extractor/bundle.ts +110 -0
- package/src/extractor/createExtractor.ts +167 -69
- package/src/extractor/extractHelpers.ts +57 -10
- package/src/extractor/extractToClassNames.ts +12 -9
- package/src/extractor/getPropValueFromAttributes.ts +1 -1
- package/src/extractor/loadTamagui.ts +256 -145
- package/src/extractor/normalizeTernaries.ts +1 -1
- package/src/getPragmaOptions.ts +2 -1
- package/src/index.ts +0 -1
- package/src/require.ts +16 -8
- package/src/types.ts +5 -1
- package/types/extractor/babelParse.d.ts +2 -1
- package/types/extractor/bundle.d.ts +13 -0
- package/types/extractor/extractHelpers.d.ts +13 -3
- package/types/extractor/extractToClassNames.d.ts +3 -2
- package/types/extractor/findTopmostFunction.d.ts +1 -1
- package/types/extractor/loadTamagui.d.ts +9 -2
- package/types/index.d.ts +0 -1
- package/types/types.d.ts +4 -1
|
@@ -25,10 +25,15 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
25
25
|
var loadTamagui_exports = {};
|
|
26
26
|
__export(loadTamagui_exports, {
|
|
27
27
|
loadTamagui: () => loadTamagui,
|
|
28
|
-
loadTamaguiSync: () => loadTamaguiSync
|
|
28
|
+
loadTamaguiSync: () => loadTamaguiSync,
|
|
29
|
+
resolveWebOrNativeSpecificEntry: () => resolveWebOrNativeSpecificEntry
|
|
29
30
|
});
|
|
30
31
|
module.exports = __toCommonJS(loadTamagui_exports);
|
|
32
|
+
var import_fs = require("fs");
|
|
31
33
|
var import_path = require("path");
|
|
34
|
+
var import_generator = __toESM(require("@babel/generator"));
|
|
35
|
+
var import_traverse = __toESM(require("@babel/traverse"));
|
|
36
|
+
var t = __toESM(require("@babel/types"));
|
|
32
37
|
var import_cli_color = require("@tamagui/cli-color");
|
|
33
38
|
var import_config_default_node = require("@tamagui/config-default-node");
|
|
34
39
|
var import_core_node = require("@tamagui/core-node");
|
|
@@ -36,6 +41,8 @@ var import_esbuild = __toESM(require("esbuild"));
|
|
|
36
41
|
var import_fs_extra = require("fs-extra");
|
|
37
42
|
var import_constants = require("../constants.js");
|
|
38
43
|
var import_require = require("../require.js");
|
|
44
|
+
var import_babelParse = require("./babelParse");
|
|
45
|
+
var import_bundle = require("./bundle");
|
|
39
46
|
const cache = {};
|
|
40
47
|
async function loadTamagui(props) {
|
|
41
48
|
var _a, _b;
|
|
@@ -51,9 +58,8 @@ async function loadTamagui(props) {
|
|
|
51
58
|
cache[key] = new Promise((res) => {
|
|
52
59
|
resolver = res;
|
|
53
60
|
});
|
|
54
|
-
const tmpDir = (0, import_path.join)(process.cwd(), "
|
|
61
|
+
const tmpDir = (0, import_path.join)(process.cwd(), ".tamagui", "tamagui-node");
|
|
55
62
|
const configOutPath = (0, import_path.join)(tmpDir, `tamagui.config.js`);
|
|
56
|
-
const includesCore = props.components.includes("@tamagui/core");
|
|
57
63
|
const baseComponents = props.components.filter((x) => x !== "@tamagui/core");
|
|
58
64
|
const componentOutPaths = baseComponents.map(
|
|
59
65
|
(componentModule) => (0, import_path.join)(
|
|
@@ -83,114 +89,80 @@ Tamagui built config and components:`
|
|
|
83
89
|
`
|
|
84
90
|
);
|
|
85
91
|
await Promise.all([
|
|
86
|
-
props.config ?
|
|
92
|
+
props.config ? (0, import_bundle.bundle)({
|
|
87
93
|
entryPoints: [configEntry],
|
|
88
94
|
external,
|
|
89
95
|
outfile: configOutPath
|
|
90
96
|
}) : null,
|
|
91
97
|
...baseComponents.map((componentModule, i) => {
|
|
92
|
-
return
|
|
98
|
+
return (0, import_bundle.bundle)({
|
|
93
99
|
entryPoints: [componentModule],
|
|
100
|
+
resolvePlatformSpecificEntries: true,
|
|
94
101
|
external,
|
|
95
102
|
outfile: componentOutPaths[i]
|
|
96
103
|
});
|
|
97
104
|
})
|
|
98
105
|
]);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
106
|
+
try {
|
|
107
|
+
(0, import_require.registerRequire)(props.bubbleErrors);
|
|
108
|
+
const out = require(configOutPath);
|
|
109
|
+
const config = out.default || out;
|
|
110
|
+
if (!config) {
|
|
111
|
+
throw new Error(`No config: ${config}`);
|
|
112
|
+
}
|
|
113
|
+
let components = loadComponents({
|
|
105
114
|
...props,
|
|
106
115
|
components: componentOutPaths
|
|
107
|
-
})
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (process.env.NODE_ENV === "development" && ((_b = process.env.DEBUG) == null ? void 0 : _b.startsWith("tamagui"))) {
|
|
111
|
-
console.log("Loaded components", components);
|
|
112
|
-
}
|
|
113
|
-
cache[key] = {
|
|
114
|
-
components,
|
|
115
|
-
nameToPaths: {},
|
|
116
|
-
tamaguiConfig: config
|
|
117
|
-
};
|
|
118
|
-
(0, import_core_node.createTamagui)(cache[key].tamaguiConfig);
|
|
119
|
-
resolver(cache[key]);
|
|
120
|
-
return cache[key];
|
|
121
|
-
}
|
|
122
|
-
async function buildTamaguiConfig(props, options, aliases) {
|
|
123
|
-
var _a, _b;
|
|
124
|
-
const alias = require("@tamagui/core-node").aliasPlugin;
|
|
125
|
-
const lockFile = (0, import_path.join)((0, import_path.dirname)(options.outfile), (0, import_path.basename)(options.outfile, ".lock"));
|
|
126
|
-
const lockStat = await (0, import_fs_extra.stat)(lockFile).catch(() => {
|
|
127
|
-
});
|
|
128
|
-
const lockedMsAgo = !lockStat ? Infinity : new Date().getTime() - new Date(lockStat.mtime).getTime();
|
|
129
|
-
if (lockedMsAgo < 500) {
|
|
130
|
-
if ((_a = process.env.DEBUG) == null ? void 0 : _a.startsWith("tamagui")) {
|
|
131
|
-
console.log(`Waiting for existing build`, options.entryPoints);
|
|
116
|
+
});
|
|
117
|
+
if (!components) {
|
|
118
|
+
throw new Error(`No components found: ${componentOutPaths.join(", ")}`);
|
|
132
119
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
if (
|
|
136
|
-
|
|
137
|
-
} else {
|
|
138
|
-
await new Promise((res) => setTimeout(res, 50));
|
|
120
|
+
for (const component of components) {
|
|
121
|
+
component.moduleName = baseComponents[componentOutPaths.indexOf(component.moduleName)];
|
|
122
|
+
if (!component.moduleName) {
|
|
123
|
+
throw new Error(`Tamagui internal err`);
|
|
139
124
|
}
|
|
140
125
|
}
|
|
126
|
+
const coreComponents = loadComponents({
|
|
127
|
+
...props,
|
|
128
|
+
components: ["@tamagui/core-node"]
|
|
129
|
+
});
|
|
130
|
+
if (coreComponents) {
|
|
131
|
+
coreComponents[0].moduleName = "@tamagui/core";
|
|
132
|
+
components = [...components, ...coreComponents];
|
|
133
|
+
}
|
|
134
|
+
if (process.env.NODE_ENV === "development" && ((_b = process.env.DEBUG) == null ? void 0 : _b.startsWith("tamagui"))) {
|
|
135
|
+
console.log("Loaded components", components);
|
|
136
|
+
}
|
|
137
|
+
cache[key] = {
|
|
138
|
+
components,
|
|
139
|
+
nameToPaths: {},
|
|
140
|
+
tamaguiConfig: config
|
|
141
|
+
};
|
|
142
|
+
(0, import_core_node.createTamagui)(cache[key].tamaguiConfig);
|
|
143
|
+
resolver(cache[key]);
|
|
144
|
+
return cache[key];
|
|
145
|
+
} finally {
|
|
146
|
+
(0, import_require.unregisterRequire)();
|
|
141
147
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
148
|
+
}
|
|
149
|
+
function resolveWebOrNativeSpecificEntry(entry) {
|
|
150
|
+
const resolved = require.resolve(entry);
|
|
151
|
+
const ext = (0, import_path.extname)(resolved);
|
|
152
|
+
const fileName = (0, import_path.basename)(resolved).replace(ext, "");
|
|
153
|
+
const specificExt = process.env.TAMAGUI_TARGET === "web" ? "web" : "native";
|
|
154
|
+
const specificFile = (0, import_path.join)((0, import_path.dirname)(resolved), fileName + "." + specificExt + ext);
|
|
155
|
+
if ((0, import_fs_extra.existsSync)(specificFile)) {
|
|
156
|
+
return specificFile;
|
|
145
157
|
}
|
|
146
|
-
|
|
147
|
-
return import_esbuild.default.build({
|
|
148
|
-
bundle: true,
|
|
149
|
-
...options,
|
|
150
|
-
format: "cjs",
|
|
151
|
-
target: "node18",
|
|
152
|
-
jsx: "transform",
|
|
153
|
-
jsxFactory: "react",
|
|
154
|
-
allowOverwrite: true,
|
|
155
|
-
keepNames: true,
|
|
156
|
-
platform: "node",
|
|
157
|
-
tsconfig,
|
|
158
|
-
loader: {
|
|
159
|
-
".js": "jsx"
|
|
160
|
-
},
|
|
161
|
-
logLevel: "warning",
|
|
162
|
-
plugins: [
|
|
163
|
-
{
|
|
164
|
-
name: "external",
|
|
165
|
-
setup(build) {
|
|
166
|
-
build.onResolve({ filter: /@tamagui\/core/ }, (args) => {
|
|
167
|
-
return {
|
|
168
|
-
path: "@tamagui/core-node",
|
|
169
|
-
external: true
|
|
170
|
-
};
|
|
171
|
-
});
|
|
172
|
-
build.onResolve({ filter: /^(react-native|react-native\/.*)$/ }, (args) => {
|
|
173
|
-
return {
|
|
174
|
-
path: "react-native-web-lite",
|
|
175
|
-
external: true
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
|
-
alias({
|
|
181
|
-
"react-native-svg": require.resolve("@tamagui/react-native-svg"),
|
|
182
|
-
"react-native-safe-area-context": require.resolve("@tamagui/fake-react-native"),
|
|
183
|
-
"react-native-gesture-handler": require.resolve("@tamagui/proxy-worm"),
|
|
184
|
-
"react-native-reanimated": require.resolve("@tamagui/proxy-worm"),
|
|
185
|
-
...aliases
|
|
186
|
-
})
|
|
187
|
-
]
|
|
188
|
-
});
|
|
158
|
+
return entry;
|
|
189
159
|
}
|
|
190
160
|
const esbuildOptions = {
|
|
191
|
-
|
|
161
|
+
loader: "tsx",
|
|
162
|
+
target: "es2018",
|
|
192
163
|
format: "cjs",
|
|
193
|
-
jsx: "transform"
|
|
164
|
+
jsx: "transform",
|
|
165
|
+
platform: "node"
|
|
194
166
|
};
|
|
195
167
|
function loadTamaguiSync(props) {
|
|
196
168
|
const key = JSON.stringify(props);
|
|
@@ -201,9 +173,7 @@ function loadTamaguiSync(props) {
|
|
|
201
173
|
try {
|
|
202
174
|
(0, import_require.registerRequire)(props.bubbleErrors);
|
|
203
175
|
process.env.IS_STATIC = "is_static";
|
|
204
|
-
|
|
205
|
-
globalThis["__DEV__"] = process.env.NODE_ENV === "development";
|
|
206
|
-
}
|
|
176
|
+
globalThis["__DEV__"] = process.env.NODE_ENV === "development";
|
|
207
177
|
try {
|
|
208
178
|
let tamaguiConfig = null;
|
|
209
179
|
if (props.config) {
|
|
@@ -218,11 +188,15 @@ function loadTamaguiSync(props) {
|
|
|
218
188
|
}
|
|
219
189
|
}
|
|
220
190
|
const components = loadComponents(props);
|
|
191
|
+
if (!components) {
|
|
192
|
+
throw new Error(`No components loaded`);
|
|
193
|
+
}
|
|
221
194
|
if (process.env.DEBUG === "tamagui") {
|
|
222
195
|
console.log(`components`, components);
|
|
223
196
|
}
|
|
224
197
|
process.env.IS_STATIC = void 0;
|
|
225
|
-
|
|
198
|
+
delete globalThis["__DEV__"];
|
|
199
|
+
if (props.config && tamaguiConfig) {
|
|
226
200
|
(0, import_core_node.createTamagui)(tamaguiConfig);
|
|
227
201
|
}
|
|
228
202
|
cache[key] = {
|
|
@@ -250,7 +224,7 @@ function loadTamaguiSync(props) {
|
|
|
250
224
|
console.error(`Error loading tamagui.config.ts`, err);
|
|
251
225
|
}
|
|
252
226
|
return {
|
|
253
|
-
components:
|
|
227
|
+
components: [],
|
|
254
228
|
tamaguiConfig: (0, import_config_default_node.getDefaultTamaguiConfig)(),
|
|
255
229
|
nameToPaths: {}
|
|
256
230
|
};
|
|
@@ -270,6 +244,46 @@ function interopDefaultExport(mod) {
|
|
|
270
244
|
return (mod == null ? void 0 : mod.default) ?? mod;
|
|
271
245
|
}
|
|
272
246
|
const cacheComponents = {};
|
|
247
|
+
function transformAddExports(ast) {
|
|
248
|
+
const usedNames = /* @__PURE__ */ new Set();
|
|
249
|
+
(0, import_traverse.default)(ast, {
|
|
250
|
+
ExportNamedDeclaration(nodePath) {
|
|
251
|
+
if (nodePath.node.specifiers) {
|
|
252
|
+
for (const spec of nodePath.node.specifiers) {
|
|
253
|
+
usedNames.add(t.isIdentifier(spec.exported) ? spec.exported.name : spec.exported.value);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
(0, import_traverse.default)(ast, {
|
|
259
|
+
VariableDeclaration(nodePath) {
|
|
260
|
+
if (!t.isProgram(nodePath.parent))
|
|
261
|
+
return;
|
|
262
|
+
const decs = nodePath.node.declarations;
|
|
263
|
+
if (decs.length > 1)
|
|
264
|
+
return;
|
|
265
|
+
const [dec] = decs;
|
|
266
|
+
if (!t.isIdentifier(dec.id))
|
|
267
|
+
return;
|
|
268
|
+
if (!dec.init)
|
|
269
|
+
return;
|
|
270
|
+
if (usedNames.has(dec.id.name))
|
|
271
|
+
return;
|
|
272
|
+
usedNames.add(dec.id.name);
|
|
273
|
+
nodePath.replaceWith(
|
|
274
|
+
t.exportNamedDeclaration(t.variableDeclaration("let", [dec]), [
|
|
275
|
+
t.exportSpecifier(t.identifier(dec.id.name), t.identifier(dec.id.name))
|
|
276
|
+
])
|
|
277
|
+
);
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
return (0, import_generator.default)(ast, {
|
|
281
|
+
concise: false,
|
|
282
|
+
filename: "test.tsx",
|
|
283
|
+
retainLines: false,
|
|
284
|
+
sourceMaps: false
|
|
285
|
+
}).code;
|
|
286
|
+
}
|
|
273
287
|
function loadComponents(props) {
|
|
274
288
|
const componentsModules = props.components;
|
|
275
289
|
const key = componentsModules.join("");
|
|
@@ -277,38 +291,125 @@ function loadComponents(props) {
|
|
|
277
291
|
return cacheComponents[key];
|
|
278
292
|
}
|
|
279
293
|
try {
|
|
280
|
-
const
|
|
281
|
-
|
|
294
|
+
const info = componentsModules.flatMap((name) => {
|
|
295
|
+
var _a;
|
|
296
|
+
const extension = (0, import_path.extname)(name);
|
|
297
|
+
const isLocal = Boolean(extension);
|
|
298
|
+
const writeTmp = isLocal && !props.config;
|
|
299
|
+
const fileContents = writeTmp ? (0, import_fs.readFileSync)(name, "utf-8") : "";
|
|
300
|
+
const loadModule = writeTmp ? (0, import_path.join)((0, import_path.dirname)(name), `.tamagui-dynamic-eval-${(0, import_path.basename)(name)}.tsx`) : name;
|
|
301
|
+
let writtenContents = fileContents;
|
|
302
|
+
let didBabel = false;
|
|
303
|
+
const esbuildit = (src, target) => import_esbuild.default.transformSync(src, {
|
|
304
|
+
...esbuildOptions,
|
|
305
|
+
...target === "modern" && {
|
|
306
|
+
target: "es2022",
|
|
307
|
+
jsx: "transform",
|
|
308
|
+
loader: "tsx",
|
|
309
|
+
platform: "neutral",
|
|
310
|
+
format: "esm"
|
|
311
|
+
}
|
|
312
|
+
}).code;
|
|
313
|
+
function attemptLoad({ forceExports = false } = {}) {
|
|
314
|
+
if (writeTmp) {
|
|
315
|
+
writtenContents = forceExports ? esbuildit(transformAddExports((0, import_babelParse.babelParse)(esbuildit(fileContents, "modern")))) : esbuildit(fileContents);
|
|
316
|
+
(0, import_fs_extra.writeFileSync)(loadModule, writtenContents);
|
|
317
|
+
}
|
|
318
|
+
return {
|
|
319
|
+
moduleName: name,
|
|
320
|
+
nameToInfo: getComponentStaticConfigByName(
|
|
321
|
+
name,
|
|
322
|
+
interopDefaultExport(require(loadModule))
|
|
323
|
+
)
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
const dispose = () => {
|
|
327
|
+
writeTmp && (0, import_fs_extra.removeSync)(loadModule);
|
|
328
|
+
};
|
|
329
|
+
try {
|
|
330
|
+
const res = attemptLoad({
|
|
331
|
+
forceExports: true
|
|
332
|
+
});
|
|
333
|
+
didBabel = true;
|
|
334
|
+
return res;
|
|
335
|
+
} catch (err) {
|
|
336
|
+
console.log("babel err", err, writtenContents);
|
|
337
|
+
writtenContents = fileContents;
|
|
338
|
+
if ((_a = process.env.DEBUG) == null ? void 0 : _a.startsWith("tamagui")) {
|
|
339
|
+
console.log(`Error parsing babel likely`, err);
|
|
340
|
+
}
|
|
341
|
+
} finally {
|
|
342
|
+
dispose();
|
|
343
|
+
}
|
|
344
|
+
try {
|
|
345
|
+
return attemptLoad({
|
|
346
|
+
forceExports: false
|
|
347
|
+
});
|
|
348
|
+
} catch (err) {
|
|
349
|
+
if (!process.env.TAMAGUI_DISABLE_WARN_DYNAMIC_LOAD) {
|
|
350
|
+
console.log(`
|
|
351
|
+
|
|
352
|
+
Tamagui attempted but failed to dynamically load components in:
|
|
353
|
+
${name}
|
|
354
|
+
|
|
355
|
+
This will leave some styled() tags unoptimized.
|
|
356
|
+
Disable this file (or dynamic loading altogether):
|
|
357
|
+
|
|
358
|
+
disableExtractFoundComponents: ['${name}'] | true
|
|
359
|
+
|
|
360
|
+
Quiet this warning with environment variable:
|
|
361
|
+
|
|
362
|
+
TAMAGUI_DISABLE_WARN_DYNAMIC_LOAD=1
|
|
363
|
+
|
|
364
|
+
`);
|
|
365
|
+
console.log(err);
|
|
366
|
+
console.log(
|
|
367
|
+
`At: ${loadModule}`,
|
|
368
|
+
`
|
|
369
|
+
didBabel: ${didBabel}`,
|
|
370
|
+
`
|
|
371
|
+
In:`,
|
|
372
|
+
writtenContents,
|
|
373
|
+
`
|
|
374
|
+
writeTmp: `,
|
|
375
|
+
writeTmp
|
|
376
|
+
);
|
|
377
|
+
}
|
|
378
|
+
return [];
|
|
379
|
+
} finally {
|
|
380
|
+
dispose();
|
|
381
|
+
}
|
|
282
382
|
});
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
return res;
|
|
383
|
+
cacheComponents[key] = info;
|
|
384
|
+
return info;
|
|
286
385
|
} catch (err) {
|
|
287
386
|
if (props.bubbleErrors) {
|
|
288
387
|
throw err;
|
|
289
388
|
}
|
|
290
389
|
console.log(`Tamagui error bundling components`, err.message, err.stack);
|
|
390
|
+
return null;
|
|
291
391
|
}
|
|
292
392
|
}
|
|
293
|
-
function
|
|
393
|
+
function getComponentStaticConfigByName(name, exported) {
|
|
394
|
+
if (!exported || typeof exported !== "object" || Array.isArray(exported)) {
|
|
395
|
+
throw new Error(`Invalid export from package ${name}: ${typeof exported}`);
|
|
396
|
+
}
|
|
294
397
|
const components = {};
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
Object.assign(components, { [componentName]: { staticConfig: sc } });
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
} catch (err) {
|
|
305
|
-
console.error(`Tamagui failed getting components`);
|
|
306
|
-
if (err instanceof Error) {
|
|
307
|
-
console.error(err.message, err.stack);
|
|
308
|
-
} else {
|
|
309
|
-
console.error(err);
|
|
398
|
+
try {
|
|
399
|
+
for (const key in exported) {
|
|
400
|
+
const found = getTamaguiComponent(key, exported[key]);
|
|
401
|
+
if (found) {
|
|
402
|
+
const { Component, reactNativeWebComponent, ...sc } = found.staticConfig;
|
|
403
|
+
components[key] = { staticConfig: sc };
|
|
310
404
|
}
|
|
311
405
|
}
|
|
406
|
+
} catch (err) {
|
|
407
|
+
console.error(`Tamagui failed getting components`);
|
|
408
|
+
if (err instanceof Error) {
|
|
409
|
+
console.error(err.message, err.stack);
|
|
410
|
+
} else {
|
|
411
|
+
console.error(err);
|
|
412
|
+
}
|
|
312
413
|
}
|
|
313
414
|
return components;
|
|
314
415
|
}
|
|
@@ -324,6 +425,7 @@ function getTamaguiComponent(name, Component) {
|
|
|
324
425
|
// Annotate the CommonJS export names for ESM import in node:
|
|
325
426
|
0 && (module.exports = {
|
|
326
427
|
loadTamagui,
|
|
327
|
-
loadTamaguiSync
|
|
428
|
+
loadTamaguiSync,
|
|
429
|
+
resolveWebOrNativeSpecificEntry
|
|
328
430
|
});
|
|
329
431
|
//# sourceMappingURL=loadTamagui.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/extractor/loadTamagui.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-console */\nimport { basename, dirname, join, relative, sep } from 'path'\n\nimport { Color, colorLog } from '@tamagui/cli-color'\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, stat, writeFile } from 'fs-extra'\n\nimport { SHOULD_DEBUG } from '../constants.js'\nimport { getNameToPaths, registerRequire, unregisterRequire } from '../require.js'\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 = {\n components: string[]\n config?: string\n forceExports?: boolean\n bubbleErrors?: boolean\n}\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.NODE_ENV === 'development' && 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 colorLog(\n Color.FgYellow,\n `\nTamagui built config and components:`\n )\n colorLog(\n Color.Dim,\n `\n - Config: .${sep}${relative(process.cwd(), configOutPath)}\n - Components: .${sep}${relative(process.cwd(), componentOutPaths.join(', '))}\n`\n )\n\n await Promise.all([\n props.config\n ? buildTamaguiConfig(props, {\n entryPoints: [configEntry],\n external,\n outfile: configOutPath,\n })\n : null,\n ...baseComponents.map((componentModule, i) => {\n return buildTamaguiConfig(props, {\n entryPoints: [componentModule],\n external,\n outfile: componentOutPaths[i],\n })\n }),\n ])\n\n const coreNode = require('@tamagui/core-node')\n\n registerRequire(props.bubbleErrors)\n const config = require(configOutPath).default\n unregisterRequire()\n\n const components = {\n ...loadComponents({\n ...props,\n components: componentOutPaths,\n }),\n ...(includesCore && gatherTamaguiComponentInfo([coreNode])),\n }\n\n if (process.env.NODE_ENV === 'development' && process.env.DEBUG?.startsWith('tamagui')) {\n console.log('Loaded components', components)\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 props: Props,\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\n void writeFile(lockFile, '')\n\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Building`, options.entryPoints)\n }\n\n const tsconfig = join(__dirname, '..', '..', 'tamagui.tsconfig.json')\n\n return esbuild.build({\n bundle: true,\n ...options,\n format: 'cjs',\n target: 'node18',\n jsx: 'transform',\n jsxFactory: 'react',\n allowOverwrite: true,\n keepNames: true,\n platform: 'node',\n tsconfig,\n loader: {\n '.js': 'jsx',\n },\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|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 'react-native-reanimated': require.resolve('@tamagui/proxy-worm'),\n ...aliases,\n }),\n ],\n })\n}\n\nconst esbuildOptions: esbuild.BuildOptions = {\n target: 'es2019',\n format: 'cjs',\n jsx: 'transform',\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(esbuildOptions)\n\n try {\n registerRequire(props.bubbleErrors)\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 Be sure you \"export default\" the config.`)\n }\n }\n\n const components = loadComponents(props)\n\n if (process.env.DEBUG === 'tamagui') {\n console.log(`components`, components)\n }\n\n // undo shims\n process.env.IS_STATIC = undefined\n\n // set up core-node\n if (tamaguiConfig) {\n createTamagui(tamaguiConfig as any)\n }\n\n cache[key] = {\n components,\n tamaguiConfig,\n nameToPaths: getNameToPaths(),\n }\n } catch (err) {\n if (props.bubbleErrors) {\n throw err\n }\n\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 if (!props.bubbleErrors) {\n console.log('Error loading Tamagui', err)\n }\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(props: Props) {\n const componentsModules = props.components\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 if (props.bubbleErrors) {\n throw err\n }\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": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["esbuild"]
|
|
4
|
+
"sourcesContent": ["import { readFileSync } from 'fs'\n/* eslint-disable no-console */\nimport { basename, dirname, extname, join, relative, sep } from 'path'\n\nimport generate from '@babel/generator'\nimport traverse from '@babel/traverse'\nimport * as t from '@babel/types'\nimport { Color, colorLog } from '@tamagui/cli-color'\nimport { getDefaultTamaguiConfig } from '@tamagui/config-default-node'\nimport type { StaticConfigParsed, TamaguiInternalConfig } from '@tamagui/core-node'\nimport { createTamagui } from '@tamagui/core-node'\nimport esbuild from 'esbuild'\nimport { ensureDir, existsSync, removeSync, writeFileSync } from 'fs-extra'\n\nimport { SHOULD_DEBUG } from '../constants.js'\nimport { getNameToPaths, registerRequire, unregisterRequire } from '../require.js'\nimport { babelParse } from './babelParse'\nimport { bundle } from './bundle'\n\ntype NameToPaths = {\n [key: string]: Set<string>\n}\n\nexport type LoadedComponents = {\n moduleName: string\n nameToInfo: Record<\n string,\n {\n staticConfig: StaticConfigParsed\n }\n >\n}\n\nexport type TamaguiProjectInfo = {\n components: LoadedComponents[]\n tamaguiConfig: TamaguiInternalConfig\n nameToPaths: NameToPaths\n}\n\ntype Props = {\n components: string[]\n config?: string\n forceExports?: boolean\n bubbleErrors?: boolean\n}\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(), '.tamagui', 'tamagui-node')\n const configOutPath = join(tmpDir, `tamagui.config.js`)\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.NODE_ENV === 'development' && 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 colorLog(\n Color.FgYellow,\n `\nTamagui built config and components:`\n )\n colorLog(\n Color.Dim,\n `\n - Config: .${sep}${relative(process.cwd(), configOutPath)}\n - Components: .${sep}${relative(process.cwd(), componentOutPaths.join(', '))}\n`\n )\n\n await Promise.all([\n props.config\n ? bundle({\n entryPoints: [configEntry],\n external,\n outfile: configOutPath,\n })\n : null,\n ...baseComponents.map((componentModule, i) => {\n return bundle({\n entryPoints: [componentModule],\n resolvePlatformSpecificEntries: true,\n external,\n outfile: componentOutPaths[i],\n })\n }),\n ])\n\n try {\n registerRequire(props.bubbleErrors)\n const out = require(configOutPath)\n const config = out.default || out\n\n if (!config) {\n throw new Error(`No config: ${config}`)\n }\n\n let components = loadComponents({\n ...props,\n components: componentOutPaths,\n })\n\n if (!components) {\n throw new Error(`No components found: ${componentOutPaths.join(', ')}`)\n }\n\n // map from built back to original module names\n for (const component of components) {\n component.moduleName = baseComponents[componentOutPaths.indexOf(component.moduleName)]\n if (!component.moduleName) {\n throw new Error(`Tamagui internal err`)\n }\n }\n\n // always load core so we can optimize if directly importing\n const coreComponents = loadComponents({\n ...props,\n components: ['@tamagui/core-node'],\n })\n if (coreComponents) {\n coreComponents[0].moduleName = '@tamagui/core'\n components = [...components, ...coreComponents]\n }\n\n if (process.env.NODE_ENV === 'development' && process.env.DEBUG?.startsWith('tamagui')) {\n console.log('Loaded components', components)\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 } finally {\n unregisterRequire()\n }\n}\n\nexport function resolveWebOrNativeSpecificEntry(entry: string) {\n const resolved = require.resolve(entry)\n const ext = extname(resolved)\n const fileName = basename(resolved).replace(ext, '')\n const specificExt = process.env.TAMAGUI_TARGET === 'web' ? 'web' : 'native'\n const specificFile = join(dirname(resolved), fileName + '.' + specificExt + ext)\n if (existsSync(specificFile)) {\n return specificFile\n }\n return entry\n}\n\nconst esbuildOptions = {\n loader: 'tsx',\n target: 'es2018',\n format: 'cjs',\n jsx: 'transform',\n platform: 'node',\n} as const\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(esbuildOptions)\n\n try {\n registerRequire(props.bubbleErrors)\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 globalThis['__DEV__' as any] = process.env.NODE_ENV === 'development'\n\n try {\n // config\n let tamaguiConfig: TamaguiInternalConfig | null = null\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 Be sure you \"export default\" the config.`)\n }\n }\n\n // components\n const components = loadComponents(props)\n if (!components) {\n throw new Error(`No components loaded`)\n }\n if (process.env.DEBUG === 'tamagui') {\n console.log(`components`, components)\n }\n\n // undo shims\n process.env.IS_STATIC = undefined\n delete globalThis['__DEV__' as any]\n\n // set up core-node\n if (props.config && tamaguiConfig) {\n createTamagui(tamaguiConfig as any)\n }\n\n cache[key] = {\n components,\n tamaguiConfig,\n nameToPaths: getNameToPaths(),\n }\n } catch (err) {\n if (props.bubbleErrors) {\n throw err\n }\n\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 if (!props.bubbleErrors) {\n console.log('Error loading Tamagui', err)\n }\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: Record<string, LoadedComponents[]> = {}\n\nfunction transformAddExports(ast: t.File) {\n const usedNames = new Set<string>()\n\n // avoid clobbering\n traverse(ast, {\n ExportNamedDeclaration(nodePath) {\n if (nodePath.node.specifiers) {\n for (const spec of nodePath.node.specifiers) {\n usedNames.add(t.isIdentifier(spec.exported) ? spec.exported.name : spec.exported.value)\n }\n }\n },\n })\n\n traverse(ast, {\n VariableDeclaration(nodePath) {\n // top level only\n if (!t.isProgram(nodePath.parent)) return\n const decs = nodePath.node.declarations\n if (decs.length > 1) return\n const [dec] = decs\n if (!t.isIdentifier(dec.id)) return\n if (!dec.init) return\n if (usedNames.has(dec.id.name)) return\n usedNames.add(dec.id.name)\n nodePath.replaceWith(\n t.exportNamedDeclaration(t.variableDeclaration('let', [dec]), [\n t.exportSpecifier(t.identifier(dec.id.name), t.identifier(dec.id.name)),\n ])\n )\n },\n })\n\n return generate(ast as any, {\n concise: false,\n filename: 'test.tsx',\n retainLines: false,\n sourceMaps: false,\n }).code\n}\n\nfunction loadComponents(props: Props): null | LoadedComponents[] {\n const componentsModules = props.components\n const key = componentsModules.join('')\n if (cacheComponents[key]) {\n return cacheComponents[key]\n }\n try {\n const info: LoadedComponents[] = componentsModules.flatMap((name) => {\n const extension = extname(name)\n const isLocal = Boolean(extension)\n // during props.config pass we are passing in pre-bundled stuff\n const writeTmp = isLocal && !props.config\n const fileContents = writeTmp ? readFileSync(name, 'utf-8') : ''\n const loadModule = writeTmp\n ? join(dirname(name), `.tamagui-dynamic-eval-${basename(name)}.tsx`)\n : name\n let writtenContents = fileContents\n let didBabel = false\n\n const esbuildit = (src: string, target?: 'modern') =>\n esbuild.transformSync(src, {\n ...esbuildOptions,\n ...(target === 'modern' && {\n target: 'es2022',\n jsx: 'transform',\n loader: 'tsx',\n platform: 'neutral',\n format: 'esm',\n }),\n }).code\n\n function attemptLoad({ forceExports = false } = {}) {\n // need to write to tsx to enable reading it properly (:/ esbuild-register)\n if (writeTmp) {\n writtenContents = forceExports\n ? esbuildit(transformAddExports(babelParse(esbuildit(fileContents, 'modern'))))\n : esbuildit(fileContents)\n\n writeFileSync(loadModule, writtenContents)\n }\n return {\n moduleName: name,\n nameToInfo: getComponentStaticConfigByName(\n name,\n interopDefaultExport(require(loadModule))\n ),\n }\n }\n\n const dispose = () => {\n writeTmp && removeSync(loadModule)\n }\n\n try {\n const res = attemptLoad({\n forceExports: true,\n })\n didBabel = true\n return res\n } catch (err) {\n console.log('babel err', err, writtenContents)\n // ok\n writtenContents = fileContents\n if (process.env.DEBUG?.startsWith('tamagui')) {\n console.log(`Error parsing babel likely`, err)\n }\n } finally {\n dispose()\n }\n\n try {\n return attemptLoad({\n forceExports: false,\n })\n } catch (err) {\n if (!process.env.TAMAGUI_DISABLE_WARN_DYNAMIC_LOAD) {\n console.log(`\n\nTamagui attempted but failed to dynamically load components in:\n ${name}\n\nThis will leave some styled() tags unoptimized.\nDisable this file (or dynamic loading altogether):\n\n disableExtractFoundComponents: ['${name}'] | true\n\nQuiet this warning with environment variable:\n \n TAMAGUI_DISABLE_WARN_DYNAMIC_LOAD=1\n\n`)\n console.log(err)\n console.log(\n `At: ${loadModule}`,\n `\\ndidBabel: ${didBabel}`,\n `\\nIn:`,\n writtenContents,\n `\\nwriteTmp: `,\n writeTmp\n )\n }\n return []\n } finally {\n dispose()\n }\n })\n cacheComponents[key] = info\n return info\n } catch (err: any) {\n if (props.bubbleErrors) {\n throw err\n }\n console.log(`Tamagui error bundling components`, err.message, err.stack)\n return null\n }\n}\n\nfunction getComponentStaticConfigByName(name: string, exported: any) {\n if (!exported || typeof exported !== 'object' || Array.isArray(exported)) {\n throw new Error(`Invalid export from package ${name}: ${typeof exported}`)\n }\n const components: Record<string, { staticConfig: StaticConfigParsed }> = {}\n try {\n for (const key in exported) {\n const found = getTamaguiComponent(key, exported[key])\n if (found) {\n // remove non-stringifyable\n const { Component, reactNativeWebComponent, ...sc } = found.staticConfig\n components[key] = { 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 return components\n}\n\nfunction getTamaguiComponent(\n name: string,\n Component: any\n): undefined | { staticConfig: StaticConfigParsed } {\n if (name[0].toUpperCase() !== name[0]) {\n return\n }\n const staticConfig = Component?.staticConfig as StaticConfigParsed | undefined\n if (staticConfig) {\n return Component\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA6B;AAE7B,kBAAgE;AAEhE,uBAAqB;AACrB,sBAAqB;AACrB,QAAmB;AACnB,uBAAgC;AAChC,iCAAwC;AAExC,uBAA8B;AAC9B,qBAAoB;AACpB,sBAAiE;AAEjE,uBAA6B;AAC7B,qBAAmE;AACnE,wBAA2B;AAC3B,oBAAuB;AA6BvB,MAAM,QAAQ,CAAC;AAIf,eAAsB,YAAY,OAA2C;AAlD7E;AAmDE,QAAM,MAAM,KAAK,UAAU,KAAK;AAChC,MAAI,MAAM,MAAM;AACd,QAAI,MAAM,gBAAgB,SAAS;AACjC,aAAO,MAAM,MAAM;AAAA,IACrB;AACA,WAAO,MAAM;AAAA,EACf;AAEA,MAAI,WAAqB,MAAM;AAAA,EAAC;AAChC,QAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ;AAChC,eAAW;AAAA,EACb,CAAC;AAED,QAAM,aAAS,kBAAK,QAAQ,IAAI,GAAG,YAAY,cAAc;AAC7D,QAAM,oBAAgB,kBAAK,QAAQ,mBAAmB;AACtD,QAAM,iBAAiB,MAAM,WAAW,OAAO,CAAC,MAAM,MAAM,eAAe;AAC3E,QAAM,oBAAoB,eAAe;AAAA,IAAI,CAAC,wBAC5C;AAAA,MACE;AAAA,MACA,GAAG,gBACA,MAAM,eAAG,EACT,KAAK,GAAG,EACR,QAAQ,gBAAgB,EAAE;AAAA,IAC/B;AAAA,EACF;AAEA,QAAM,WAAW,CAAC,iBAAiB,sBAAsB,SAAS,WAAW;AAC7E,QAAM,cAAc,MAAM,aAAS,kBAAK,QAAQ,IAAI,GAAG,MAAM,MAAM,IAAI;AAEvE,MAAI,QAAQ,IAAI,aAAa,mBAAiB,aAAQ,IAAI,UAAZ,mBAAmB,WAAW,aAAY;AACtF,YAAQ,IAAI,yBAAyB,WAAW;AAAA,EAClD;AAGA,MAAI;AACF,cAAM,2BAAU,MAAM;AAAA,EACxB,QAAE;AAAA,EAEF;AAEA;AAAA,IACE,uBAAM;AAAA,IACN;AAAA;AAAA,EAEF;AACA;AAAA,IACE,uBAAM;AAAA,IACN;AAAA,eACW,sBAAM,sBAAS,QAAQ,IAAI,GAAG,aAAa;AAAA,mBACvC,sBAAM,sBAAS,QAAQ,IAAI,GAAG,kBAAkB,KAAK,IAAI,CAAC;AAAA;AAAA,EAE3E;AAEA,QAAM,QAAQ,IAAI;AAAA,IAChB,MAAM,aACF,sBAAO;AAAA,MACL,aAAa,CAAC,WAAW;AAAA,MACzB;AAAA,MACA,SAAS;AAAA,IACX,CAAC,IACD;AAAA,IACJ,GAAG,eAAe,IAAI,CAAC,iBAAiB,MAAM;AAC5C,iBAAO,sBAAO;AAAA,QACZ,aAAa,CAAC,eAAe;AAAA,QAC7B,gCAAgC;AAAA,QAChC;AAAA,QACA,SAAS,kBAAkB;AAAA,MAC7B,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AAED,MAAI;AACF,wCAAgB,MAAM,YAAY;AAClC,UAAM,MAAM,QAAQ,aAAa;AACjC,UAAM,SAAS,IAAI,WAAW;AAE9B,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,cAAc,QAAQ;AAAA,IACxC;AAEA,QAAI,aAAa,eAAe;AAAA,MAC9B,GAAG;AAAA,MACH,YAAY;AAAA,IACd,CAAC;AAED,QAAI,CAAC,YAAY;AACf,YAAM,IAAI,MAAM,wBAAwB,kBAAkB,KAAK,IAAI,GAAG;AAAA,IACxE;AAGA,eAAW,aAAa,YAAY;AAClC,gBAAU,aAAa,eAAe,kBAAkB,QAAQ,UAAU,UAAU;AACpF,UAAI,CAAC,UAAU,YAAY;AACzB,cAAM,IAAI,MAAM,sBAAsB;AAAA,MACxC;AAAA,IACF;AAGA,UAAM,iBAAiB,eAAe;AAAA,MACpC,GAAG;AAAA,MACH,YAAY,CAAC,oBAAoB;AAAA,IACnC,CAAC;AACD,QAAI,gBAAgB;AAClB,qBAAe,GAAG,aAAa;AAC/B,mBAAa,CAAC,GAAG,YAAY,GAAG,cAAc;AAAA,IAChD;AAEA,QAAI,QAAQ,IAAI,aAAa,mBAAiB,aAAQ,IAAI,UAAZ,mBAAmB,WAAW,aAAY;AACtF,cAAQ,IAAI,qBAAqB,UAAU;AAAA,IAC7C;AAEA,UAAM,OAAO;AAAA,MACX;AAAA,MACA,aAAa,CAAC;AAAA,MACd,eAAe;AAAA,IACjB;AAGA,wCAAc,MAAM,KAAK,aAAa;AAEtC,aAAS,MAAM,IAAI;AAEnB,WAAO,MAAM;AAAA,EACf,UAAE;AACA,0CAAkB;AAAA,EACpB;AACF;AAEO,SAAS,gCAAgC,OAAe;AAC7D,QAAM,WAAW,QAAQ,QAAQ;AACjC,QAAM,UAAM,qBAAQ,QAAQ;AAC5B,QAAM,eAAW,sBAAS,QAAQ,EAAE,QAAQ,KAAK,EAAE;AACnD,QAAM,cAAc,QAAQ,IAAI,mBAAmB,QAAQ,QAAQ;AACnE,QAAM,mBAAe,sBAAK,qBAAQ,QAAQ,GAAG,WAAW,MAAM,cAAc,GAAG;AAC/E,UAAI,4BAAW,YAAY,GAAG;AAC5B,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEA,MAAM,iBAAiB;AAAA,EACrB,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,UAAU;AACZ;AAGO,SAAS,gBAAgB,OAAkC;AAChE,QAAM,MAAM,KAAK,UAAU,KAAK;AAChC,MAAI,MAAM,MAAM;AACd,WAAO,MAAM;AAAA,EACf;AAEA,QAAM,EAAE,WAAW,IAAI,QAAQ,4BAA4B,EAAE,SAAS,cAAc;AAEpF,MAAI;AACF,wCAAgB,MAAM,YAAY;AAIlC,YAAQ,IAAI,YAAY;AACxB,eAAW,aAAoB,QAAQ,IAAI,aAAa;AAExD,QAAI;AAEF,UAAI,gBAA8C;AAClD,UAAI,MAAM,QAAQ;AAChB,cAAM,iBAAa,kBAAK,QAAQ,IAAI,GAAG,MAAM,MAAM;AACnD,cAAM,MAAM,QAAQ,UAAU;AAC9B,wBAAiB,IAAI,cAAc;AACnC,YAAI,CAAC,iBAAiB,CAAC,cAAc,QAAQ;AAC3C,gBAAM,WAAW,QAAQ,QAAQ;AACjC,gBAAM,IAAI,MAAM,8BAA8B;AAAA;AAAA,2CAEb;AAAA,QACnC;AAAA,MACF;AAGA,YAAM,aAAa,eAAe,KAAK;AACvC,UAAI,CAAC,YAAY;AACf,cAAM,IAAI,MAAM,sBAAsB;AAAA,MACxC;AACA,UAAI,QAAQ,IAAI,UAAU,WAAW;AACnC,gBAAQ,IAAI,cAAc,UAAU;AAAA,MACtC;AAGA,cAAQ,IAAI,YAAY;AACxB,aAAO,WAAW;AAGlB,UAAI,MAAM,UAAU,eAAe;AACjC,4CAAc,aAAoB;AAAA,MACpC;AAEA,YAAM,OAAO;AAAA,QACX;AAAA,QACA;AAAA,QACA,iBAAa,+BAAe;AAAA,MAC9B;AAAA,IACF,SAAS,KAAP;AACA,UAAI,MAAM,cAAc;AACtB,cAAM;AAAA,MACR;AAEA,UAAI,eAAe,OAAO;AACxB,gBAAQ;AAAA,UACN;AAAA,QACF;AACA,gBAAQ,IAAI;AAAA;AAAA,MAAW,IAAI;AAAA;AAAA,CAAa;AACxC,YAAI,+BAAc;AAChB,kBAAQ,IAAI,IAAI,KAAK;AAAA,QACvB;AAAA,MACF,OAAO;AACL,gBAAQ,MAAM,mCAAmC,GAAG;AAAA,MACtD;AACA,aAAO;AAAA,QACL,YAAY,CAAC;AAAA,QACb,mBAAe,oDAAwB;AAAA,QACvC,aAAa,CAAC;AAAA,MAChB;AAAA,IACF;AAEA,WAAO,MAAM;AAAA,EACf,SAAS,KAAP;AACA,QAAI,CAAC,MAAM,cAAc;AACvB,cAAQ,IAAI,yBAAyB,GAAG;AAAA,IAC1C;AACA,UAAM;AAAA,EACR,UAAE;AACA,eAAW;AACX,0CAAkB;AAAA,EACpB;AACF;AAEA,SAAS,qBAAqB,KAAU;AACtC,UAAO,2BAAK,YAAW;AACzB;AAEA,MAAM,kBAAsD,CAAC;AAE7D,SAAS,oBAAoB,KAAa;AACxC,QAAM,YAAY,oBAAI,IAAY;AAGlC,sBAAAA,SAAS,KAAK;AAAA,IACZ,uBAAuB,UAAU;AAC/B,UAAI,SAAS,KAAK,YAAY;AAC5B,mBAAW,QAAQ,SAAS,KAAK,YAAY;AAC3C,oBAAU,IAAI,EAAE,aAAa,KAAK,QAAQ,IAAI,KAAK,SAAS,OAAO,KAAK,SAAS,KAAK;AAAA,QACxF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,sBAAAA,SAAS,KAAK;AAAA,IACZ,oBAAoB,UAAU;AAE5B,UAAI,CAAC,EAAE,UAAU,SAAS,MAAM;AAAG;AACnC,YAAM,OAAO,SAAS,KAAK;AAC3B,UAAI,KAAK,SAAS;AAAG;AACrB,YAAM,CAAC,GAAG,IAAI;AACd,UAAI,CAAC,EAAE,aAAa,IAAI,EAAE;AAAG;AAC7B,UAAI,CAAC,IAAI;AAAM;AACf,UAAI,UAAU,IAAI,IAAI,GAAG,IAAI;AAAG;AAChC,gBAAU,IAAI,IAAI,GAAG,IAAI;AACzB,eAAS;AAAA,QACP,EAAE,uBAAuB,EAAE,oBAAoB,OAAO,CAAC,GAAG,CAAC,GAAG;AAAA,UAC5D,EAAE,gBAAgB,EAAE,WAAW,IAAI,GAAG,IAAI,GAAG,EAAE,WAAW,IAAI,GAAG,IAAI,CAAC;AAAA,QACxE,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,CAAC;AAED,aAAO,iBAAAC,SAAS,KAAY;AAAA,IAC1B,SAAS;AAAA,IACT,UAAU;AAAA,IACV,aAAa;AAAA,IACb,YAAY;AAAA,EACd,CAAC,EAAE;AACL;AAEA,SAAS,eAAe,OAAyC;AAC/D,QAAM,oBAAoB,MAAM;AAChC,QAAM,MAAM,kBAAkB,KAAK,EAAE;AACrC,MAAI,gBAAgB,MAAM;AACxB,WAAO,gBAAgB;AAAA,EACzB;AACA,MAAI;AACF,UAAM,OAA2B,kBAAkB,QAAQ,CAAC,SAAS;AAvVzE;AAwVM,YAAM,gBAAY,qBAAQ,IAAI;AAC9B,YAAM,UAAU,QAAQ,SAAS;AAEjC,YAAM,WAAW,WAAW,CAAC,MAAM;AACnC,YAAM,eAAe,eAAW,wBAAa,MAAM,OAAO,IAAI;AAC9D,YAAM,aAAa,eACf,sBAAK,qBAAQ,IAAI,GAAG,6BAAyB,sBAAS,IAAI,OAAO,IACjE;AACJ,UAAI,kBAAkB;AACtB,UAAI,WAAW;AAEf,YAAM,YAAY,CAAC,KAAa,WAC9B,eAAAC,QAAQ,cAAc,KAAK;AAAA,QACzB,GAAG;AAAA,QACH,GAAI,WAAW,YAAY;AAAA,UACzB,QAAQ;AAAA,UACR,KAAK;AAAA,UACL,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,QAAQ;AAAA,QACV;AAAA,MACF,CAAC,EAAE;AAEL,eAAS,YAAY,EAAE,eAAe,MAAM,IAAI,CAAC,GAAG;AAElD,YAAI,UAAU;AACZ,4BAAkB,eACd,UAAU,wBAAoB,8BAAW,UAAU,cAAc,QAAQ,CAAC,CAAC,CAAC,IAC5E,UAAU,YAAY;AAE1B,6CAAc,YAAY,eAAe;AAAA,QAC3C;AACA,eAAO;AAAA,UACL,YAAY;AAAA,UACZ,YAAY;AAAA,YACV;AAAA,YACA,qBAAqB,QAAQ,UAAU,CAAC;AAAA,UAC1C;AAAA,QACF;AAAA,MACF;AAEA,YAAM,UAAU,MAAM;AACpB,wBAAY,4BAAW,UAAU;AAAA,MACnC;AAEA,UAAI;AACF,cAAM,MAAM,YAAY;AAAA,UACtB,cAAc;AAAA,QAChB,CAAC;AACD,mBAAW;AACX,eAAO;AAAA,MACT,SAAS,KAAP;AACA,gBAAQ,IAAI,aAAa,KAAK,eAAe;AAE7C,0BAAkB;AAClB,aAAI,aAAQ,IAAI,UAAZ,mBAAmB,WAAW,YAAY;AAC5C,kBAAQ,IAAI,8BAA8B,GAAG;AAAA,QAC/C;AAAA,MACF,UAAE;AACA,gBAAQ;AAAA,MACV;AAEA,UAAI;AACF,eAAO,YAAY;AAAA,UACjB,cAAc;AAAA,QAChB,CAAC;AAAA,MACH,SAAS,KAAP;AACA,YAAI,CAAC,QAAQ,IAAI,mCAAmC;AAClD,kBAAQ,IAAI;AAAA;AAAA;AAAA,IAGlB;AAAA;AAAA;AAAA;AAAA;AAAA,qCAKiC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAMpC;AACS,kBAAQ,IAAI,GAAG;AACf,kBAAQ;AAAA,YACN,OAAO;AAAA,YACP;AAAA,YAAe;AAAA,YACf;AAAA;AAAA,YACA;AAAA,YACA;AAAA;AAAA,YACA;AAAA,UACF;AAAA,QACF;AACA,eAAO,CAAC;AAAA,MACV,UAAE;AACA,gBAAQ;AAAA,MACV;AAAA,IACF,CAAC;AACD,oBAAgB,OAAO;AACvB,WAAO;AAAA,EACT,SAAS,KAAP;AACA,QAAI,MAAM,cAAc;AACtB,YAAM;AAAA,IACR;AACA,YAAQ,IAAI,qCAAqC,IAAI,SAAS,IAAI,KAAK;AACvE,WAAO;AAAA,EACT;AACF;AAEA,SAAS,+BAA+B,MAAc,UAAe;AACnE,MAAI,CAAC,YAAY,OAAO,aAAa,YAAY,MAAM,QAAQ,QAAQ,GAAG;AACxE,UAAM,IAAI,MAAM,+BAA+B,SAAS,OAAO,UAAU;AAAA,EAC3E;AACA,QAAM,aAAmE,CAAC;AAC1E,MAAI;AACF,eAAW,OAAO,UAAU;AAC1B,YAAM,QAAQ,oBAAoB,KAAK,SAAS,IAAI;AACpD,UAAI,OAAO;AAET,cAAM,EAAE,WAAW,4BAA4B,GAAG,IAAI,MAAM;AAC5D,mBAAW,OAAO,EAAE,cAAc,GAAG;AAAA,MACvC;AAAA,IACF;AAAA,EACF,SAAS,KAAP;AACA,YAAQ,MAAM,mCAAmC;AACjD,QAAI,eAAe,OAAO;AACxB,cAAQ,MAAM,IAAI,SAAS,IAAI,KAAK;AAAA,IACtC,OAAO;AACL,cAAQ,MAAM,GAAG;AAAA,IACnB;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,oBACP,MACA,WACkD;AAClD,MAAI,KAAK,GAAG,YAAY,MAAM,KAAK,IAAI;AACrC;AAAA,EACF;AACA,QAAM,eAAe,uCAAW;AAChC,MAAI,cAAc;AAChB,WAAO;AAAA,EACT;AACF;",
|
|
6
|
+
"names": ["traverse", "generate", "esbuild"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/extractor/normalizeTernaries.ts"],
|
|
4
|
-
"sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport invariant from 'invariant'\n\nimport { Ternary } from '../types.js'\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;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAqB;AACrB,QAAmB;AACnB,uBAAsB;AAIf,SAAS,mBAAmB,WAAsB;AACvD,uBAAAA;AAAA,IACE,MAAM,QAAQ,SAAS;AAAA,IACvB;AAAA,EACF;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,KAAK,IAAI,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,UAAM,iBAAAC,SAAS,
|
|
4
|
+
"sourcesContent": ["import generate from '@babel/generator'\nimport * as t from '@babel/types'\nimport invariant from 'invariant'\n\nimport { Ternary } from '../types.js'\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 as any).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;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAqB;AACrB,QAAmB;AACnB,uBAAsB;AAIf,SAAS,mBAAmB,WAAsB;AACvD,uBAAAA;AAAA,IACE,MAAM,QAAQ,SAAS;AAAA,IACvB;AAAA,EACF;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,KAAK,IAAI,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,UAAM,iBAAAC,SAAS,WAAkB,EAAE;AAEzC,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,YAAY,aAAa,aAAa,cAAc,CAAC;AAC3D,UAAM,aAAa,aAAa,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": ["invariant", "generate"]
|
|
7
7
|
}
|
package/dist/getPragmaOptions.js
CHANGED
|
@@ -35,7 +35,7 @@ function getPragmaOptions({
|
|
|
35
35
|
}
|
|
36
36
|
let shouldPrintDebug = false;
|
|
37
37
|
let shouldDisable = false;
|
|
38
|
-
const firstLine = source.split("\n"
|
|
38
|
+
const firstLine = source.slice(0, 800).split("\n")[0];
|
|
39
39
|
if (firstLine.includes("tamagui-ignore")) {
|
|
40
40
|
shouldDisable = true;
|
|
41
41
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
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'
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AARH;AASE,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;
|
|
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 // try and avoid too much parsing but sometimes esbuild adds helpers above..\n const firstLine = source.slice(0, 800).split('\\n')[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": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AARH;AASE,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;AAGpB,QAAM,YAAY,OAAO,MAAM,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE;AAEnD,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,OAAI,aAAQ,IAAI,UAAZ,mBAAmB,SAAS,YAAY;AAC1C,uBAAmB;AAAA,EACrB;AAEA,OAAI,aAAQ,IAAI,UAAZ,mBAAmB,SAAS,oBAAoB;AAClD,uBAAmB;AAAA,EACrB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/index.js
CHANGED
|
@@ -30,7 +30,6 @@ var import_literalToAst = require("./extractor/literalToAst.js");
|
|
|
30
30
|
__reExport(src_exports, require("./constants.js"), module.exports);
|
|
31
31
|
__reExport(src_exports, require("./extractor/extractToClassNames.js"), module.exports);
|
|
32
32
|
__reExport(src_exports, require("./extractor/extractHelpers.js"), module.exports);
|
|
33
|
-
__reExport(src_exports, require("@tamagui/patch-rnw"), module.exports);
|
|
34
33
|
__reExport(src_exports, require("./extractor/loadTamagui.js"), module.exports);
|
|
35
34
|
__reExport(src_exports, require("./require.js"), module.exports);
|
|
36
35
|
__reExport(src_exports, require("./getPragmaOptions.js"), module.exports);
|
package/dist/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.js'\nexport { createExtractor } from './extractor/createExtractor.js'\nexport { literalToAst } from './extractor/literalToAst.js'\nexport * from './constants.js'\nexport * from './extractor/extractToClassNames.js'\nexport * from './extractor/extractHelpers.js'\nexport * from '
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA+B;AAC/B,6BAAgC;AAChC,0BAA6B;AAC7B,wBAAc,2BALd;AAMA,wBAAc,+CANd;AAOA,wBAAc,0CAPd;AAQA,wBAAc
|
|
4
|
+
"sourcesContent": ["process.env.TAMAGUI_COMPILE_PROCESS = '1'\n\nexport { TamaguiOptions } from './types.js'\nexport { createExtractor } from './extractor/createExtractor.js'\nexport { literalToAst } from './extractor/literalToAst.js'\nexport * from './constants.js'\nexport * from './extractor/extractToClassNames.js'\nexport * from './extractor/extractHelpers.js'\nexport * from './extractor/loadTamagui.js'\nexport * from './require.js'\nexport * from './getPragmaOptions.js'\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA+B;AAC/B,6BAAgC;AAChC,0BAA6B;AAC7B,wBAAc,2BALd;AAMA,wBAAc,+CANd;AAOA,wBAAc,0CAPd;AAQA,wBAAc,uCARd;AASA,wBAAc,yBATd;AAUA,wBAAc,kCAVd;AAAA,QAAQ,IAAI,0BAA0B;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|