@tamagui/vite-plugin 1.13.2 → 1.13.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/extensions.js +1 -39
- package/dist/cjs/extensions.js.map +2 -2
- package/dist/cjs/extract.js +6 -185
- package/dist/cjs/extract.js.map +2 -2
- package/dist/cjs/index.js +1 -21
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/native.js +5 -228
- package/dist/cjs/native.js.map +2 -2
- package/dist/cjs/nativePrebuild.js +1 -133
- package/dist/cjs/nativePrebuild.js.map +2 -2
- package/dist/cjs/plugin.js +1 -125
- package/dist/cjs/plugin.js.map +2 -2
- package/dist/esm/extensions.js +1 -15
- package/dist/esm/extensions.js.map +2 -2
- package/dist/esm/extensions.mjs +1 -15
- package/dist/esm/extensions.mjs.map +2 -2
- package/dist/esm/extract.js +6 -151
- package/dist/esm/extract.js.map +2 -2
- package/dist/esm/extract.mjs +6 -151
- package/dist/esm/extract.mjs.map +2 -2
- package/dist/esm/index.js +1 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +1 -4
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/native.js +5 -203
- package/dist/esm/native.js.map +2 -2
- package/dist/esm/native.mjs +5 -203
- package/dist/esm/native.mjs.map +2 -2
- package/dist/esm/nativePrebuild.js +1 -99
- package/dist/esm/nativePrebuild.js.map +2 -2
- package/dist/esm/nativePrebuild.mjs +1 -99
- package/dist/esm/nativePrebuild.mjs.map +2 -2
- package/dist/esm/plugin.js +1 -101
- package/dist/esm/plugin.js.map +2 -2
- package/dist/esm/plugin.mjs +1 -101
- package/dist/esm/plugin.mjs.map +2 -2
- package/package.json +6 -6
package/dist/esm/extract.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/extract.ts"],
|
|
4
4
|
"sourcesContent": ["// fork from https://github.com/seek-oss/vanilla-extract\n\nimport path from 'path'\n\nimport { TamaguiOptions } from '@tamagui/static'\nimport * as Static from '@tamagui/static'\nimport outdent from 'outdent'\nimport type { Plugin, ResolvedConfig, ViteDevServer } from 'vite'\nimport { normalizePath } from 'vite'\n\nconst { createExtractor, extractToClassNames, getPragmaOptions } =\n Static['default'] || Static\n\nconst styleUpdateEvent = (fileId: string) => `tamagui-style-update:${fileId}`\nconst GLOBAL_CSS_VIRTUAL_PATH = '__tamagui_global_css__.css'\n\nexport function tamaguiExtractPlugin(options: TamaguiOptions): Plugin {\n const disableStatic =\n options.disable || (options.disableDebugAttr && options.disableExtraction)\n\n if (disableStatic) {\n return {\n name: 'tamagui-extract',\n }\n }\n\n let extractor: ReturnType<typeof createExtractor> | null = null\n const cssMap = new Map<string, string>()\n\n let config: ResolvedConfig\n let server: ViteDevServer\n let shouldReturnCSS = true //config.command === 'serve'\n let virtualExt: string\n\n const getAbsoluteVirtualFileId = (filePath: string) => {\n if (filePath.startsWith(config.root)) {\n return filePath\n }\n return normalizePath(path.join(config.root, filePath))\n }\n\n return {\n name: 'tamagui-extract',\n enforce: 'pre',\n\n configureServer(_server) {\n server = _server\n },\n\n buildEnd() {\n extractor!.cleanupBeforeExit()\n },\n\n writeBundle(this, options, bundle) {\n setTimeout(() => {\n // eslint-disable-next-line no-console\n console.warn('some sort of dangling process or osmethign, exit for now...')\n process.exit(0)\n }, 100)\n },\n\n config(_userConfig, env) {\n const include = env.command === 'serve' ? ['@tamagui/core/inject-styles'] : []\n return {\n optimizeDeps: { include },\n }\n },\n\n async configResolved(resolvedConfig) {\n config = resolvedConfig\n extractor = createExtractor({\n logger: resolvedConfig.logger,\n })\n shouldReturnCSS = true\n // TODO postcss work with postcss.config.js\n // packageName = getPackageInfo(config.root).name;\n // if (config.command === 'serve') {\n // postCssConfig = await resolvePostcssConfig(config);\n // }\n virtualExt = `.tamagui.${shouldReturnCSS ? 'css' : 'js'}`\n },\n\n async resolveId(source) {\n if (source === 'tamagui.css') {\n await extractor!.loadTamagui(options)\n return GLOBAL_CSS_VIRTUAL_PATH\n }\n\n const [validId, query] = source.split('?')\n\n if (!validId.endsWith(virtualExt)) {\n return\n }\n\n // Absolute paths seem to occur often in monorepos, where files are\n // imported from outside the config root.\n const absoluteId = source.startsWith(config.root)\n ? source\n : getAbsoluteVirtualFileId(validId)\n\n // There should always be an entry in the `cssMap` here.\n // The only valid scenario for a missing one is if someone had written\n // a file in their app using the .tamagui.js/.tamagui.css extension\n if (cssMap.has(absoluteId)) {\n // Keep the original query string for HMR.\n return absoluteId + (query ? `?${query}` : '')\n }\n },\n\n /**\n * TODO\n *\n * mainFields module:jsx breaks, so lets just have a mapping here\n * where we load() and map it to the jsx path before transform\n *\n */\n\n load(id, options) {\n const [validId] = id.split('?')\n\n if (validId === GLOBAL_CSS_VIRTUAL_PATH) {\n return extractor!.getTamagui()!.getCSS()\n }\n\n if (!cssMap.has(validId)) {\n return\n }\n\n const css = cssMap.get(validId)\n\n if (typeof css !== 'string') {\n return\n }\n\n if (shouldReturnCSS || !server || server.config.isProduction) {\n return css\n }\n\n return outdent`\n import { injectStyles } from '@tamagui/core/inject-styles';\n\n const inject = (css) => injectStyles({\n filePath: \"${validId}\",\n css\n });\n\n inject(${JSON.stringify(css)});\n\n if (import.meta.hot) {\n import.meta.hot.on('${styleUpdateEvent(validId)}', (css) => {\n inject(css);\n });\n }\n `\n },\n\n async transform(code, id, ssrParam) {\n const [validId] = id.split('?')\n\n if (!validId.endsWith('.tsx')) {\n return\n }\n\n // let ssr: boolean | undefined\n // if (typeof ssrParam === 'boolean') {\n // ssr = ssrParam\n // } else {\n // ssr = ssrParam?.ssr\n // }\n\n const firstCommentIndex = code.indexOf('// ')\n const { shouldDisable, shouldPrintDebug } = getPragmaOptions({\n source: firstCommentIndex >= 0 ? code.slice(firstCommentIndex) : '',\n path: validId,\n })\n\n if (shouldDisable) {\n return\n }\n\n const extracted = await extractToClassNames({\n extractor: extractor!,\n source: code,\n sourcePath: validId,\n options,\n shouldPrintDebug,\n })\n\n if (!extracted) {\n return\n }\n\n const rootRelativeId = `${validId}${virtualExt}`\n const absoluteId = getAbsoluteVirtualFileId(rootRelativeId)\n\n let source = extracted.js\n\n if (extracted.styles) {\n if (\n server &&\n cssMap.has(absoluteId) &&\n cssMap.get(absoluteId) !== extracted.styles\n ) {\n const { moduleGraph } = server\n const [module] = Array.from(moduleGraph.getModulesByFile(absoluteId) || [])\n\n if (module) {\n moduleGraph.invalidateModule(module)\n\n // Vite uses this timestamp to add `?t=` query string automatically for HMR.\n module.lastHMRTimestamp =\n (module as any).lastInvalidationTimestamp || Date.now()\n }\n\n server.ws.send({\n type: 'custom',\n event: styleUpdateEvent(absoluteId),\n data: extracted.styles,\n })\n }\n\n source = `${source}\\nimport \"${rootRelativeId}\";`\n cssMap.set(absoluteId, extracted.styles)\n }\n\n return {\n code: source.toString(),\n map: extracted.map,\n }\n\n // if (ssr && !process.env.VITE_RSC_BUILD) {\n // return addFileScope({\n // source: code,\n // filePath: normalizePath(validId),\n // rootPath: config.root,\n // packageName,\n // })\n // }\n\n // const { source, watchFiles } = await compile({\n // filePath: validId,\n // cwd: config.root,\n // esbuildOptions,\n // })\n\n // for (const file of watchFiles) {\n // // In start mode, we need to prevent the file from rewatching itself.\n // // If it's a `build --watch`, it needs to watch everything.\n // if (config.command === 'build' || file !== validId) {\n // this.addWatchFile(file)\n // }\n // }\n },\n }\n}\n"],
|
|
5
|
-
"mappings": "AAEA,
|
|
6
|
-
"names": ["options"]
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["path", "Static", "outdent", "normalizePath", "createExtractor", "extractToClassNames", "getPragmaOptions", "styleUpdateEvent", "fileId", "GLOBAL_CSS_VIRTUAL_PATH", "tamaguiExtractPlugin", "options", "extractor", "cssMap", "config", "server", "shouldReturnCSS", "virtualExt", "getAbsoluteVirtualFileId", "filePath", "_server", "bundle", "_userConfig", "env", "resolvedConfig", "source", "validId", "query", "absoluteId", "id", "css", "code", "ssrParam", "firstCommentIndex", "shouldDisable", "shouldPrintDebug", "extracted", "rootRelativeId", "moduleGraph", "module"]
|
|
7
7
|
}
|
package/dist/esm/extract.mjs
CHANGED
|
@@ -1,163 +1,18 @@
|
|
|
1
|
-
import path from "
|
|
2
|
-
import * as Static from "@tamagui/static";
|
|
3
|
-
import outdent from "outdent";
|
|
4
|
-
import { normalizePath } from "vite";
|
|
5
|
-
const { createExtractor, extractToClassNames, getPragmaOptions } = Static["default"] || Static;
|
|
6
|
-
const styleUpdateEvent = (fileId) => `tamagui-style-update:${fileId}`;
|
|
7
|
-
const GLOBAL_CSS_VIRTUAL_PATH = "__tamagui_global_css__.css";
|
|
8
|
-
function tamaguiExtractPlugin(options) {
|
|
9
|
-
const disableStatic = options.disable || options.disableDebugAttr && options.disableExtraction;
|
|
10
|
-
if (disableStatic) {
|
|
11
|
-
return {
|
|
12
|
-
name: "tamagui-extract"
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
let extractor = null;
|
|
16
|
-
const cssMap = /* @__PURE__ */ new Map();
|
|
17
|
-
let config;
|
|
18
|
-
let server;
|
|
19
|
-
let shouldReturnCSS = true;
|
|
20
|
-
let virtualExt;
|
|
21
|
-
const getAbsoluteVirtualFileId = (filePath) => {
|
|
22
|
-
if (filePath.startsWith(config.root)) {
|
|
23
|
-
return filePath;
|
|
24
|
-
}
|
|
25
|
-
return normalizePath(path.join(config.root, filePath));
|
|
26
|
-
};
|
|
27
|
-
return {
|
|
28
|
-
name: "tamagui-extract",
|
|
29
|
-
enforce: "pre",
|
|
30
|
-
configureServer(_server) {
|
|
31
|
-
server = _server;
|
|
32
|
-
},
|
|
33
|
-
buildEnd() {
|
|
34
|
-
extractor.cleanupBeforeExit();
|
|
35
|
-
},
|
|
36
|
-
writeBundle(options2, bundle) {
|
|
37
|
-
setTimeout(() => {
|
|
38
|
-
console.warn("some sort of dangling process or osmethign, exit for now...");
|
|
39
|
-
process.exit(0);
|
|
40
|
-
}, 100);
|
|
41
|
-
},
|
|
42
|
-
config(_userConfig, env) {
|
|
43
|
-
const include = env.command === "serve" ? ["@tamagui/core/inject-styles"] : [];
|
|
44
|
-
return {
|
|
45
|
-
optimizeDeps: { include }
|
|
46
|
-
};
|
|
47
|
-
},
|
|
48
|
-
async configResolved(resolvedConfig) {
|
|
49
|
-
config = resolvedConfig;
|
|
50
|
-
extractor = createExtractor({
|
|
51
|
-
logger: resolvedConfig.logger
|
|
52
|
-
});
|
|
53
|
-
shouldReturnCSS = true;
|
|
54
|
-
virtualExt = `.tamagui.${shouldReturnCSS ? "css" : "js"}`;
|
|
55
|
-
},
|
|
56
|
-
async resolveId(source) {
|
|
57
|
-
if (source === "tamagui.css") {
|
|
58
|
-
await extractor.loadTamagui(options);
|
|
59
|
-
return GLOBAL_CSS_VIRTUAL_PATH;
|
|
60
|
-
}
|
|
61
|
-
const [validId, query] = source.split("?");
|
|
62
|
-
if (!validId.endsWith(virtualExt)) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
const absoluteId = source.startsWith(config.root) ? source : getAbsoluteVirtualFileId(validId);
|
|
66
|
-
if (cssMap.has(absoluteId)) {
|
|
67
|
-
return absoluteId + (query ? `?${query}` : "");
|
|
68
|
-
}
|
|
69
|
-
},
|
|
70
|
-
/**
|
|
71
|
-
* TODO
|
|
72
|
-
*
|
|
73
|
-
* mainFields module:jsx breaks, so lets just have a mapping here
|
|
74
|
-
* where we load() and map it to the jsx path before transform
|
|
75
|
-
*
|
|
76
|
-
*/
|
|
77
|
-
load(id, options2) {
|
|
78
|
-
const [validId] = id.split("?");
|
|
79
|
-
if (validId === GLOBAL_CSS_VIRTUAL_PATH) {
|
|
80
|
-
return extractor.getTamagui().getCSS();
|
|
81
|
-
}
|
|
82
|
-
if (!cssMap.has(validId)) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
const css = cssMap.get(validId);
|
|
86
|
-
if (typeof css !== "string") {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
|
-
if (shouldReturnCSS || !server || server.config.isProduction) {
|
|
90
|
-
return css;
|
|
91
|
-
}
|
|
92
|
-
return outdent`
|
|
1
|
+
import j from"path";import*as x from"@tamagui/static";import _ from"outdent";import{normalizePath as $}from"vite";const{createExtractor:P,extractToClassNames:w,getPragmaOptions:E}=x.default||x,S=i=>`tamagui-style-update:${i}`,b="__tamagui_global_css__.css";function B(i){if(i.disable||i.disableDebugAttr&&i.disableExtraction)return{name:"tamagui-extract"};let c=null;const o=new Map;let u,n,g=!0,d;const p=t=>t.startsWith(u.root)?t:$(j.join(u.root,t));return{name:"tamagui-extract",enforce:"pre",configureServer(t){n=t},buildEnd(){c.cleanupBeforeExit()},writeBundle(t,r){setTimeout(()=>{console.warn("some sort of dangling process or osmethign, exit for now..."),process.exit(0)},100)},config(t,r){return{optimizeDeps:{include:r.command==="serve"?["@tamagui/core/inject-styles"]:[]}}},async configResolved(t){u=t,c=P({logger:t.logger}),g=!0,d=`.tamagui.${g?"css":"js"}`},async resolveId(t){if(t==="tamagui.css")return await c.loadTamagui(i),b;const[r,s]=t.split("?");if(!r.endsWith(d))return;const e=t.startsWith(u.root)?t:p(r);if(o.has(e))return e+(s?`?${s}`:"")},load(t,r){const[s]=t.split("?");if(s===b)return c.getTamagui().getCSS();if(!o.has(s))return;const e=o.get(s);if(typeof e=="string")return g||!n||n.config.isProduction?e:_`
|
|
93
2
|
import { injectStyles } from '@tamagui/core/inject-styles';
|
|
94
3
|
|
|
95
4
|
const inject = (css) => injectStyles({
|
|
96
|
-
filePath: "${
|
|
5
|
+
filePath: "${s}",
|
|
97
6
|
css
|
|
98
7
|
});
|
|
99
8
|
|
|
100
|
-
inject(${JSON.stringify(
|
|
9
|
+
inject(${JSON.stringify(e)});
|
|
101
10
|
|
|
102
11
|
if (import.meta.hot) {
|
|
103
|
-
import.meta.hot.on('${
|
|
12
|
+
import.meta.hot.on('${S(s)}', (css) => {
|
|
104
13
|
inject(css);
|
|
105
14
|
});
|
|
106
15
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
async transform(code, id, ssrParam) {
|
|
110
|
-
const [validId] = id.split("?");
|
|
111
|
-
if (!validId.endsWith(".tsx")) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
const firstCommentIndex = code.indexOf("// ");
|
|
115
|
-
const { shouldDisable, shouldPrintDebug } = getPragmaOptions({
|
|
116
|
-
source: firstCommentIndex >= 0 ? code.slice(firstCommentIndex) : "",
|
|
117
|
-
path: validId
|
|
118
|
-
});
|
|
119
|
-
if (shouldDisable) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
const extracted = await extractToClassNames({
|
|
123
|
-
extractor,
|
|
124
|
-
source: code,
|
|
125
|
-
sourcePath: validId,
|
|
126
|
-
options,
|
|
127
|
-
shouldPrintDebug
|
|
128
|
-
});
|
|
129
|
-
if (!extracted) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const rootRelativeId = `${validId}${virtualExt}`;
|
|
133
|
-
const absoluteId = getAbsoluteVirtualFileId(rootRelativeId);
|
|
134
|
-
let source = extracted.js;
|
|
135
|
-
if (extracted.styles) {
|
|
136
|
-
if (server && cssMap.has(absoluteId) && cssMap.get(absoluteId) !== extracted.styles) {
|
|
137
|
-
const { moduleGraph } = server;
|
|
138
|
-
const [module] = Array.from(moduleGraph.getModulesByFile(absoluteId) || []);
|
|
139
|
-
if (module) {
|
|
140
|
-
moduleGraph.invalidateModule(module);
|
|
141
|
-
module.lastHMRTimestamp = module.lastInvalidationTimestamp || Date.now();
|
|
142
|
-
}
|
|
143
|
-
server.ws.send({
|
|
144
|
-
type: "custom",
|
|
145
|
-
event: styleUpdateEvent(absoluteId),
|
|
146
|
-
data: extracted.styles
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
source = `${source}
|
|
150
|
-
import "${rootRelativeId}";`;
|
|
151
|
-
cssMap.set(absoluteId, extracted.styles);
|
|
152
|
-
}
|
|
153
|
-
return {
|
|
154
|
-
code: source.toString(),
|
|
155
|
-
map: extracted.map
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
export {
|
|
161
|
-
tamaguiExtractPlugin
|
|
162
|
-
};
|
|
16
|
+
`},async transform(t,r,s){const[e]=r.split("?");if(!e.endsWith(".tsx"))return;const y=t.indexOf("// "),{shouldDisable:I,shouldPrintDebug:T}=E({source:y>=0?t.slice(y):"",path:e});if(I)return;const a=await w({extractor:c,source:t,sourcePath:e,options:i,shouldPrintDebug:T});if(!a)return;const v=`${e}${d}`,l=p(v);let f=a.js;if(a.styles){if(n&&o.has(l)&&o.get(l)!==a.styles){const{moduleGraph:h}=n,[m]=Array.from(h.getModulesByFile(l)||[]);m&&(h.invalidateModule(m),m.lastHMRTimestamp=m.lastInvalidationTimestamp||Date.now()),n.ws.send({type:"custom",event:S(l),data:a.styles})}f=`${f}
|
|
17
|
+
import "${v}";`,o.set(l,a.styles)}return{code:f.toString(),map:a.map}}}}export{B as tamaguiExtractPlugin};
|
|
163
18
|
//# sourceMappingURL=extract.mjs.map
|
package/dist/esm/extract.mjs.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/extract.ts"],
|
|
4
4
|
"sourcesContent": ["// fork from https://github.com/seek-oss/vanilla-extract\n\nimport path from 'path'\n\nimport { TamaguiOptions } from '@tamagui/static'\nimport * as Static from '@tamagui/static'\nimport outdent from 'outdent'\nimport type { Plugin, ResolvedConfig, ViteDevServer } from 'vite'\nimport { normalizePath } from 'vite'\n\nconst { createExtractor, extractToClassNames, getPragmaOptions } =\n Static['default'] || Static\n\nconst styleUpdateEvent = (fileId: string) => `tamagui-style-update:${fileId}`\nconst GLOBAL_CSS_VIRTUAL_PATH = '__tamagui_global_css__.css'\n\nexport function tamaguiExtractPlugin(options: TamaguiOptions): Plugin {\n const disableStatic =\n options.disable || (options.disableDebugAttr && options.disableExtraction)\n\n if (disableStatic) {\n return {\n name: 'tamagui-extract',\n }\n }\n\n let extractor: ReturnType<typeof createExtractor> | null = null\n const cssMap = new Map<string, string>()\n\n let config: ResolvedConfig\n let server: ViteDevServer\n let shouldReturnCSS = true //config.command === 'serve'\n let virtualExt: string\n\n const getAbsoluteVirtualFileId = (filePath: string) => {\n if (filePath.startsWith(config.root)) {\n return filePath\n }\n return normalizePath(path.join(config.root, filePath))\n }\n\n return {\n name: 'tamagui-extract',\n enforce: 'pre',\n\n configureServer(_server) {\n server = _server\n },\n\n buildEnd() {\n extractor!.cleanupBeforeExit()\n },\n\n writeBundle(this, options, bundle) {\n setTimeout(() => {\n // eslint-disable-next-line no-console\n console.warn('some sort of dangling process or osmethign, exit for now...')\n process.exit(0)\n }, 100)\n },\n\n config(_userConfig, env) {\n const include = env.command === 'serve' ? ['@tamagui/core/inject-styles'] : []\n return {\n optimizeDeps: { include },\n }\n },\n\n async configResolved(resolvedConfig) {\n config = resolvedConfig\n extractor = createExtractor({\n logger: resolvedConfig.logger,\n })\n shouldReturnCSS = true\n // TODO postcss work with postcss.config.js\n // packageName = getPackageInfo(config.root).name;\n // if (config.command === 'serve') {\n // postCssConfig = await resolvePostcssConfig(config);\n // }\n virtualExt = `.tamagui.${shouldReturnCSS ? 'css' : 'js'}`\n },\n\n async resolveId(source) {\n if (source === 'tamagui.css') {\n await extractor!.loadTamagui(options)\n return GLOBAL_CSS_VIRTUAL_PATH\n }\n\n const [validId, query] = source.split('?')\n\n if (!validId.endsWith(virtualExt)) {\n return\n }\n\n // Absolute paths seem to occur often in monorepos, where files are\n // imported from outside the config root.\n const absoluteId = source.startsWith(config.root)\n ? source\n : getAbsoluteVirtualFileId(validId)\n\n // There should always be an entry in the `cssMap` here.\n // The only valid scenario for a missing one is if someone had written\n // a file in their app using the .tamagui.js/.tamagui.css extension\n if (cssMap.has(absoluteId)) {\n // Keep the original query string for HMR.\n return absoluteId + (query ? `?${query}` : '')\n }\n },\n\n /**\n * TODO\n *\n * mainFields module:jsx breaks, so lets just have a mapping here\n * where we load() and map it to the jsx path before transform\n *\n */\n\n load(id, options) {\n const [validId] = id.split('?')\n\n if (validId === GLOBAL_CSS_VIRTUAL_PATH) {\n return extractor!.getTamagui()!.getCSS()\n }\n\n if (!cssMap.has(validId)) {\n return\n }\n\n const css = cssMap.get(validId)\n\n if (typeof css !== 'string') {\n return\n }\n\n if (shouldReturnCSS || !server || server.config.isProduction) {\n return css\n }\n\n return outdent`\n import { injectStyles } from '@tamagui/core/inject-styles';\n\n const inject = (css) => injectStyles({\n filePath: \"${validId}\",\n css\n });\n\n inject(${JSON.stringify(css)});\n\n if (import.meta.hot) {\n import.meta.hot.on('${styleUpdateEvent(validId)}', (css) => {\n inject(css);\n });\n }\n `\n },\n\n async transform(code, id, ssrParam) {\n const [validId] = id.split('?')\n\n if (!validId.endsWith('.tsx')) {\n return\n }\n\n // let ssr: boolean | undefined\n // if (typeof ssrParam === 'boolean') {\n // ssr = ssrParam\n // } else {\n // ssr = ssrParam?.ssr\n // }\n\n const firstCommentIndex = code.indexOf('// ')\n const { shouldDisable, shouldPrintDebug } = getPragmaOptions({\n source: firstCommentIndex >= 0 ? code.slice(firstCommentIndex) : '',\n path: validId,\n })\n\n if (shouldDisable) {\n return\n }\n\n const extracted = await extractToClassNames({\n extractor: extractor!,\n source: code,\n sourcePath: validId,\n options,\n shouldPrintDebug,\n })\n\n if (!extracted) {\n return\n }\n\n const rootRelativeId = `${validId}${virtualExt}`\n const absoluteId = getAbsoluteVirtualFileId(rootRelativeId)\n\n let source = extracted.js\n\n if (extracted.styles) {\n if (\n server &&\n cssMap.has(absoluteId) &&\n cssMap.get(absoluteId) !== extracted.styles\n ) {\n const { moduleGraph } = server\n const [module] = Array.from(moduleGraph.getModulesByFile(absoluteId) || [])\n\n if (module) {\n moduleGraph.invalidateModule(module)\n\n // Vite uses this timestamp to add `?t=` query string automatically for HMR.\n module.lastHMRTimestamp =\n (module as any).lastInvalidationTimestamp || Date.now()\n }\n\n server.ws.send({\n type: 'custom',\n event: styleUpdateEvent(absoluteId),\n data: extracted.styles,\n })\n }\n\n source = `${source}\\nimport \"${rootRelativeId}\";`\n cssMap.set(absoluteId, extracted.styles)\n }\n\n return {\n code: source.toString(),\n map: extracted.map,\n }\n\n // if (ssr && !process.env.VITE_RSC_BUILD) {\n // return addFileScope({\n // source: code,\n // filePath: normalizePath(validId),\n // rootPath: config.root,\n // packageName,\n // })\n // }\n\n // const { source, watchFiles } = await compile({\n // filePath: validId,\n // cwd: config.root,\n // esbuildOptions,\n // })\n\n // for (const file of watchFiles) {\n // // In start mode, we need to prevent the file from rewatching itself.\n // // If it's a `build --watch`, it needs to watch everything.\n // if (config.command === 'build' || file !== validId) {\n // this.addWatchFile(file)\n // }\n // }\n },\n }\n}\n"],
|
|
5
|
-
"mappings": "AAEA,
|
|
6
|
-
"names": ["options"]
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["path", "Static", "outdent", "normalizePath", "createExtractor", "extractToClassNames", "getPragmaOptions", "styleUpdateEvent", "fileId", "GLOBAL_CSS_VIRTUAL_PATH", "tamaguiExtractPlugin", "options", "extractor", "cssMap", "config", "server", "shouldReturnCSS", "virtualExt", "getAbsoluteVirtualFileId", "filePath", "_server", "bundle", "_userConfig", "env", "resolvedConfig", "source", "validId", "query", "absoluteId", "id", "css", "code", "ssrParam", "firstCommentIndex", "shouldDisable", "shouldPrintDebug", "extracted", "rootRelativeId", "moduleGraph", "module"]
|
|
7
7
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from "./extract.js";
|
|
3
|
-
export * from "./native.js";
|
|
4
|
-
export * from "./nativePrebuild.js";
|
|
1
|
+
export*from"./plugin.js";export*from"./extract.js";export*from"./native.js";export*from"./nativePrebuild.js";
|
|
5
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["export * from './plugin.js'\nexport * from './extract.js'\nexport * from './native.js'\nexport * from './nativePrebuild.js'\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
5
|
+
"mappings": "AAAA,WAAc,cACd,WAAc,eACd,WAAc,cACd,WAAc",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
export
|
|
2
|
-
export * from "./extract.js";
|
|
3
|
-
export * from "./native.js";
|
|
4
|
-
export * from "./nativePrebuild.js";
|
|
1
|
+
export*from"./plugin.js";export*from"./extract.js";export*from"./native.js";export*from"./nativePrebuild.js";
|
|
5
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/index.ts"],
|
|
4
4
|
"sourcesContent": ["export * from './plugin.js'\nexport * from './extract.js'\nexport * from './native.js'\nexport * from './nativePrebuild.js'\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
5
|
+
"mappings": "AAAA,WAAc,cACd,WAAc,eACd,WAAc,cACd,WAAc",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/native.js
CHANGED
|
@@ -1,210 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { join } from "path";
|
|
3
|
-
import { esbuildFlowPlugin } from "@bunchtogether/vite-plugin-flow";
|
|
4
|
-
import { extensions } from "./extensions.js";
|
|
5
|
-
function nativePlugin() {
|
|
6
|
-
return {
|
|
7
|
-
name: "tamagui-native",
|
|
8
|
-
enforce: "post",
|
|
9
|
-
config: (config) => {
|
|
10
|
-
if (!config.build)
|
|
11
|
-
config.build = {};
|
|
12
|
-
config.build.modulePreload = { polyfill: false };
|
|
13
|
-
config.build.assetsInlineLimit = 1e8;
|
|
14
|
-
config.build.chunkSizeWarningLimit = 1e8;
|
|
15
|
-
config.build.cssCodeSplit = false;
|
|
16
|
-
config.build.reportCompressedSize = false;
|
|
17
|
-
config.base = void 0;
|
|
18
|
-
config.resolve ??= {};
|
|
19
|
-
config.resolve.extensions = extensions;
|
|
20
|
-
config.resolve.alias ??= {};
|
|
21
|
-
config.resolve.alias = {
|
|
22
|
-
...config.resolve.alias,
|
|
23
|
-
"react-native/Libraries/Renderer/shims/ReactFabric": "react-native/Libraries/Renderer/shims/ReactFabric",
|
|
24
|
-
"react-native/Libraries/Utilities/codegenNativeComponent": "react-native/Libraries/Utilities/codegenNativeComponent",
|
|
25
|
-
"react-native-svg": "react-native-svg",
|
|
26
|
-
"react-native-web": "react-native",
|
|
27
|
-
"react-native": "react-native"
|
|
28
|
-
};
|
|
29
|
-
config.optimizeDeps ??= {};
|
|
30
|
-
config.optimizeDeps.esbuildOptions ??= {};
|
|
31
|
-
config.optimizeDeps.esbuildOptions.resolveExtensions = extensions;
|
|
32
|
-
config.optimizeDeps.esbuildOptions.plugins ??= [];
|
|
33
|
-
config.optimizeDeps.esbuildOptions.plugins.push(
|
|
34
|
-
esbuildFlowPlugin(
|
|
35
|
-
/node_modules\/(react-native\/|@react-native\/assets)/,
|
|
36
|
-
(_) => "jsx"
|
|
37
|
-
)
|
|
38
|
-
);
|
|
39
|
-
config.optimizeDeps.include ??= [];
|
|
40
|
-
config.optimizeDeps.include.push("react-native");
|
|
41
|
-
config.optimizeDeps.esbuildOptions.loader ??= {};
|
|
42
|
-
config.optimizeDeps.esbuildOptions.loader[".js"] = "jsx";
|
|
43
|
-
config.optimizeDeps.esbuildOptions.plugins.push({
|
|
44
|
-
name: "react-native-assets",
|
|
45
|
-
setup(build) {
|
|
46
|
-
build.onResolve(
|
|
47
|
-
{
|
|
48
|
-
filter: /\.(png|jpg|gif|webp)$/
|
|
49
|
-
},
|
|
50
|
-
async ({ path, namespace }) => {
|
|
51
|
-
return {
|
|
52
|
-
path: "",
|
|
53
|
-
external: true
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
config.build.rollupOptions ??= {};
|
|
60
|
-
config.build.rollupOptions.input = "/Users/n8/tamagui/apps/kitchen-sink/src/index.tsx";
|
|
61
|
-
config.build.rollupOptions.output ??= {};
|
|
62
|
-
config.build.rollupOptions.plugins ??= [];
|
|
63
|
-
config.build.rollupOptions.external = ["react-native", "react", "react/jsx-runtime"];
|
|
64
|
-
if (!Array.isArray(config.build.rollupOptions.plugins)) {
|
|
65
|
-
throw `x`;
|
|
66
|
-
}
|
|
67
|
-
if (process.env.DEBUG) {
|
|
68
|
-
console.log("config..", config);
|
|
69
|
-
}
|
|
70
|
-
config.build.commonjsOptions = {
|
|
71
|
-
include: /node_modules\/react\//
|
|
72
|
-
};
|
|
73
|
-
config.build.rollupOptions.plugins.push({
|
|
74
|
-
name: `swap-react-native`,
|
|
75
|
-
async load(id) {
|
|
76
|
-
if (id.endsWith("react-native/index.js")) {
|
|
77
|
-
const bundled = await readFile(
|
|
78
|
-
join(process.cwd(), "react-native.js"),
|
|
79
|
-
"utf-8"
|
|
80
|
-
);
|
|
81
|
-
const code = bundled;
|
|
82
|
-
return {
|
|
83
|
-
code: `
|
|
1
|
+
import{readFile as n}from"fs/promises";import{join as l}from"path";import{esbuildFlowPlugin as p}from"@bunchtogether/vite-plugin-flow";import{extensions as r}from"./extensions.js";function h(){return{name:"tamagui-native",enforce:"post",config:e=>{if(e.build||(e.build={}),e.build.modulePreload={polyfill:!1},e.build.assetsInlineLimit=1e8,e.build.chunkSizeWarningLimit=1e8,e.build.cssCodeSplit=!1,e.build.reportCompressedSize=!1,e.base=void 0,e.resolve??={},e.resolve.extensions=r,e.resolve.alias??={},e.resolve.alias={...e.resolve.alias,"react-native/Libraries/Renderer/shims/ReactFabric":"react-native/Libraries/Renderer/shims/ReactFabric","react-native/Libraries/Utilities/codegenNativeComponent":"react-native/Libraries/Utilities/codegenNativeComponent","react-native-svg":"react-native-svg","react-native-web":"react-native","react-native":"react-native"},e.optimizeDeps??={},e.optimizeDeps.esbuildOptions??={},e.optimizeDeps.esbuildOptions.resolveExtensions=r,e.optimizeDeps.esbuildOptions.plugins??=[],e.optimizeDeps.esbuildOptions.plugins.push(p(/node_modules\/(react-native\/|@react-native\/assets)/,t=>"jsx")),e.optimizeDeps.include??=[],e.optimizeDeps.include.push("react-native"),e.optimizeDeps.esbuildOptions.loader??={},e.optimizeDeps.esbuildOptions.loader[".js"]="jsx",e.optimizeDeps.esbuildOptions.plugins.push({name:"react-native-assets",setup(t){t.onResolve({filter:/\.(png|jpg|gif|webp)$/},async({path:i,namespace:o})=>({path:"",external:!0}))}}),e.build.rollupOptions??={},e.build.rollupOptions.input="/Users/n8/tamagui/apps/kitchen-sink/src/index.tsx",e.build.rollupOptions.output??={},e.build.rollupOptions.plugins??=[],e.build.rollupOptions.external=["react-native","react","react/jsx-runtime"],!Array.isArray(e.build.rollupOptions.plugins))throw"x";process.env.DEBUG&&console.log("config..",e),e.build.commonjsOptions={include:/node_modules\/react\//},e.build.rollupOptions.plugins.push({name:"swap-react-native",async load(t){if(t.endsWith("react-native/index.js")){const i=await n(l(process.cwd(),"react-native.js"),"utf-8"),o=i;return{code:`
|
|
84
2
|
const run = () => {
|
|
85
|
-
${
|
|
86
|
-
`module.exports = require_react_native();`,
|
|
87
|
-
`return require_react_native();`
|
|
88
|
-
)}
|
|
3
|
+
${i.replace("module.exports = require_react_native();","return require_react_native();")}
|
|
89
4
|
}
|
|
90
5
|
|
|
91
6
|
const RN = run()
|
|
92
7
|
|
|
93
|
-
${
|
|
94
|
-
|
|
95
|
-
// adding exports
|
|
96
|
-
`export const ${name} = RN.${name}`
|
|
97
|
-
)
|
|
98
|
-
).join("\n")}
|
|
8
|
+
${u.map(a=>`export const ${a} = RN.${a}`).join(`
|
|
9
|
+
`)}
|
|
99
10
|
|
|
100
|
-
`
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
const updateOutputOptions = (out) => {
|
|
106
|
-
out.inlineDynamicImports = true;
|
|
107
|
-
out.manualChunks = void 0;
|
|
108
|
-
};
|
|
109
|
-
if (Array.isArray(config.build.rollupOptions.output)) {
|
|
110
|
-
for (const o in config.build.rollupOptions.output)
|
|
111
|
-
updateOutputOptions(o);
|
|
112
|
-
} else {
|
|
113
|
-
updateOutputOptions(config.build.rollupOptions.output);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
const RNExportNames = [
|
|
119
|
-
"AccessibilityInfo",
|
|
120
|
-
"ActivityIndicator",
|
|
121
|
-
"Button",
|
|
122
|
-
"DatePickerIOS",
|
|
123
|
-
"DrawerLayoutAndroid",
|
|
124
|
-
"FlatList",
|
|
125
|
-
"Image",
|
|
126
|
-
"ImageBackground",
|
|
127
|
-
"InputAccessoryView",
|
|
128
|
-
"KeyboardAvoidingView",
|
|
129
|
-
"MaskedViewIOS",
|
|
130
|
-
"Modal",
|
|
131
|
-
"Pressable",
|
|
132
|
-
"ProgressBarAndroid",
|
|
133
|
-
"ProgressViewIOS",
|
|
134
|
-
"RefreshControl",
|
|
135
|
-
"SafeAreaView",
|
|
136
|
-
"ScrollView",
|
|
137
|
-
"SectionList",
|
|
138
|
-
"Slider",
|
|
139
|
-
"StatusBar",
|
|
140
|
-
"Switch",
|
|
141
|
-
"Text",
|
|
142
|
-
"TextInput",
|
|
143
|
-
"Touchable",
|
|
144
|
-
"TouchableHighlight",
|
|
145
|
-
"TouchableNativeFeedback",
|
|
146
|
-
"TouchableOpacity",
|
|
147
|
-
"TouchableWithoutFeedback",
|
|
148
|
-
"View",
|
|
149
|
-
"VirtualizedList",
|
|
150
|
-
"VirtualizedSectionList",
|
|
151
|
-
"ActionSheetIOS",
|
|
152
|
-
"Alert",
|
|
153
|
-
"Animated",
|
|
154
|
-
"Appearance",
|
|
155
|
-
"AppRegistry",
|
|
156
|
-
"AppState",
|
|
157
|
-
"AsyncStorage",
|
|
158
|
-
"BackHandler",
|
|
159
|
-
"Clipboard",
|
|
160
|
-
"DeviceInfo",
|
|
161
|
-
"DevSettings",
|
|
162
|
-
"Dimensions",
|
|
163
|
-
"Easing",
|
|
164
|
-
"findNodeHandle",
|
|
165
|
-
"I18nManager",
|
|
166
|
-
"ImagePickerIOS",
|
|
167
|
-
"InteractionManager",
|
|
168
|
-
"Keyboard",
|
|
169
|
-
"LayoutAnimation",
|
|
170
|
-
"Linking",
|
|
171
|
-
"LogBox",
|
|
172
|
-
"NativeDialogManagerAndroid",
|
|
173
|
-
"NativeEventEmitter",
|
|
174
|
-
"Networking",
|
|
175
|
-
"PanResponder",
|
|
176
|
-
"PermissionsAndroid",
|
|
177
|
-
"PixelRatio",
|
|
178
|
-
// 'PushNotificationIOS',
|
|
179
|
-
"Settings",
|
|
180
|
-
"Share",
|
|
181
|
-
"StyleSheet",
|
|
182
|
-
"Systrace",
|
|
183
|
-
"ToastAndroid",
|
|
184
|
-
"TurboModuleRegistry",
|
|
185
|
-
"UIManager",
|
|
186
|
-
"unstable_batchedUpdates",
|
|
187
|
-
"useColorScheme",
|
|
188
|
-
"useWindowDimensions",
|
|
189
|
-
"UTFSequence",
|
|
190
|
-
"Vibration",
|
|
191
|
-
"YellowBox",
|
|
192
|
-
"DeviceEventEmitter",
|
|
193
|
-
"DynamicColorIOS",
|
|
194
|
-
"NativeAppEventEmitter",
|
|
195
|
-
"NativeModules",
|
|
196
|
-
"Platform",
|
|
197
|
-
"PlatformColor",
|
|
198
|
-
"processColor",
|
|
199
|
-
"requireNativeComponent",
|
|
200
|
-
"RootTagContext"
|
|
201
|
-
// 'unstable_enableLogBox',
|
|
202
|
-
// 'ColorPropType',
|
|
203
|
-
// 'EdgeInsetsPropType',
|
|
204
|
-
// 'PointPropType',
|
|
205
|
-
// 'ViewPropTypes',
|
|
206
|
-
];
|
|
207
|
-
export {
|
|
208
|
-
nativePlugin
|
|
209
|
-
};
|
|
11
|
+
`}}}});const s=t=>{t.inlineDynamicImports=!0,t.manualChunks=void 0};if(Array.isArray(e.build.rollupOptions.output))for(const t in e.build.rollupOptions.output)s(t);else s(e.build.rollupOptions.output)}}}const u=["AccessibilityInfo","ActivityIndicator","Button","DatePickerIOS","DrawerLayoutAndroid","FlatList","Image","ImageBackground","InputAccessoryView","KeyboardAvoidingView","MaskedViewIOS","Modal","Pressable","ProgressBarAndroid","ProgressViewIOS","RefreshControl","SafeAreaView","ScrollView","SectionList","Slider","StatusBar","Switch","Text","TextInput","Touchable","TouchableHighlight","TouchableNativeFeedback","TouchableOpacity","TouchableWithoutFeedback","View","VirtualizedList","VirtualizedSectionList","ActionSheetIOS","Alert","Animated","Appearance","AppRegistry","AppState","AsyncStorage","BackHandler","Clipboard","DeviceInfo","DevSettings","Dimensions","Easing","findNodeHandle","I18nManager","ImagePickerIOS","InteractionManager","Keyboard","LayoutAnimation","Linking","LogBox","NativeDialogManagerAndroid","NativeEventEmitter","Networking","PanResponder","PermissionsAndroid","PixelRatio","Settings","Share","StyleSheet","Systrace","ToastAndroid","TurboModuleRegistry","UIManager","unstable_batchedUpdates","useColorScheme","useWindowDimensions","UTFSequence","Vibration","YellowBox","DeviceEventEmitter","DynamicColorIOS","NativeAppEventEmitter","NativeModules","Platform","PlatformColor","processColor","requireNativeComponent","RootTagContext"];export{h as nativePlugin};
|
|
210
12
|
//# sourceMappingURL=native.js.map
|
package/dist/esm/native.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/native.ts"],
|
|
4
4
|
"sourcesContent": ["import { readFile } from 'fs/promises'\nimport { join } from 'path'\n\nimport { esbuildFlowPlugin } from '@bunchtogether/vite-plugin-flow'\nimport { OutputOptions } from 'rollup'\nimport type { Plugin } from 'vite'\n\nimport { extensions } from './extensions.js'\n\nexport function nativePlugin(): Plugin {\n return {\n name: 'tamagui-native',\n enforce: 'post',\n\n config: (config) => {\n if (!config.build) config.build = {}\n\n config.build.modulePreload = { polyfill: false }\n // Ensures that even very large assets are inlined in your JavaScript.\n config.build.assetsInlineLimit = 100000000\n // Avoid warnings about large chunks.\n config.build.chunkSizeWarningLimit = 100000000\n // Emit all CSS as a single file, which `vite-plugin-singlefile` can then inline.\n config.build.cssCodeSplit = false\n // Avoids the extra step of testing Brotli compression, which isn't really pertinent to a file served locally.\n config.build.reportCompressedSize = false\n // Subfolder bases are not supported, and shouldn't be needed because we're embedding everything.\n config.base = undefined\n\n config.resolve ??= {}\n\n config.resolve.extensions = extensions\n\n config.resolve.alias ??= {}\n config.resolve.alias = {\n ...config.resolve.alias,\n 'react-native/Libraries/Renderer/shims/ReactFabric':\n 'react-native/Libraries/Renderer/shims/ReactFabric',\n 'react-native/Libraries/Utilities/codegenNativeComponent':\n 'react-native/Libraries/Utilities/codegenNativeComponent',\n 'react-native-svg': 'react-native-svg',\n 'react-native-web': 'react-native',\n 'react-native': 'react-native',\n }\n\n config.optimizeDeps ??= {}\n config.optimizeDeps.esbuildOptions ??= {}\n config.optimizeDeps.esbuildOptions.resolveExtensions = extensions\n\n config.optimizeDeps.esbuildOptions.plugins ??= []\n config.optimizeDeps.esbuildOptions.plugins.push(\n esbuildFlowPlugin(\n /node_modules\\/(react-native\\/|@react-native\\/assets)/,\n (_) => 'jsx'\n )\n )\n // config.optimizeDeps.esbuildOptions.plugins.push(esbuildCommonjs(['react-native']))\n\n config.optimizeDeps.include ??= []\n config.optimizeDeps.include.push('react-native')\n\n config.optimizeDeps.esbuildOptions.loader ??= {}\n config.optimizeDeps.esbuildOptions.loader['.js'] = 'jsx'\n\n config.optimizeDeps.esbuildOptions.plugins.push({\n name: 'react-native-assets',\n setup(build) {\n build.onResolve(\n {\n filter: /\\.(png|jpg|gif|webp)$/,\n },\n async ({ path, namespace }) => {\n return {\n path: '',\n external: true,\n }\n }\n )\n },\n })\n\n config.build.rollupOptions ??= {}\n\n config.build.rollupOptions.input =\n '/Users/n8/tamagui/apps/kitchen-sink/src/index.tsx'\n\n config.build.rollupOptions.output ??= {}\n\n config.build.rollupOptions.plugins ??= []\n\n config.build.rollupOptions.external = ['react-native', 'react', 'react/jsx-runtime']\n\n if (!Array.isArray(config.build.rollupOptions.plugins)) {\n throw `x`\n }\n\n if (process.env.DEBUG) {\n console.log('config..', config)\n }\n\n config.build.commonjsOptions = {\n include: /node_modules\\/react\\//,\n }\n\n config.build.rollupOptions.plugins.push({\n name: `swap-react-native`,\n async load(id) {\n if (id.endsWith('react-native/index.js')) {\n const bundled = await readFile(\n join(process.cwd(), 'react-native.js'),\n 'utf-8'\n )\n const code = bundled\n return {\n code: `\nconst run = () => { \n ${bundled.replace(\n `module.exports = require_react_native();`,\n `return require_react_native();`\n )}\n}\n\nconst RN = run()\n\n${RNExportNames.map(\n (name) =>\n // adding exports\n `export const ${name} = RN.${name}`\n).join('\\n')}\n\n`,\n }\n }\n },\n })\n\n const updateOutputOptions = (out: OutputOptions) => {\n // Ensure that as many resources as possible are inlined.\n out.inlineDynamicImports = true\n\n // added by me (nate):\n out.manualChunks = undefined\n }\n\n if (Array.isArray(config.build.rollupOptions.output)) {\n for (const o in config.build.rollupOptions.output)\n updateOutputOptions(o as OutputOptions)\n } else {\n updateOutputOptions(config.build.rollupOptions.output as OutputOptions)\n }\n },\n }\n}\n\nconst RNExportNames = [\n 'AccessibilityInfo',\n 'ActivityIndicator',\n 'Button',\n 'DatePickerIOS',\n 'DrawerLayoutAndroid',\n 'FlatList',\n 'Image',\n 'ImageBackground',\n 'InputAccessoryView',\n 'KeyboardAvoidingView',\n 'MaskedViewIOS',\n 'Modal',\n 'Pressable',\n 'ProgressBarAndroid',\n 'ProgressViewIOS',\n 'RefreshControl',\n 'SafeAreaView',\n 'ScrollView',\n 'SectionList',\n 'Slider',\n 'StatusBar',\n 'Switch',\n 'Text',\n 'TextInput',\n 'Touchable',\n 'TouchableHighlight',\n 'TouchableNativeFeedback',\n 'TouchableOpacity',\n 'TouchableWithoutFeedback',\n 'View',\n 'VirtualizedList',\n 'VirtualizedSectionList',\n 'ActionSheetIOS',\n 'Alert',\n 'Animated',\n 'Appearance',\n 'AppRegistry',\n 'AppState',\n 'AsyncStorage',\n 'BackHandler',\n 'Clipboard',\n 'DeviceInfo',\n 'DevSettings',\n 'Dimensions',\n 'Easing',\n 'findNodeHandle',\n 'I18nManager',\n 'ImagePickerIOS',\n 'InteractionManager',\n 'Keyboard',\n 'LayoutAnimation',\n 'Linking',\n 'LogBox',\n 'NativeDialogManagerAndroid',\n 'NativeEventEmitter',\n 'Networking',\n 'PanResponder',\n 'PermissionsAndroid',\n 'PixelRatio',\n // 'PushNotificationIOS',\n 'Settings',\n 'Share',\n 'StyleSheet',\n 'Systrace',\n 'ToastAndroid',\n 'TurboModuleRegistry',\n 'UIManager',\n 'unstable_batchedUpdates',\n 'useColorScheme',\n 'useWindowDimensions',\n 'UTFSequence',\n 'Vibration',\n 'YellowBox',\n 'DeviceEventEmitter',\n 'DynamicColorIOS',\n 'NativeAppEventEmitter',\n 'NativeModules',\n 'Platform',\n 'PlatformColor',\n 'processColor',\n 'requireNativeComponent',\n 'RootTagContext',\n // 'unstable_enableLogBox',\n // 'ColorPropType',\n // 'EdgeInsetsPropType',\n // 'PointPropType',\n // 'ViewPropTypes',\n]\n"],
|
|
5
|
-
"mappings": "AAAA,
|
|
6
|
-
"names": []
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["readFile", "join", "esbuildFlowPlugin", "extensions", "nativePlugin", "config", "_", "build", "path", "namespace", "id", "bundled", "code", "RNExportNames", "name", "updateOutputOptions", "out", "o"]
|
|
7
7
|
}
|