@tamagui/static 1.0.0-alpha.3 → 1.0.0-alpha.30
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 +33 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/extractor/accessSafe.js +33 -0
- package/dist/cjs/extractor/accessSafe.js.map +7 -0
- package/dist/cjs/extractor/babelParse.js +52 -0
- package/dist/cjs/extractor/babelParse.js.map +7 -0
- package/dist/cjs/extractor/buildClassName.js +62 -0
- package/dist/cjs/extractor/buildClassName.js.map +7 -0
- package/dist/cjs/extractor/createEvaluator.js +73 -0
- package/dist/cjs/extractor/createEvaluator.js.map +7 -0
- package/dist/cjs/extractor/createExtractor.js +903 -0
- package/dist/cjs/extractor/createExtractor.js.map +7 -0
- package/dist/cjs/extractor/ensureImportingConcat.js +46 -0
- package/dist/cjs/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/cjs/extractor/evaluateAstNode.js +116 -0
- package/dist/cjs/extractor/evaluateAstNode.js.map +7 -0
- package/dist/cjs/extractor/extractHelpers.js +118 -0
- package/dist/cjs/extractor/extractHelpers.js.map +7 -0
- package/dist/cjs/extractor/extractMediaStyle.js +187 -0
- package/dist/cjs/extractor/extractMediaStyle.js.map +7 -0
- package/dist/cjs/extractor/extractToClassNames.js +279 -0
- package/dist/cjs/extractor/extractToClassNames.js.map +7 -0
- package/dist/cjs/extractor/findTopmostFunction.js +29 -0
- package/dist/cjs/extractor/findTopmostFunction.js.map +7 -0
- package/dist/cjs/extractor/generatedUid.js +50 -0
- package/dist/cjs/extractor/generatedUid.js.map +7 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js +71 -0
- package/dist/cjs/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/cjs/extractor/getSourceModule.js +91 -0
- package/dist/cjs/extractor/getSourceModule.js.map +7 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js +150 -0
- package/dist/cjs/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/cjs/extractor/hoistClassNames.js +66 -0
- package/dist/cjs/extractor/hoistClassNames.js.map +7 -0
- package/dist/cjs/extractor/literalToAst.js +56 -0
- package/dist/cjs/extractor/literalToAst.js.map +7 -0
- package/dist/cjs/extractor/loadTamagui.js +63 -0
- package/dist/cjs/extractor/loadTamagui.js.map +7 -0
- package/dist/cjs/extractor/logLines.js +23 -0
- package/dist/cjs/extractor/logLines.js.map +7 -0
- package/dist/cjs/extractor/normalizeTernaries.js +102 -0
- package/dist/cjs/extractor/normalizeTernaries.js.map +7 -0
- package/dist/cjs/extractor/removeUnusedHooks.js +101 -0
- package/dist/cjs/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/cjs/index.js +37 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/patchReactNativeWeb.js +129 -0
- package/dist/cjs/patchReactNativeWeb.js.map +7 -0
- package/dist/cjs/types.js +4 -0
- package/dist/cjs/types.js.map +7 -0
- package/dist/esm/constants.js +10 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/extractor/accessSafe.js +11 -0
- package/dist/esm/extractor/accessSafe.js.map +7 -0
- package/dist/esm/extractor/babelParse.js +30 -0
- package/dist/esm/extractor/babelParse.js.map +7 -0
- package/dist/esm/extractor/buildClassName.js +40 -0
- package/dist/esm/extractor/buildClassName.js.map +7 -0
- package/dist/esm/extractor/createEvaluator.js +51 -0
- package/dist/esm/extractor/createEvaluator.js.map +7 -0
- package/dist/esm/extractor/createExtractor.js +840 -0
- package/dist/esm/extractor/createExtractor.js.map +7 -0
- package/dist/esm/extractor/ensureImportingConcat.js +24 -0
- package/dist/esm/extractor/ensureImportingConcat.js.map +7 -0
- package/dist/esm/extractor/evaluateAstNode.js +94 -0
- package/dist/esm/extractor/evaluateAstNode.js.map +7 -0
- package/dist/esm/extractor/extractHelpers.js +94 -0
- package/dist/esm/extractor/extractHelpers.js.map +7 -0
- package/dist/esm/extractor/extractMediaStyle.js +151 -0
- package/dist/esm/extractor/extractMediaStyle.js.map +7 -0
- package/dist/esm/extractor/extractToClassNames.js +240 -0
- package/dist/esm/extractor/extractToClassNames.js.map +7 -0
- package/dist/esm/extractor/findTopmostFunction.js +23 -0
- package/dist/esm/extractor/findTopmostFunction.js.map +7 -0
- package/dist/esm/extractor/generatedUid.js +28 -0
- package/dist/esm/extractor/generatedUid.js.map +7 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js +49 -0
- package/dist/esm/extractor/getPropValueFromAttributes.js.map +7 -0
- package/dist/esm/extractor/getSourceModule.js +69 -0
- package/dist/esm/extractor/getSourceModule.js.map +7 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js +128 -0
- package/dist/esm/extractor/getStaticBindingsForScope.js.map +7 -0
- package/dist/esm/extractor/hoistClassNames.js +44 -0
- package/dist/esm/extractor/hoistClassNames.js.map +7 -0
- package/dist/esm/extractor/literalToAst.js +34 -0
- package/dist/esm/extractor/literalToAst.js.map +7 -0
- package/dist/esm/extractor/loadTamagui.js +41 -0
- package/dist/esm/extractor/loadTamagui.js.map +7 -0
- package/dist/esm/extractor/logLines.js +17 -0
- package/dist/esm/extractor/logLines.js.map +7 -0
- package/dist/esm/extractor/normalizeTernaries.js +52 -0
- package/dist/esm/extractor/normalizeTernaries.js.map +7 -0
- package/dist/esm/extractor/removeUnusedHooks.js +78 -0
- package/dist/esm/extractor/removeUnusedHooks.js.map +7 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/patchReactNativeWeb.js +107 -0
- package/dist/esm/patchReactNativeWeb.js.map +7 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +7 -0
- package/dist/extractor/createExtractor.js +58 -36
- package/dist/extractor/createExtractor.js.map +2 -2
- package/dist/extractor/extractToClassNames.js +9 -17
- package/dist/extractor/extractToClassNames.js.map +2 -2
- package/dist/index.cjs +89 -58
- package/dist/index.cjs.map +2 -2
- package/dist/jsx/constants.js +9 -0
- package/dist/jsx/extractor/accessSafe.js +10 -0
- package/dist/jsx/extractor/babelParse.js +29 -0
- package/dist/jsx/extractor/buildClassName.js +39 -0
- package/dist/jsx/extractor/createEvaluator.js +50 -0
- package/dist/jsx/extractor/createExtractor.js +839 -0
- package/dist/jsx/extractor/ensureImportingConcat.js +23 -0
- package/dist/jsx/extractor/evaluateAstNode.js +93 -0
- package/dist/jsx/extractor/extractHelpers.js +93 -0
- package/dist/jsx/extractor/extractMediaStyle.js +150 -0
- package/dist/jsx/extractor/extractToClassNames.js +239 -0
- package/dist/jsx/extractor/findTopmostFunction.js +22 -0
- package/dist/jsx/extractor/generatedUid.js +27 -0
- package/dist/jsx/extractor/getPropValueFromAttributes.js +48 -0
- package/dist/jsx/extractor/getSourceModule.js +68 -0
- package/dist/jsx/extractor/getStaticBindingsForScope.js +127 -0
- package/dist/jsx/extractor/hoistClassNames.js +43 -0
- package/dist/jsx/extractor/literalToAst.js +33 -0
- package/dist/jsx/extractor/loadTamagui.js +40 -0
- package/dist/jsx/extractor/logLines.js +16 -0
- package/dist/jsx/extractor/normalizeTernaries.js +51 -0
- package/dist/jsx/extractor/removeUnusedHooks.js +77 -0
- package/dist/jsx/index.js +13 -0
- package/{src/patchReactNativeWeb.ts → dist/jsx/patchReactNativeWeb.js} +44 -45
- package/dist/jsx/types.js +0 -0
- package/dist/patchReactNativeWeb.js +18 -3
- package/dist/patchReactNativeWeb.js.map +2 -2
- package/package.json +19 -16
- package/types/constants.d.ts +4 -0
- package/types/constants.d.ts.map +1 -0
- package/types/extractor/accessSafe.d.ts +3 -0
- package/types/extractor/accessSafe.d.ts.map +1 -0
- package/types/extractor/babelParse.d.ts +5 -0
- package/types/extractor/babelParse.d.ts.map +1 -0
- package/types/extractor/buildClassName.d.ts +4 -0
- package/types/extractor/buildClassName.d.ts.map +1 -0
- package/types/extractor/createEvaluator.d.ts +12 -0
- package/types/extractor/createEvaluator.d.ts.map +1 -0
- package/types/extractor/createExtractor.d.ts +34 -0
- package/types/extractor/createExtractor.d.ts.map +1 -0
- package/types/extractor/ensureImportingConcat.d.ts +4 -0
- package/types/extractor/ensureImportingConcat.d.ts.map +1 -0
- package/types/extractor/evaluateAstNode.d.ts +3 -0
- package/types/extractor/evaluateAstNode.d.ts.map +1 -0
- package/types/extractor/extractHelpers.d.ts +12 -0
- package/types/extractor/extractHelpers.d.ts.map +1 -0
- package/types/extractor/extractMediaStyle.d.ts +10 -0
- package/types/extractor/extractMediaStyle.d.ts.map +1 -0
- package/types/extractor/extractToClassNames.d.ts +22 -0
- package/types/extractor/extractToClassNames.d.ts.map +1 -0
- package/types/extractor/findTopmostFunction.d.ts +4 -0
- package/types/extractor/findTopmostFunction.d.ts.map +1 -0
- package/types/extractor/generatedUid.d.ts +5 -0
- package/types/extractor/generatedUid.d.ts.map +1 -0
- package/types/extractor/getPropValueFromAttributes.d.ts +3 -0
- package/types/extractor/getPropValueFromAttributes.d.ts.map +1 -0
- package/types/extractor/getSourceModule.d.ts +16 -0
- package/types/extractor/getSourceModule.d.ts.map +1 -0
- package/types/extractor/getStaticBindingsForScope.d.ts +4 -0
- package/types/extractor/getStaticBindingsForScope.d.ts.map +1 -0
- package/types/extractor/hoistClassNames.d.ts +6 -0
- package/types/extractor/hoistClassNames.d.ts.map +1 -0
- package/types/extractor/literalToAst.d.ts +3 -0
- package/types/extractor/literalToAst.d.ts.map +1 -0
- package/types/extractor/loadTamagui.d.ts +9 -0
- package/types/extractor/loadTamagui.d.ts.map +1 -0
- package/types/extractor/logLines.d.ts +2 -0
- package/types/extractor/logLines.d.ts.map +1 -0
- package/types/extractor/normalizeTernaries.d.ts +3 -0
- package/types/extractor/normalizeTernaries.d.ts.map +1 -0
- package/types/extractor/removeUnusedHooks.d.ts +3 -0
- package/types/extractor/removeUnusedHooks.d.ts.map +1 -0
- package/types/index.d.ts +8 -0
- package/types/index.d.ts.map +1 -0
- package/types/patchReactNativeWeb.d.ts +2 -0
- package/types/patchReactNativeWeb.d.ts.map +1 -0
- package/types/types.d.ts +79 -0
- package/types/types.d.ts.map +1 -0
- package/src/constants.ts +0 -10
- package/src/extractor/accessSafe.ts +0 -18
- package/src/extractor/babelParse.ts +0 -27
- package/src/extractor/buildClassName.ts +0 -61
- package/src/extractor/createEvaluator.ts +0 -68
- package/src/extractor/createExtractor.ts +0 -1116
- package/src/extractor/ensureImportingConcat.ts +0 -33
- package/src/extractor/evaluateAstNode.ts +0 -121
- package/src/extractor/extractHelpers.ts +0 -102
- package/src/extractor/extractMediaStyle.ts +0 -191
- package/src/extractor/extractToClassNames.ts +0 -337
- package/src/extractor/findTopmostFunction.ts +0 -22
- package/src/extractor/generatedUid.ts +0 -43
- package/src/extractor/getPropValueFromAttributes.ts +0 -92
- package/src/extractor/getSourceModule.ts +0 -101
- package/src/extractor/getStaticBindingsForScope.ts +0 -173
- package/src/extractor/hoistClassNames.ts +0 -45
- package/src/extractor/literalToAst.ts +0 -32
- package/src/extractor/loadTamagui.ts +0 -61
- package/src/extractor/normalizeTernaries.ts +0 -60
- package/src/extractor/removeUnusedHooks.ts +0 -76
- package/src/index.ts +0 -9
- package/src/types.ts +0 -80
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import * as t from "@babel/types";
|
|
4
|
+
function hoistClassNames(path, existing, expr) {
|
|
5
|
+
const hoist = hoistClassNames.bind(null, path, existing);
|
|
6
|
+
if (t.isStringLiteral(expr)) {
|
|
7
|
+
if (expr.value.trim() === "") {
|
|
8
|
+
return expr;
|
|
9
|
+
}
|
|
10
|
+
if (existing[expr.value]) {
|
|
11
|
+
return existing[expr.value];
|
|
12
|
+
}
|
|
13
|
+
const identifier = replaceStringWithVariable(expr);
|
|
14
|
+
existing[expr.value] = identifier;
|
|
15
|
+
return identifier;
|
|
16
|
+
}
|
|
17
|
+
if (t.isBinaryExpression(expr)) {
|
|
18
|
+
return t.binaryExpression(expr.operator, hoist(expr.left), hoist(expr.right));
|
|
19
|
+
}
|
|
20
|
+
if (t.isLogicalExpression(expr)) {
|
|
21
|
+
return t.logicalExpression(expr.operator, hoist(expr.left), hoist(expr.right));
|
|
22
|
+
}
|
|
23
|
+
if (t.isConditionalExpression(expr)) {
|
|
24
|
+
return t.conditionalExpression(expr.test, hoist(expr.consequent), hoist(expr.alternate));
|
|
25
|
+
}
|
|
26
|
+
return expr;
|
|
27
|
+
function replaceStringWithVariable(str) {
|
|
28
|
+
const uid = path.scope.generateUidIdentifier("cn");
|
|
29
|
+
const parent = path.findParent((path2) => path2.isProgram());
|
|
30
|
+
if (!parent)
|
|
31
|
+
throw new Error(`no program?`);
|
|
32
|
+
const variable = t.variableDeclaration("const", [
|
|
33
|
+
t.variableDeclarator(uid, t.stringLiteral(` ${str.value}`))
|
|
34
|
+
]);
|
|
35
|
+
parent.unshiftContainer("body", variable);
|
|
36
|
+
return uid;
|
|
37
|
+
}
|
|
38
|
+
__name(replaceStringWithVariable, "replaceStringWithVariable");
|
|
39
|
+
}
|
|
40
|
+
__name(hoistClassNames, "hoistClassNames");
|
|
41
|
+
export {
|
|
42
|
+
hoistClassNames
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=hoistClassNames.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/hoistClassNames.ts"],
|
|
4
|
+
"sourcesContent": ["import { NodePath } from '@babel/traverse'\nimport * as t from '@babel/types'\n\nexport function hoistClassNames(\n path: NodePath<t.JSXElement>,\n existing: { [key: string]: t.Identifier },\n expr: t.Expression\n) {\n const hoist = hoistClassNames.bind(null, path, existing)\n if (t.isStringLiteral(expr)) {\n if (expr.value.trim() === '') {\n return expr\n }\n if (existing[expr.value]) {\n return existing[expr.value]\n }\n const identifier = replaceStringWithVariable(expr)\n existing[expr.value] = identifier\n return identifier\n }\n if (t.isBinaryExpression(expr)) {\n return t.binaryExpression(expr.operator, hoist(expr.left), hoist(expr.right))\n }\n if (t.isLogicalExpression(expr)) {\n return t.logicalExpression(expr.operator, hoist(expr.left), hoist(expr.right))\n }\n if (t.isConditionalExpression(expr)) {\n return t.conditionalExpression(expr.test, hoist(expr.consequent), hoist(expr.alternate))\n }\n return expr\n\n function replaceStringWithVariable(str: t.StringLiteral): t.Identifier {\n // hoist outside fn!\n const uid = path.scope.generateUidIdentifier('cn')\n const parent = path.findParent((path) => path.isProgram())\n if (!parent) throw new Error(`no program?`)\n const variable = t.variableDeclaration('const', [\n // adding a space for extra safety\n t.variableDeclarator(uid, t.stringLiteral(` ${str.value}`)),\n ])\n // @ts-ignore\n parent.unshiftContainer('body', variable)\n return uid\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AACA;AAEO,yBACL,MACA,UACA,MACA;AACA,QAAM,QAAQ,gBAAgB,KAAK,MAAM,MAAM;AAC/C,MAAI,EAAE,gBAAgB,OAAO;AAC3B,QAAI,KAAK,MAAM,WAAW,IAAI;AAC5B,aAAO;AAAA;AAET,QAAI,SAAS,KAAK,QAAQ;AACxB,aAAO,SAAS,KAAK;AAAA;AAEvB,UAAM,aAAa,0BAA0B;AAC7C,aAAS,KAAK,SAAS;AACvB,WAAO;AAAA;AAET,MAAI,EAAE,mBAAmB,OAAO;AAC9B,WAAO,EAAE,iBAAiB,KAAK,UAAU,MAAM,KAAK,OAAO,MAAM,KAAK;AAAA;AAExE,MAAI,EAAE,oBAAoB,OAAO;AAC/B,WAAO,EAAE,kBAAkB,KAAK,UAAU,MAAM,KAAK,OAAO,MAAM,KAAK;AAAA;AAEzE,MAAI,EAAE,wBAAwB,OAAO;AACnC,WAAO,EAAE,sBAAsB,KAAK,MAAM,MAAM,KAAK,aAAa,MAAM,KAAK;AAAA;AAE/E,SAAO;AAEP,qCAAmC,KAAoC;AAErE,UAAM,MAAM,KAAK,MAAM,sBAAsB;AAC7C,UAAM,SAAS,KAAK,WAAW,CAAC,UAAS,MAAK;AAC9C,QAAI,CAAC;AAAQ,YAAM,IAAI,MAAM;AAC7B,UAAM,WAAW,EAAE,oBAAoB,SAAS;AAAA,MAE9C,EAAE,mBAAmB,KAAK,EAAE,cAAc,IAAI,IAAI;AAAA;AAGpD,WAAO,iBAAiB,QAAQ;AAChC,WAAO;AAAA;AAXA;AAAA;AA5BK;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import * as t from "@babel/types";
|
|
4
|
+
function literalToAst(literal) {
|
|
5
|
+
if (literal === null) {
|
|
6
|
+
return t.nullLiteral();
|
|
7
|
+
}
|
|
8
|
+
switch (typeof literal) {
|
|
9
|
+
case "function":
|
|
10
|
+
throw new Error("Unsupported");
|
|
11
|
+
case "number":
|
|
12
|
+
return t.numericLiteral(literal);
|
|
13
|
+
case "string":
|
|
14
|
+
return t.stringLiteral(literal);
|
|
15
|
+
case "boolean":
|
|
16
|
+
return t.booleanLiteral(literal);
|
|
17
|
+
case "undefined":
|
|
18
|
+
return t.unaryExpression("void", t.numericLiteral(0), true);
|
|
19
|
+
default:
|
|
20
|
+
if (Array.isArray(literal)) {
|
|
21
|
+
return t.arrayExpression(literal.map(literalToAst));
|
|
22
|
+
}
|
|
23
|
+
return t.objectExpression(Object.keys(literal).filter((k) => {
|
|
24
|
+
return typeof literal[k] !== "undefined";
|
|
25
|
+
}).map((k) => {
|
|
26
|
+
return t.objectProperty(t.stringLiteral(k), literalToAst(literal[k]));
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
__name(literalToAst, "literalToAst");
|
|
31
|
+
export {
|
|
32
|
+
literalToAst
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=literalToAst.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/literalToAst.ts"],
|
|
4
|
+
"sourcesContent": ["import * as t from '@babel/types'\n\nexport function literalToAst(literal: any): t.Expression {\n if (literal === null) {\n return t.nullLiteral()\n }\n switch (typeof literal) {\n case 'function':\n throw new Error('Unsupported')\n case 'number':\n return t.numericLiteral(literal)\n case 'string':\n return t.stringLiteral(literal)\n case 'boolean':\n return t.booleanLiteral(literal)\n case 'undefined':\n return t.unaryExpression('void', t.numericLiteral(0), true)\n default:\n if (Array.isArray(literal)) {\n return t.arrayExpression(literal.map(literalToAst))\n }\n return t.objectExpression(\n Object.keys(literal)\n .filter((k) => {\n return typeof literal[k] !== 'undefined'\n })\n .map((k) => {\n return t.objectProperty(t.stringLiteral(k), literalToAst(literal[k]))\n })\n )\n }\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAEO,sBAAsB,SAA4B;AACvD,MAAI,YAAY,MAAM;AACpB,WAAO,EAAE;AAAA;AAEX,UAAQ,OAAO;AAAA,SACR;AACH,YAAM,IAAI,MAAM;AAAA,SACb;AACH,aAAO,EAAE,eAAe;AAAA,SACrB;AACH,aAAO,EAAE,cAAc;AAAA,SACpB;AACH,aAAO,EAAE,eAAe;AAAA,SACrB;AACH,aAAO,EAAE,gBAAgB,QAAQ,EAAE,eAAe,IAAI;AAAA;AAEtD,UAAI,MAAM,QAAQ,UAAU;AAC1B,eAAO,EAAE,gBAAgB,QAAQ,IAAI;AAAA;AAEvC,aAAO,EAAE,iBACP,OAAO,KAAK,SACT,OAAO,CAAC,MAAM;AACb,eAAO,OAAO,QAAQ,OAAO;AAAA,SAE9B,IAAI,CAAC,MAAM;AACV,eAAO,EAAE,eAAe,EAAE,cAAc,IAAI,aAAa,QAAQ;AAAA;AAAA;AAAA;AAzB7D;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { createTamagui } from "@tamagui/core-node";
|
|
5
|
+
let loadedTamagui = null;
|
|
6
|
+
function loadTamagui(props) {
|
|
7
|
+
if (loadedTamagui) {
|
|
8
|
+
return loadedTamagui;
|
|
9
|
+
}
|
|
10
|
+
process.env.IS_STATIC = "is_static";
|
|
11
|
+
const proxyWorm = require("@tamagui/fake-react-native");
|
|
12
|
+
const Mod = require("module");
|
|
13
|
+
const og = Mod.prototype.require;
|
|
14
|
+
Mod.prototype.require = function(path) {
|
|
15
|
+
if (path.startsWith("react-native") && !path.startsWith("react-native-web/dist/cjs/exports")) {
|
|
16
|
+
return proxyWorm;
|
|
17
|
+
}
|
|
18
|
+
return og.apply(this, arguments);
|
|
19
|
+
};
|
|
20
|
+
const configPath = join(process.cwd(), props.config);
|
|
21
|
+
const tamaguiConfigExport = require(configPath);
|
|
22
|
+
const tamaguiConfig = tamaguiConfigExport["default"] || tamaguiConfigExport;
|
|
23
|
+
const components = {};
|
|
24
|
+
for (const module of props.components) {
|
|
25
|
+
const exported = require(module);
|
|
26
|
+
Object.assign(components, exported);
|
|
27
|
+
}
|
|
28
|
+
process.env.IS_STATIC = void 0;
|
|
29
|
+
Mod.prototype.require = og;
|
|
30
|
+
createTamagui(tamaguiConfig);
|
|
31
|
+
loadedTamagui = {
|
|
32
|
+
components,
|
|
33
|
+
tamaguiConfig
|
|
34
|
+
};
|
|
35
|
+
return loadedTamagui;
|
|
36
|
+
}
|
|
37
|
+
__name(loadTamagui, "loadTamagui");
|
|
38
|
+
export {
|
|
39
|
+
loadTamagui
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=loadTamagui.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/loadTamagui.ts"],
|
|
4
|
+
"sourcesContent": ["import { join } from 'path'\n\nimport type { StaticComponent, TamaguiInternalConfig } from '@tamagui/core'\nimport { createTamagui } from '@tamagui/core-node'\n\nlet loadedTamagui: any = null\n\nexport function loadTamagui(props: { components: string[]; config: string }): {\n components: Record<string, StaticComponent>\n tamaguiConfig: TamaguiInternalConfig\n} {\n if (loadedTamagui) {\n return loadedTamagui\n }\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 const proxyWorm = require('@tamagui/fake-react-native')\n const Mod = require('module')\n const og = Mod.prototype.require\n Mod.prototype.require = function (path: string) {\n if (\n path.startsWith('react-native') &&\n // allow our rnw.tsx imports through\n !path.startsWith('react-native-web/dist/cjs/exports')\n ) {\n return proxyWorm\n }\n return og.apply(this, arguments)\n }\n\n // import config\n const configPath = join(process.cwd(), props.config)\n const tamaguiConfigExport = require(configPath)\n const tamaguiConfig = (tamaguiConfigExport['default'] ||\n tamaguiConfigExport) as TamaguiInternalConfig\n\n // import components\n const components = {}\n for (const module of props.components) {\n const exported = require(module)\n Object.assign(components, exported)\n }\n\n // undo shims\n process.env.IS_STATIC = undefined\n Mod.prototype.require = og\n\n // set up core-node\n createTamagui(tamaguiConfig)\n\n loadedTamagui = {\n components,\n tamaguiConfig,\n }\n\n return loadedTamagui\n}\n"],
|
|
5
|
+
"mappings": ";;AAAA;AAGA;AAEA,IAAI,gBAAqB;AAElB,qBAAqB,OAG1B;AACA,MAAI,eAAe;AACjB,WAAO;AAAA;AAKT,UAAQ,IAAI,YAAY;AACxB,QAAM,YAAY,QAAQ;AAC1B,QAAM,MAAM,QAAQ;AACpB,QAAM,KAAK,IAAI,UAAU;AACzB,MAAI,UAAU,UAAU,SAAU,MAAc;AAC9C,QACE,KAAK,WAAW,mBAEhB,CAAC,KAAK,WAAW,sCACjB;AACA,aAAO;AAAA;AAET,WAAO,GAAG,MAAM,MAAM;AAAA;AAIxB,QAAM,aAAa,KAAK,QAAQ,OAAO,MAAM;AAC7C,QAAM,sBAAsB,QAAQ;AACpC,QAAM,gBAAiB,oBAAoB,cACzC;AAGF,QAAM,aAAa;AACnB,aAAW,UAAU,MAAM,YAAY;AACrC,UAAM,WAAW,QAAQ;AACzB,WAAO,OAAO,YAAY;AAAA;AAI5B,UAAQ,IAAI,YAAY;AACxB,MAAI,UAAU,UAAU;AAGxB,gBAAc;AAEd,kBAAgB;AAAA,IACd;AAAA,IACA;AAAA;AAGF,SAAO;AAAA;AAlDO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
const logLines = /* @__PURE__ */ __name((str) => {
|
|
4
|
+
let lines = [""];
|
|
5
|
+
const items = str.split(" ");
|
|
6
|
+
for (const item of items) {
|
|
7
|
+
if (item.length + lines[lines.length - 1].length > 100) {
|
|
8
|
+
lines.push("");
|
|
9
|
+
}
|
|
10
|
+
lines[lines.length - 1] += item + " ";
|
|
11
|
+
}
|
|
12
|
+
return lines.map((line, i) => " " + (i == 0 ? "" : " ") + line.trim()).join("\n");
|
|
13
|
+
}, "logLines");
|
|
14
|
+
export {
|
|
15
|
+
logLines
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=logLines.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/logLines.ts"],
|
|
4
|
+
"sourcesContent": ["export const logLines = (str: string) => {\n let lines: string[] = ['']\n const items = str.split(' ')\n for (const item of items) {\n if (item.length + lines[lines.length - 1].length > 100) {\n lines.push('')\n }\n lines[lines.length - 1] += item + ' '\n }\n return lines.map((line, i) => ' ' + (i == 0 ? '' : ' ') + line.trim()).join('\\n')\n}\n"],
|
|
5
|
+
"mappings": ";;AAAO,MAAM,WAAW,wBAAC,QAAgB;AACvC,MAAI,QAAkB,CAAC;AACvB,QAAM,QAAQ,IAAI,MAAM;AACxB,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,SAAS,MAAM,MAAM,SAAS,GAAG,SAAS,KAAK;AACtD,YAAM,KAAK;AAAA;AAEb,UAAM,MAAM,SAAS,MAAM,OAAO;AAAA;AAEpC,SAAO,MAAM,IAAI,CAAC,MAAM,MAAM,gBAAiB,MAAK,IAAI,KAAK,OAAO,KAAK,QAAQ,KAAK;AAAA,GAThE;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import generate from "@babel/generator";
|
|
4
|
+
import * as t from "@babel/types";
|
|
5
|
+
import invariant from "invariant";
|
|
6
|
+
function normalizeTernaries(ternaries) {
|
|
7
|
+
invariant(Array.isArray(ternaries), "extractStaticTernaries expects param 1 to be an array of ternaries");
|
|
8
|
+
if (ternaries.length === 0) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
const ternariesByKey = {};
|
|
12
|
+
for (let idx = -1, len = ternaries.length; ++idx < len; ) {
|
|
13
|
+
const { test, consequent, alternate, remove, ...rest } = ternaries[idx];
|
|
14
|
+
let ternaryTest = test;
|
|
15
|
+
if (t.isExpressionStatement(test)) {
|
|
16
|
+
ternaryTest = test.expression;
|
|
17
|
+
}
|
|
18
|
+
let shouldSwap = false;
|
|
19
|
+
if (t.isUnaryExpression(test) && test.operator === "!") {
|
|
20
|
+
ternaryTest = test.argument;
|
|
21
|
+
shouldSwap = true;
|
|
22
|
+
} else if (t.isBinaryExpression(test)) {
|
|
23
|
+
if (test.operator === "!==" || test.operator === "!=") {
|
|
24
|
+
ternaryTest = t.binaryExpression(test.operator, test.left, test.right);
|
|
25
|
+
shouldSwap = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const key = generate(ternaryTest).code;
|
|
29
|
+
if (!ternariesByKey[key]) {
|
|
30
|
+
ternariesByKey[key] = {
|
|
31
|
+
...rest,
|
|
32
|
+
alternate: {},
|
|
33
|
+
consequent: {},
|
|
34
|
+
test: ternaryTest,
|
|
35
|
+
remove
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const altStyle = (shouldSwap ? consequent : alternate) ?? {};
|
|
39
|
+
const consStyle = (shouldSwap ? alternate : consequent) ?? {};
|
|
40
|
+
Object.assign(ternariesByKey[key].alternate, altStyle);
|
|
41
|
+
Object.assign(ternariesByKey[key].consequent, consStyle);
|
|
42
|
+
}
|
|
43
|
+
const ternaryExpression = Object.keys(ternariesByKey).map((key) => {
|
|
44
|
+
return ternariesByKey[key];
|
|
45
|
+
});
|
|
46
|
+
return ternaryExpression;
|
|
47
|
+
}
|
|
48
|
+
__name(normalizeTernaries, "normalizeTernaries");
|
|
49
|
+
export {
|
|
50
|
+
normalizeTernaries
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=normalizeTernaries.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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'\n\nexport function normalizeTernaries(ternaries: Ternary[]) {\n invariant(Array.isArray(ternaries), 'extractStaticTernaries expects param 1 to be an array of ternaries')\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;AACvD,YAAU,MAAM,QAAQ,YAAY;AAEpC,MAAI,UAAU,WAAW,GAAG;AAC1B,WAAO;AAAA;AAGT,QAAM,iBAA6C;AAEnD,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,OAAO;AACjC,oBAAe,KAAa;AAAA;AAI9B,QAAI,aAAa;AACjB,QAAI,EAAE,kBAAkB,SAAS,KAAK,aAAa,KAAK;AACtD,oBAAc,KAAK;AACnB,mBAAa;AAAA,eACJ,EAAE,mBAAmB,OAAO;AACrC,UAAI,KAAK,aAAa,SAAS,KAAK,aAAa,MAAM;AACrD,sBAAc,EAAE,iBAAiB,KAAK,UAAU,KAAK,MAAM,KAAK;AAChE,qBAAa;AAAA;AAAA;AAIjB,UAAM,MAAM,SAAS,aAAa;AAElC,QAAI,CAAC,eAAe,MAAM;AACxB,qBAAe,OAAO;AAAA,WACjB;AAAA,QACH,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,MAAM;AAAA,QACN;AAAA;AAAA;AAGJ,UAAM,WAAY,cAAa,aAAa,cAAc;AAC1D,UAAM,YAAa,cAAa,YAAY,eAAe;AAC3D,WAAO,OAAO,eAAe,KAAK,WAAW;AAC7C,WAAO,OAAO,eAAe,KAAK,YAAY;AAAA;AAGhD,QAAM,oBAAoB,OAAO,KAAK,gBAAgB,IAAI,CAAC,QAAQ;AACjE,WAAO,eAAe;AAAA;AAGxB,SAAO;AAAA;AApDO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import * as t from "@babel/types";
|
|
4
|
+
const hooks = {
|
|
5
|
+
useMedia: true,
|
|
6
|
+
useTheme: true
|
|
7
|
+
};
|
|
8
|
+
function removeUnusedHooks(compFn, shouldPrintDebug) {
|
|
9
|
+
compFn.scope.crawl();
|
|
10
|
+
let bodyStatements = compFn?.get("body");
|
|
11
|
+
if (!bodyStatements) {
|
|
12
|
+
console.log("no body statemnts?", compFn);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (!Array.isArray(bodyStatements)) {
|
|
16
|
+
if (bodyStatements.isFunctionExpression()) {
|
|
17
|
+
bodyStatements = bodyStatements.scope.path.get("body");
|
|
18
|
+
} else {
|
|
19
|
+
bodyStatements = bodyStatements.get("body");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (!bodyStatements || !Array.isArray(bodyStatements)) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const statements = bodyStatements;
|
|
26
|
+
for (const statement of statements) {
|
|
27
|
+
if (!statement.isVariableDeclaration()) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const declarations = statement.get("declarations");
|
|
31
|
+
if (!Array.isArray(declarations)) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
const isBindingReferenced = /* @__PURE__ */ __name((name) => {
|
|
35
|
+
return !!statement.scope.getBinding(name)?.referenced;
|
|
36
|
+
}, "isBindingReferenced");
|
|
37
|
+
for (const declarator of declarations) {
|
|
38
|
+
const id = declarator.get("id");
|
|
39
|
+
const init = declarator.node.init;
|
|
40
|
+
if (Array.isArray(id) || Array.isArray(init)) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const shouldRemove = (() => {
|
|
44
|
+
const isHook = t.isCallExpression(init) && t.isIdentifier(init.callee) && hooks[init.callee.name];
|
|
45
|
+
if (!isHook) {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
if (t.isIdentifier(id.node)) {
|
|
49
|
+
const name = id.node.name;
|
|
50
|
+
return !isBindingReferenced(name);
|
|
51
|
+
} else if (t.isObjectPattern(id.node)) {
|
|
52
|
+
const propPaths = id.get("properties");
|
|
53
|
+
return propPaths.every((prop) => {
|
|
54
|
+
if (!prop.isObjectProperty())
|
|
55
|
+
return false;
|
|
56
|
+
const value = prop.get("value");
|
|
57
|
+
if (Array.isArray(value) || !value.isIdentifier())
|
|
58
|
+
return false;
|
|
59
|
+
const name = value.node.name;
|
|
60
|
+
return !isBindingReferenced(name);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
})();
|
|
65
|
+
if (shouldRemove) {
|
|
66
|
+
declarator.remove();
|
|
67
|
+
if (shouldPrintDebug) {
|
|
68
|
+
console.log(` [\u{1FA9D}] removed ${id.node["name"] ?? ""}`);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
__name(removeUnusedHooks, "removeUnusedHooks");
|
|
75
|
+
export {
|
|
76
|
+
removeUnusedHooks
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=removeUnusedHooks.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/extractor/removeUnusedHooks.ts"],
|
|
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) {\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;AAAA;AAGL,2BAA2B,QAAuB,kBAA2B;AAClF,SAAO,MAAM;AAEb,MAAI,iBAAiB,QAAQ,IAAI;AACjC,MAAI,CAAC,gBAAgB;AACnB,YAAQ,IAAI,sBAAsB;AAClC;AAAA;AAEF,MAAI,CAAC,MAAM,QAAQ,iBAAiB;AAClC,QAAI,eAAe,wBAAwB;AACzC,uBAAiB,eAAe,MAAM,KAAK,IAAI;AAAA,WAC1C;AACL,uBAAiB,eAAe,IAAI;AAAA;AAAA;AAGxC,MAAI,CAAC,kBAAkB,CAAC,MAAM,QAAQ,iBAAiB;AACrD;AAAA;AAEF,QAAM,aAAa;AACnB,aAAW,aAAa,YAAY;AAClC,QAAI,CAAC,UAAU,yBAAyB;AACtC;AAAA;AAEF,UAAM,eAAe,UAAU,IAAI;AACnC,QAAI,CAAC,MAAM,QAAQ,eAAe;AAChC;AAAA;AAEF,UAAM,sBAAsB,wBAAC,SAAiB;AAC5C,aAAO,CAAC,CAAC,UAAU,MAAM,WAAW,OAAO;AAAA,OADjB;AAG5B,eAAW,cAAc,cAAc;AACrC,YAAM,KAAK,WAAW,IAAI;AAC1B,YAAM,OAAO,WAAW,KAAK;AAC7B,UAAI,MAAM,QAAQ,OAAO,MAAM,QAAQ,OAAO;AAC5C;AAAA;AAEF,YAAM,eAAgB,OAAM;AAC1B,cAAM,SACJ,EAAE,iBAAiB,SAAS,EAAE,aAAa,KAAK,WAAW,MAAM,KAAK,OAAO;AAC/E,YAAI,CAAC,QAAQ;AACX,iBAAO;AAAA;AAET,YAAI,EAAE,aAAa,GAAG,OAAO;AAE3B,gBAAM,OAAO,GAAG,KAAK;AACrB,iBAAO,CAAC,oBAAoB;AAAA,mBACnB,EAAE,gBAAgB,GAAG,OAAO;AAErC,gBAAM,YAAY,GAAG,IAAI;AACzB,iBAAO,UAAU,MAAM,CAAC,SAAS;AAC/B,gBAAI,CAAC,KAAK;AAAoB,qBAAO;AACrC,kBAAM,QAAQ,KAAK,IAAI;AACvB,gBAAI,MAAM,QAAQ,UAAU,CAAC,MAAM;AAAgB,qBAAO;AAC1D,kBAAM,OAAO,MAAM,KAAK;AACxB,mBAAO,CAAC,oBAAoB;AAAA;AAAA;AAGhC,eAAO;AAAA;AAET,UAAI,cAAc;AAChB,mBAAW;AACX,YAAI,kBAAkB;AACpB,kBAAQ,IAAI,yBAAkB,GAAG,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AA9D3C;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
process.env.TAMAGUI_COMPILE_PROCESS = "1";
|
|
2
|
+
import { TamaguiOptions } from "./types";
|
|
3
|
+
import { createExtractor } from "./extractor/createExtractor";
|
|
4
|
+
import { literalToAst } from "./extractor/literalToAst";
|
|
5
|
+
export * from "./constants";
|
|
6
|
+
export * from "./extractor/extractToClassNames";
|
|
7
|
+
export * from "./extractor/extractHelpers";
|
|
8
|
+
export * from "./patchReactNativeWeb";
|
|
9
|
+
export {
|
|
10
|
+
TamaguiOptions,
|
|
11
|
+
createExtractor,
|
|
12
|
+
literalToAst
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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 './patchReactNativeWeb'\n"],
|
|
5
|
+
"mappings": "AAAA,QAAQ,IAAI,0BAA0B;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
+
import * as fs from "fs";
|
|
4
|
+
import path from "path";
|
|
5
|
+
function patchReactNativeWeb() {
|
|
6
|
+
const rootDir = require.resolve("react-native-web").replace(/\/dist.*/, "");
|
|
7
|
+
const modulePath = path.join(rootDir, "dist", "tamagui-exports.js");
|
|
8
|
+
const cjsPath = path.join(rootDir, "dist", "cjs", "tamagui-exports.js");
|
|
9
|
+
const isEqual = (() => {
|
|
10
|
+
let res = false;
|
|
11
|
+
try {
|
|
12
|
+
res = fs.readFileSync(modulePath, "utf-8") === moduleExports && fs.readFileSync(cjsPath, "utf-8") == cjsExports;
|
|
13
|
+
} catch {
|
|
14
|
+
res = false;
|
|
15
|
+
}
|
|
16
|
+
return res;
|
|
17
|
+
})();
|
|
18
|
+
if (!isEqual) {
|
|
19
|
+
console.log("\u{1F95A} Tamagui patching react-native-web to share atomic styling primitives");
|
|
20
|
+
console.log(" > adding", modulePath);
|
|
21
|
+
console.log(" > adding", cjsPath);
|
|
22
|
+
fs.writeFileSync(modulePath, moduleExports);
|
|
23
|
+
fs.writeFileSync(cjsPath, cjsExports);
|
|
24
|
+
}
|
|
25
|
+
const moduleEntry = path.join(rootDir, "dist", "index.js");
|
|
26
|
+
const moduleEntrySrc = fs.readFileSync(moduleEntry, "utf-8");
|
|
27
|
+
if (!moduleEntrySrc.includes("// tamagui-patch-v4")) {
|
|
28
|
+
fs.writeFileSync(moduleEntry, `${removePatch(moduleEntrySrc)}
|
|
29
|
+
|
|
30
|
+
// tamagui-patch-v4
|
|
31
|
+
import * as TExports from './tamagui-exports'
|
|
32
|
+
export const TamaguiExports = TExports
|
|
33
|
+
// tamagui-patch-end
|
|
34
|
+
`);
|
|
35
|
+
}
|
|
36
|
+
const cjsEntry = path.join(rootDir, "dist", "cjs", "index.js");
|
|
37
|
+
const cjsEntrySrc = fs.readFileSync(cjsEntry, "utf-8");
|
|
38
|
+
if (!cjsEntrySrc.includes("// tamagui-patch-v4")) {
|
|
39
|
+
fs.writeFileSync(cjsEntry, `${removePatch(cjsEntrySrc)}
|
|
40
|
+
|
|
41
|
+
// tamagui-patch-v4
|
|
42
|
+
exports.TamaguiExports = _interopRequireDefault(require("./tamagui-exports"));
|
|
43
|
+
// tamagui-patch-end
|
|
44
|
+
`);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
__name(patchReactNativeWeb, "patchReactNativeWeb");
|
|
48
|
+
function removePatch(source) {
|
|
49
|
+
return source.replace(/\/\/ tamagui-patch([.\s\S]*)/g, "");
|
|
50
|
+
}
|
|
51
|
+
__name(removePatch, "removePatch");
|
|
52
|
+
const forwardedPropsObj = `{
|
|
53
|
+
...fwdProps.defaultProps,
|
|
54
|
+
...fwdProps.accessibilityProps,
|
|
55
|
+
...fwdProps.clickProps,
|
|
56
|
+
...fwdProps.focusProps,
|
|
57
|
+
...fwdProps.keyboardProps,
|
|
58
|
+
...fwdProps.mouseProps,
|
|
59
|
+
...fwdProps.touchProps,
|
|
60
|
+
...fwdProps.styleProps,
|
|
61
|
+
href: true,
|
|
62
|
+
lang: true,
|
|
63
|
+
onScroll: true,
|
|
64
|
+
onWheel: true,
|
|
65
|
+
pointerEvents: true
|
|
66
|
+
}
|
|
67
|
+
`;
|
|
68
|
+
const moduleExports = `
|
|
69
|
+
export { atomic } from './exports/StyleSheet/compile'
|
|
70
|
+
export { default as createCompileableStyle } from './exports/StyleSheet/createCompileableStyle'
|
|
71
|
+
export { default as createReactDOMStyle } from './exports/StyleSheet/createReactDOMStyle'
|
|
72
|
+
export { default as i18Style } from './exports/StyleSheet/i18nStyle'
|
|
73
|
+
export { default as createDOMProps } from './modules/createDOMProps'
|
|
74
|
+
export { default as AccessibilityUtil } from './modules/AccessibilityUtil'
|
|
75
|
+
export { default as createElement } from './exports/createElement'
|
|
76
|
+
export { default as css } from './exports/StyleSheet/css'
|
|
77
|
+
export { default as TextAncestorContext } from './exports/Text/TextAncestorContext'
|
|
78
|
+
export { default as pick } from './modules/pick'
|
|
79
|
+
export { default as useElementLayout } from './modules/useElementLayout'
|
|
80
|
+
export { default as useMergeRefs } from './modules/useMergeRefs'
|
|
81
|
+
export { default as usePlatformMethods } from './modules/usePlatformMethods'
|
|
82
|
+
export { default as useResponderEvents } from './modules/useResponderEvents'
|
|
83
|
+
import * as fwdProps from './modules/forwardedProps'
|
|
84
|
+
export const forwardedProps = ${forwardedPropsObj}
|
|
85
|
+
`;
|
|
86
|
+
const cjsExports = `
|
|
87
|
+
exports.atomic = require('./exports/StyleSheet/compile').atomic
|
|
88
|
+
exports.createCompileableStyle = require('./exports/StyleSheet/createCompileableStyle')
|
|
89
|
+
exports.createReactDOMStyle = require('./exports/StyleSheet/createReactDOMStyle')
|
|
90
|
+
exports.i18Style = require('./exports/StyleSheet/i18nStyle')
|
|
91
|
+
exports.createDOMProps = require('./modules/createDOMProps')
|
|
92
|
+
exports.AccessibilityUtil = require('./modules/AccessibilityUtil')
|
|
93
|
+
exports.createElement = require('./exports/createElement')
|
|
94
|
+
exports.css = require('./exports/StyleSheet/css')
|
|
95
|
+
exports.TextAncestorContext = require('./exports/Text/TextAncestorContext')
|
|
96
|
+
exports.pick = require('./modules/pick')
|
|
97
|
+
exports.useElementLayout = require('./modules/useElementLayout')
|
|
98
|
+
exports.useMergeRefs = require('./modules/useMergeRefs')
|
|
99
|
+
exports.usePlatformMethods = require('./modules/usePlatformMethods')
|
|
100
|
+
exports.useResponderEvents = require('./modules/useResponderEvents')
|
|
101
|
+
const fwdProps = require('./modules/forwardedProps')
|
|
102
|
+
exports.forwardedProps = ${forwardedPropsObj}
|
|
103
|
+
`;
|
|
104
|
+
export {
|
|
105
|
+
patchReactNativeWeb
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=patchReactNativeWeb.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/patchReactNativeWeb.ts"],
|
|
4
|
+
"sourcesContent": ["import * as fs from 'fs'\nimport path from 'path'\n\n// were patching react-native-web so we can use some internal methods\n// we do it this way because we need to rely on webpack or bundler config to determine cjs vs esm\n// so we can't just require it all directly\n// would be nice in the future to be able to eject from react-native-web entirely optionally\n\n// keep it sync\nexport function patchReactNativeWeb() {\n const rootDir = require.resolve('react-native-web').replace(/\\/dist.*/, '')\n const modulePath = path.join(rootDir, 'dist', 'tamagui-exports.js')\n const cjsPath = path.join(rootDir, 'dist', 'cjs', 'tamagui-exports.js')\n\n const isEqual = (() => {\n let res = false\n try {\n res =\n fs.readFileSync(modulePath, 'utf-8') === moduleExports &&\n fs.readFileSync(cjsPath, 'utf-8') == cjsExports\n } catch {\n res = false\n }\n return res\n })()\n\n if (!isEqual) {\n console.log('\uD83E\uDD5A Tamagui patching react-native-web to share atomic styling primitives')\n console.log(' > adding', modulePath)\n console.log(' > adding', cjsPath)\n fs.writeFileSync(modulePath, moduleExports)\n fs.writeFileSync(cjsPath, cjsExports)\n }\n\n // if entry files not patched, patch them:\n const moduleEntry = path.join(rootDir, 'dist', 'index.js')\n const moduleEntrySrc = fs.readFileSync(moduleEntry, 'utf-8')\n if (!moduleEntrySrc.includes('// tamagui-patch-v4')) {\n fs.writeFileSync(\n moduleEntry,\n `${removePatch(moduleEntrySrc)}\n\n// tamagui-patch-v4\nimport * as TExports from './tamagui-exports'\nexport const TamaguiExports = TExports\n// tamagui-patch-end\n`\n )\n }\n const cjsEntry = path.join(rootDir, 'dist', 'cjs', 'index.js')\n const cjsEntrySrc = fs.readFileSync(cjsEntry, 'utf-8')\n if (!cjsEntrySrc.includes('// tamagui-patch-v4')) {\n fs.writeFileSync(\n cjsEntry,\n `${removePatch(cjsEntrySrc)}\n\n// tamagui-patch-v4\nexports.TamaguiExports = _interopRequireDefault(require(\"./tamagui-exports\"));\n// tamagui-patch-end\n`\n )\n }\n}\n\nfunction removePatch(source: string) {\n return source.replace(/\\/\\/ tamagui-patch([.\\s\\S]*)/g, '')\n}\n\n// view exports/View.ts\nconst forwardedPropsObj = `{\n ...fwdProps.defaultProps,\n ...fwdProps.accessibilityProps,\n ...fwdProps.clickProps,\n ...fwdProps.focusProps,\n ...fwdProps.keyboardProps,\n ...fwdProps.mouseProps,\n ...fwdProps.touchProps,\n ...fwdProps.styleProps,\n href: true,\n lang: true,\n onScroll: true,\n onWheel: true,\n pointerEvents: true\n}\n`\n\nconst moduleExports = `\nexport { atomic } from './exports/StyleSheet/compile'\nexport { default as createCompileableStyle } from './exports/StyleSheet/createCompileableStyle'\nexport { default as createReactDOMStyle } from './exports/StyleSheet/createReactDOMStyle'\nexport { default as i18Style } from './exports/StyleSheet/i18nStyle'\nexport { default as createDOMProps } from './modules/createDOMProps'\nexport { default as AccessibilityUtil } from './modules/AccessibilityUtil'\nexport { default as createElement } from './exports/createElement'\nexport { default as css } from './exports/StyleSheet/css'\nexport { default as TextAncestorContext } from './exports/Text/TextAncestorContext'\nexport { default as pick } from './modules/pick'\nexport { default as useElementLayout } from './modules/useElementLayout'\nexport { default as useMergeRefs } from './modules/useMergeRefs'\nexport { default as usePlatformMethods } from './modules/usePlatformMethods'\nexport { default as useResponderEvents } from './modules/useResponderEvents'\nimport * as fwdProps from './modules/forwardedProps'\nexport const forwardedProps = ${forwardedPropsObj}\n`\n\nconst cjsExports = `\nexports.atomic = require('./exports/StyleSheet/compile').atomic\nexports.createCompileableStyle = require('./exports/StyleSheet/createCompileableStyle')\nexports.createReactDOMStyle = require('./exports/StyleSheet/createReactDOMStyle')\nexports.i18Style = require('./exports/StyleSheet/i18nStyle')\nexports.createDOMProps = require('./modules/createDOMProps')\nexports.AccessibilityUtil = require('./modules/AccessibilityUtil')\nexports.createElement = require('./exports/createElement')\nexports.css = require('./exports/StyleSheet/css')\nexports.TextAncestorContext = require('./exports/Text/TextAncestorContext')\nexports.pick = require('./modules/pick')\nexports.useElementLayout = require('./modules/useElementLayout')\nexports.useMergeRefs = require('./modules/useMergeRefs')\nexports.usePlatformMethods = require('./modules/usePlatformMethods')\nexports.useResponderEvents = require('./modules/useResponderEvents')\nconst fwdProps = require('./modules/forwardedProps')\nexports.forwardedProps = ${forwardedPropsObj}\n`\n"],
|
|
5
|
+
"mappings": ";;AAAA;AACA;AAQO,+BAA+B;AACpC,QAAM,UAAU,AAAgB,oCAAoB,QAAQ,YAAY;AACxE,QAAM,aAAa,KAAK,KAAK,SAAS,QAAQ;AAC9C,QAAM,UAAU,KAAK,KAAK,SAAS,QAAQ,OAAO;AAElD,QAAM,UAAW,OAAM;AACrB,QAAI,MAAM;AACV,QAAI;AACF,YACE,GAAG,aAAa,YAAY,aAAa,iBACzC,GAAG,aAAa,SAAS,YAAY;AAAA,YACvC;AACA,YAAM;AAAA;AAER,WAAO;AAAA;AAGT,MAAI,CAAC,SAAS;AACZ,YAAQ,IAAI;AACZ,YAAQ,IAAI,eAAe;AAC3B,YAAQ,IAAI,eAAe;AAC3B,OAAG,cAAc,YAAY;AAC7B,OAAG,cAAc,SAAS;AAAA;AAI5B,QAAM,cAAc,KAAK,KAAK,SAAS,QAAQ;AAC/C,QAAM,iBAAiB,GAAG,aAAa,aAAa;AACpD,MAAI,CAAC,eAAe,SAAS,wBAAwB;AACnD,OAAG,cACD,aACA,GAAG,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASnB,QAAM,WAAW,KAAK,KAAK,SAAS,QAAQ,OAAO;AACnD,QAAM,cAAc,GAAG,aAAa,UAAU;AAC9C,MAAI,CAAC,YAAY,SAAS,wBAAwB;AAChD,OAAG,cACD,UACA,GAAG,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA7CL;AAuDhB,qBAAqB,QAAgB;AACnC,SAAO,OAAO,QAAQ,iCAAiC;AAAA;AADhD;AAKT,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAiB1B,MAAM,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gCAgBU;AAAA;AAGhC,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAgBQ;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=types.js.map
|