@hanzogui/vite-plugin 2.0.0-rc.41-hanzoai.5
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/LICENSE +21 -0
- package/dist/cjs/extensions.cjs +28 -0
- package/dist/cjs/index.cjs +20 -0
- package/dist/cjs/loadHanzogui.cjs +101 -0
- package/dist/cjs/plugin.cjs +423 -0
- package/dist/esm/extensions.mjs +3 -0
- package/dist/esm/extensions.mjs.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/loadHanzogui.mjs +61 -0
- package/dist/esm/loadHanzogui.mjs.map +1 -0
- package/dist/esm/plugin.mjs +385 -0
- package/dist/esm/plugin.mjs.map +1 -0
- package/package.json +58 -0
- package/src/extensions.ts +12 -0
- package/src/index.ts +1 -0
- package/src/loadHanzogui.ts +94 -0
- package/src/plugin.ts +555 -0
- package/types/extensions.d.ts +2 -0
- package/types/extensions.d.ts.map +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -0
- package/types/loadHanzogui.d.ts +15 -0
- package/types/loadHanzogui.d.ts.map +1 -0
- package/types/plugin.d.ts +22 -0
- package/types/plugin.d.ts.map +1 -0
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
import * as Static from "@hanzogui/static-worker";
|
|
2
|
+
import { getPragmaOptions } from "@hanzogui/static-worker";
|
|
3
|
+
import { createHash } from "node:crypto";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { normalizePath } from "vite";
|
|
7
|
+
import { loadHanzoguiBuildConfig, getLoadPromise, getHanzoguiOptions, ensureFullConfigLoaded } from "./loadHanzogui.mjs";
|
|
8
|
+
const resolve = name => fileURLToPath(import.meta.resolve(name));
|
|
9
|
+
const CACHE_KEY = "__hanzogui_vite_cache__";
|
|
10
|
+
const CACHE_SIZE_KEY = "__hanzogui_vite_cache_size__";
|
|
11
|
+
const PENDING_KEY = "__hanzogui_vite_pending__";
|
|
12
|
+
function getSharedCache() {
|
|
13
|
+
if (!globalThis[CACHE_KEY]) {
|
|
14
|
+
;
|
|
15
|
+
globalThis[CACHE_KEY] = {};
|
|
16
|
+
}
|
|
17
|
+
return globalThis[CACHE_KEY];
|
|
18
|
+
}
|
|
19
|
+
function getSharedCacheSize() {
|
|
20
|
+
return globalThis[CACHE_SIZE_KEY] || 0;
|
|
21
|
+
}
|
|
22
|
+
function setSharedCacheSize(size) {
|
|
23
|
+
;
|
|
24
|
+
globalThis[CACHE_SIZE_KEY] = size;
|
|
25
|
+
}
|
|
26
|
+
function clearSharedCache() {
|
|
27
|
+
;
|
|
28
|
+
globalThis[CACHE_KEY] = {};
|
|
29
|
+
globalThis[CACHE_SIZE_KEY] = 0;
|
|
30
|
+
}
|
|
31
|
+
function getPendingExtractions() {
|
|
32
|
+
if (!globalThis[PENDING_KEY]) {
|
|
33
|
+
;
|
|
34
|
+
globalThis[PENDING_KEY] = /* @__PURE__ */new Map();
|
|
35
|
+
}
|
|
36
|
+
return globalThis[PENDING_KEY];
|
|
37
|
+
}
|
|
38
|
+
function hanzoguiAliases(options = {}) {
|
|
39
|
+
const aliases = [];
|
|
40
|
+
if (options.svg) {
|
|
41
|
+
aliases.push({
|
|
42
|
+
find: "react-native-svg",
|
|
43
|
+
replacement: resolve("@hanzogui/react-native-svg")
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
if (options.rnwLite) {
|
|
47
|
+
const rnwl = resolve(options.rnwLite === "without-animated" ? "@hanzogui/react-native-web-lite/without-animated" : "@hanzogui/react-native-web-lite");
|
|
48
|
+
const rnwlBase = path.dirname(resolve("@hanzogui/react-native-web-lite/package.json"));
|
|
49
|
+
aliases.push({
|
|
50
|
+
// map deep RNW paths like dist/exports/StyleSheet/preprocess to rnw-lite's flat structure
|
|
51
|
+
// extracts the final path segment (e.g. "preprocess" or "createReactDOMStyle")
|
|
52
|
+
find: /^react-native(?:-web)?\/dist\/(?:exports|modules)\/.*\/([^/]+)$/,
|
|
53
|
+
replacement: `${rnwlBase}/dist/esm/$1.mjs`
|
|
54
|
+
}, {
|
|
55
|
+
find: /^react-native$/,
|
|
56
|
+
replacement: rnwl
|
|
57
|
+
}, {
|
|
58
|
+
find: /^react-native\/(Libraries\/Utilities\/codegenNativeComponent|Libraries\/Utilities\/codegenNativeCommand)$/,
|
|
59
|
+
replacement: `${rnwlBase}/$1`
|
|
60
|
+
}, {
|
|
61
|
+
find: "react-native/package.json",
|
|
62
|
+
replacement: resolve("@hanzogui/react-native-web-lite/package.json")
|
|
63
|
+
}, {
|
|
64
|
+
find: /^react-native-web$/,
|
|
65
|
+
replacement: rnwl
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
return aliases;
|
|
69
|
+
}
|
|
70
|
+
function hanzoguiPlugin({
|
|
71
|
+
disableResolveConfig,
|
|
72
|
+
...hanzoguiOptionsIn
|
|
73
|
+
} = {}) {
|
|
74
|
+
let shouldExtract = !hanzoguiOptionsIn.disableExtraction;
|
|
75
|
+
let watcher;
|
|
76
|
+
const enableNativeEnv = !!globalThis.__vxrnEnableNativeEnv;
|
|
77
|
+
const extensions = [`.web.mjs`, `.web.js`, `.web.jsx`, `.web.ts`, `.web.tsx`, ".mjs", ".js", ".mts", ".ts", ".jsx", ".tsx", ".json"];
|
|
78
|
+
loadHanzoguiBuildConfig(hanzoguiOptionsIn);
|
|
79
|
+
const ensureLoaded = async () => {
|
|
80
|
+
const promise = getLoadPromise();
|
|
81
|
+
if (promise) await promise;
|
|
82
|
+
const options = getHanzoguiOptions();
|
|
83
|
+
if (options) {
|
|
84
|
+
shouldExtract = !options.disableExtraction;
|
|
85
|
+
}
|
|
86
|
+
return options;
|
|
87
|
+
};
|
|
88
|
+
const getHash = input => createHash("sha1").update(input).digest("base64");
|
|
89
|
+
const memoryCache = getSharedCache();
|
|
90
|
+
const cssMap = /* @__PURE__ */new Map();
|
|
91
|
+
let config;
|
|
92
|
+
let server;
|
|
93
|
+
const virtualExt = `.hanzogui.css`;
|
|
94
|
+
const getAbsoluteVirtualFileId = filePath => {
|
|
95
|
+
if (filePath.startsWith(config.root)) {
|
|
96
|
+
return filePath;
|
|
97
|
+
}
|
|
98
|
+
return normalizePath(path.join(config.root, filePath));
|
|
99
|
+
};
|
|
100
|
+
function isNotClient(environment) {
|
|
101
|
+
return environment?.name && environment.name !== "client";
|
|
102
|
+
}
|
|
103
|
+
function isNative(environment) {
|
|
104
|
+
return environment?.name && (environment.name === "ios" || environment.name === "android");
|
|
105
|
+
}
|
|
106
|
+
function invalidateModule(absoluteId) {
|
|
107
|
+
if (!server) return;
|
|
108
|
+
const {
|
|
109
|
+
moduleGraph
|
|
110
|
+
} = server;
|
|
111
|
+
const modules = moduleGraph.getModulesByFile(absoluteId);
|
|
112
|
+
if (modules) {
|
|
113
|
+
for (const module of modules) {
|
|
114
|
+
moduleGraph.invalidateModule(module);
|
|
115
|
+
module.lastHMRTimestamp = module.lastInvalidationTimestamp || Date.now();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
const basePlugin = {
|
|
120
|
+
name: "hanzogui",
|
|
121
|
+
enforce: "pre",
|
|
122
|
+
configureServer(_server) {
|
|
123
|
+
server = _server;
|
|
124
|
+
},
|
|
125
|
+
async buildEnd() {
|
|
126
|
+
await watcher?.then(res => {
|
|
127
|
+
res?.dispose();
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
async config(_, env) {
|
|
131
|
+
const options = await ensureLoaded();
|
|
132
|
+
if (!options) {
|
|
133
|
+
throw new Error(`No hanzogui options loaded`);
|
|
134
|
+
}
|
|
135
|
+
if (!options.disableWatchHanzoguiConfig) {
|
|
136
|
+
watcher = Static.watchHanzoguiConfig({
|
|
137
|
+
components: ["hanzogui"],
|
|
138
|
+
config: "./src/hanzogui.config.ts",
|
|
139
|
+
...options
|
|
140
|
+
}).catch(err => {
|
|
141
|
+
console.error(` [Hanzogui] Error watching config: ${err}`);
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
envPrefix: ["TAMAGUI_"],
|
|
146
|
+
environments: {
|
|
147
|
+
client: {
|
|
148
|
+
define: {
|
|
149
|
+
"process.env.TAMAGUI_IS_CLIENT": JSON.stringify(true),
|
|
150
|
+
"process.env.TAMAGUI_ENVIRONMENT": '"client"'
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
define: {
|
|
155
|
+
// reanimated support
|
|
156
|
+
_frameTimestamp: void 0,
|
|
157
|
+
_WORKLET: false,
|
|
158
|
+
__DEV__: `${env.mode === "development"}`,
|
|
159
|
+
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV || env.mode),
|
|
160
|
+
"process.env.ENABLE_RSC": JSON.stringify(process.env.ENABLE_RSC || ""),
|
|
161
|
+
"process.env.ENABLE_STEPS": JSON.stringify(process.env.ENABLE_STEPS || ""),
|
|
162
|
+
"process.env.IS_STATIC": JSON.stringify(false),
|
|
163
|
+
...(env.mode === "production" && {
|
|
164
|
+
"process.env.TAMAGUI_OPTIMIZE_THEMES": JSON.stringify(true)
|
|
165
|
+
})
|
|
166
|
+
},
|
|
167
|
+
resolve: disableResolveConfig || enableNativeEnv ? {} : {
|
|
168
|
+
extensions,
|
|
169
|
+
alias: {
|
|
170
|
+
...(options.platform !== "native" && {
|
|
171
|
+
"react-native/Libraries/Renderer/shims/ReactFabric": resolve("@hanzogui/proxy-worm"),
|
|
172
|
+
"react-native/Libraries/Utilities/codegenNativeComponent": resolve("@hanzogui/proxy-worm"),
|
|
173
|
+
"react-native-svg": resolve("@hanzogui/react-native-svg"),
|
|
174
|
+
...(!options?.useReactNativeWebLite && {
|
|
175
|
+
"react-native": resolve("react-native-web")
|
|
176
|
+
})
|
|
177
|
+
})
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
const rnwLitePlugin = {
|
|
184
|
+
name: "hanzogui-rnw-lite",
|
|
185
|
+
config() {
|
|
186
|
+
if (enableNativeEnv) {
|
|
187
|
+
return {};
|
|
188
|
+
}
|
|
189
|
+
const options = getHanzoguiOptions();
|
|
190
|
+
if (!options?.useReactNativeWebLite) {
|
|
191
|
+
return {};
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
resolve: {
|
|
195
|
+
alias: hanzoguiAliases({
|
|
196
|
+
rnwLite: options.useReactNativeWebLite
|
|
197
|
+
})
|
|
198
|
+
},
|
|
199
|
+
optimizeDeps: {
|
|
200
|
+
// upstream react-native-web must not be pre-bundled when aliased to lite
|
|
201
|
+
exclude: ["react-native-web"]
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
const extractPlugin = {
|
|
207
|
+
name: "hanzogui-extract",
|
|
208
|
+
enforce: "pre",
|
|
209
|
+
async config(userConf) {
|
|
210
|
+
const options = await ensureLoaded();
|
|
211
|
+
userConf.optimizeDeps ||= {};
|
|
212
|
+
userConf.optimizeDeps.include ||= [];
|
|
213
|
+
userConf.optimizeDeps.include.push("inline-style-prefixer");
|
|
214
|
+
if (!shouldExtract) return;
|
|
215
|
+
userConf.optimizeDeps.include.push("@hanzogui/core/inject-styles");
|
|
216
|
+
},
|
|
217
|
+
async configResolved(resolvedConfig) {
|
|
218
|
+
config = resolvedConfig;
|
|
219
|
+
},
|
|
220
|
+
async resolveId(source) {
|
|
221
|
+
if (!shouldExtract) return;
|
|
222
|
+
if (isNative(this.environment)) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (isNotClient(this.environment)) {
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
const [validId, query] = source.split("?");
|
|
229
|
+
if (!validId.endsWith(virtualExt)) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
const absoluteId = source.startsWith(config.root) ? source : getAbsoluteVirtualFileId(validId);
|
|
233
|
+
if (cssMap.has(absoluteId)) {
|
|
234
|
+
return absoluteId + (query ? `?${query}` : "");
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
async load(id) {
|
|
238
|
+
if (!shouldExtract) return;
|
|
239
|
+
const options = getHanzoguiOptions();
|
|
240
|
+
if (options?.disable) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
if (isNative(this.environment)) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
if (isNotClient(this.environment)) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
const [validId] = id.split("?");
|
|
250
|
+
return cssMap.get(validId);
|
|
251
|
+
},
|
|
252
|
+
transform: {
|
|
253
|
+
order: "pre",
|
|
254
|
+
async handler(code, id) {
|
|
255
|
+
const options = await ensureLoaded();
|
|
256
|
+
await ensureFullConfigLoaded();
|
|
257
|
+
if (options?.disable) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
if (isNative(this.environment)) {
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const [validId] = id.split("?");
|
|
264
|
+
if (!validId.endsWith(".tsx")) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
const {
|
|
268
|
+
shouldDisable,
|
|
269
|
+
shouldPrintDebug
|
|
270
|
+
} = await getPragmaOptions({
|
|
271
|
+
source: code,
|
|
272
|
+
path: validId
|
|
273
|
+
});
|
|
274
|
+
if (shouldPrintDebug) {
|
|
275
|
+
console.trace(`Current file: ${id} in environment: ${this.environment?.name}, shouldDisable: ${shouldDisable}`);
|
|
276
|
+
console.info(`
|
|
277
|
+
|
|
278
|
+
Original source:
|
|
279
|
+
${code}
|
|
280
|
+
|
|
281
|
+
`);
|
|
282
|
+
}
|
|
283
|
+
if (shouldDisable) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const isSSR = isNotClient(this.environment);
|
|
287
|
+
const cacheKey = getHash(`${code}${id}`);
|
|
288
|
+
const pending = getPendingExtractions();
|
|
289
|
+
const formatResult = entry => {
|
|
290
|
+
const finalCode = !isSSR && entry.cssImport ? `${entry.js}
|
|
291
|
+
${entry.cssImport}` : entry.js;
|
|
292
|
+
return {
|
|
293
|
+
code: finalCode,
|
|
294
|
+
map: entry.map
|
|
295
|
+
};
|
|
296
|
+
};
|
|
297
|
+
const cached = memoryCache[cacheKey];
|
|
298
|
+
if (cached) {
|
|
299
|
+
if (process.env.DEBUG_TAMAGUI_CACHE) {
|
|
300
|
+
console.info(`[hanzogui-cache] HIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
|
|
301
|
+
}
|
|
302
|
+
return formatResult(cached);
|
|
303
|
+
}
|
|
304
|
+
const pendingExtraction = pending.get(cacheKey);
|
|
305
|
+
if (pendingExtraction) {
|
|
306
|
+
if (process.env.DEBUG_TAMAGUI_CACHE) {
|
|
307
|
+
console.info(`[hanzogui-cache] WAIT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
|
|
308
|
+
}
|
|
309
|
+
const result = await pendingExtraction;
|
|
310
|
+
if (result) {
|
|
311
|
+
return formatResult(result);
|
|
312
|
+
}
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
if (process.env.DEBUG_TAMAGUI_CACHE) {
|
|
316
|
+
console.info(`[hanzogui-cache] EXTRACT ${this.environment?.name || "unknown"} ${id.split("/").pop()} key=${cacheKey.slice(0, 8)}`);
|
|
317
|
+
}
|
|
318
|
+
const extractionPromise = (async () => {
|
|
319
|
+
let extracted;
|
|
320
|
+
try {
|
|
321
|
+
extracted = await Static.extractToClassNames({
|
|
322
|
+
source: code,
|
|
323
|
+
sourcePath: validId,
|
|
324
|
+
options,
|
|
325
|
+
shouldPrintDebug
|
|
326
|
+
});
|
|
327
|
+
} catch (err) {
|
|
328
|
+
if (process.env.DEBUG_TAMAGUI_CACHE) {
|
|
329
|
+
console.info(`[hanzogui-cache] ERROR extracting ${id.split("/").pop()}:`, err);
|
|
330
|
+
}
|
|
331
|
+
console.error(err instanceof Error ? err.message : String(err));
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
if (!extracted) {
|
|
335
|
+
if (process.env.DEBUG_TAMAGUI_CACHE) {
|
|
336
|
+
console.info(`[hanzogui-cache] no extraction result for ${id.split("/").pop()}`);
|
|
337
|
+
}
|
|
338
|
+
return null;
|
|
339
|
+
}
|
|
340
|
+
const rootRelativeId = `${validId}${virtualExt}`;
|
|
341
|
+
const absoluteId = getAbsoluteVirtualFileId(rootRelativeId);
|
|
342
|
+
let cssImport = null;
|
|
343
|
+
if (extracted.styles) {
|
|
344
|
+
this.addWatchFile(rootRelativeId);
|
|
345
|
+
if (server && cssMap.has(absoluteId)) {
|
|
346
|
+
invalidateModule(rootRelativeId);
|
|
347
|
+
}
|
|
348
|
+
cssImport = `import "${rootRelativeId}";`;
|
|
349
|
+
cssMap.set(absoluteId, extracted.styles);
|
|
350
|
+
}
|
|
351
|
+
const jsCode = extracted.js.toString();
|
|
352
|
+
const cacheEntry = {
|
|
353
|
+
js: jsCode,
|
|
354
|
+
map: extracted.map,
|
|
355
|
+
cssImport
|
|
356
|
+
};
|
|
357
|
+
const newSize = getSharedCacheSize() + jsCode.length;
|
|
358
|
+
if (newSize > 67108864) {
|
|
359
|
+
clearSharedCache();
|
|
360
|
+
} else {
|
|
361
|
+
setSharedCacheSize(newSize);
|
|
362
|
+
}
|
|
363
|
+
memoryCache[cacheKey] = cacheEntry;
|
|
364
|
+
if (process.env.DEBUG_TAMAGUI_CACHE) {
|
|
365
|
+
console.info(`[hanzogui-cache] WRITE key=${cacheKey.slice(0, 8)} cacheSize=${Object.keys(memoryCache).length}`);
|
|
366
|
+
}
|
|
367
|
+
return cacheEntry;
|
|
368
|
+
})();
|
|
369
|
+
pending.set(cacheKey, extractionPromise);
|
|
370
|
+
try {
|
|
371
|
+
const result = await extractionPromise;
|
|
372
|
+
if (result) {
|
|
373
|
+
return formatResult(result);
|
|
374
|
+
}
|
|
375
|
+
return;
|
|
376
|
+
} finally {
|
|
377
|
+
pending.delete(cacheKey);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
return [basePlugin, rnwLitePlugin, extractPlugin];
|
|
383
|
+
}
|
|
384
|
+
export { hanzoguiAliases, hanzoguiPlugin };
|
|
385
|
+
//# sourceMappingURL=plugin.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Static","getPragmaOptions","createHash","path","fileURLToPath","normalizePath","loadHanzoguiBuildConfig","getLoadPromise","getHanzoguiOptions","ensureFullConfigLoaded","resolve","name","import","meta","CACHE_KEY","CACHE_SIZE_KEY","PENDING_KEY","getSharedCache","globalThis","getSharedCacheSize","setSharedCacheSize","size","clearSharedCache","getPendingExtractions","Map","hanzoguiAliases","options","aliases","svg","push","find","replacement","rnwLite","rnwl","rnwlBase","dirname","hanzoguiPlugin","disableResolveConfig","hanzoguiOptionsIn","shouldExtract","disableExtraction","watcher","enableNativeEnv","__vxrnEnableNativeEnv","extensions","ensureLoaded","promise","getHash","input","update","digest","memoryCache","cssMap","config","server","virtualExt","getAbsoluteVirtualFileId","filePath","startsWith","root","join","isNotClient","environment","isNative","invalidateModule","absoluteId","moduleGraph","modules","getModulesByFile","module","lastHMRTimestamp","lastInvalidationTimestamp","Date","now","basePlugin","enforce","configureServer","_server","buildEnd","then","res","dispose","_","env","Error","disableWatchHanzoguiConfig","watchHanzoguiConfig","components","catch","err","console","error","envPrefix","environments","client","define","JSON","stringify","_frameTimestamp","_WORKLET","__DEV__","mode","process","NODE_ENV","ENABLE_RSC","ENABLE_STEPS","alias","platform","useReactNativeWebLite","rnwLitePlugin","optimizeDeps","exclude","extractPlugin","userConf","include","configResolved","resolvedConfig","resolveId","source","validId","query","split","endsWith","has","load","id","disable","get","transform","order","handler","code","shouldDisable","shouldPrintDebug","trace","info","isSSR","cacheKey","pending","formatResult","entry","finalCode","cssImport","js","map","cached","DEBUG_TAMAGUI_CACHE","pop","slice","pendingExtraction","result","extractionPromise","extracted","extractToClassNames","sourcePath","message","String","rootRelativeId","styles","addWatchFile","set","jsCode","toString","cacheEntry","newSize","length","Object","keys","delete"],"sources":["../../src/plugin.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@hanzogui/vite-plugin",
|
|
3
|
+
"version": "2.0.0-rc.41-hanzoai.5",
|
|
4
|
+
"license": "MIT",
|
|
5
|
+
"files": [
|
|
6
|
+
"src",
|
|
7
|
+
"types",
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"type": "module",
|
|
11
|
+
"main": "dist/cjs",
|
|
12
|
+
"module": "dist/esm",
|
|
13
|
+
"types": "./types/index.d.ts",
|
|
14
|
+
"exports": {
|
|
15
|
+
"./package.json": "./package.json",
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./types/index.d.ts",
|
|
18
|
+
"browser": "./dist/esm/index.mjs",
|
|
19
|
+
"module": "./dist/esm/index.mjs",
|
|
20
|
+
"import": "./dist/esm/index.mjs",
|
|
21
|
+
"require": "./dist/cjs/index.cjs",
|
|
22
|
+
"default": "./dist/cjs/index.cjs"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "hanzogui-build --skip-native",
|
|
30
|
+
"watch": "hanzogui-build --skip-native --watch",
|
|
31
|
+
"clean": "hanzogui-build clean",
|
|
32
|
+
"clean:build": "hanzogui-build clean:build"
|
|
33
|
+
},
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@hanzogui/fake-react-native": "2.0.0-rc.41-hanzoai.5",
|
|
36
|
+
"@hanzogui/proxy-worm": "2.0.0-rc.41-hanzoai.5",
|
|
37
|
+
"@hanzogui/react-native-svg": "2.0.0-rc.41-hanzoai.5",
|
|
38
|
+
"@hanzogui/react-native-web-lite": "2.0.0-rc.41-hanzoai.5",
|
|
39
|
+
"@hanzogui/static-worker": "2.0.0-rc.41-hanzoai.5",
|
|
40
|
+
"@hanzogui/types": "2.0.0-rc.41-hanzoai.5",
|
|
41
|
+
"esm-resolve": "^1.0.8",
|
|
42
|
+
"fs-extra": "^11.2.0",
|
|
43
|
+
"outdent": "^0.8.0",
|
|
44
|
+
"react-native-web": "^0.21.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@hanzogui/build": "2.0.0-rc.41-hanzoai.5",
|
|
48
|
+
"vite": "^8.0.3"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"vite": "*8.0.3"
|
|
52
|
+
},
|
|
53
|
+
"hanzogui": {
|
|
54
|
+
"build": {
|
|
55
|
+
"skipEnvToMeta": true
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './plugin'
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import * as StaticWorker from '@hanzogui/static-worker'
|
|
2
|
+
import type { HanzoguiOptions } from '@hanzogui/types'
|
|
3
|
+
|
|
4
|
+
// use globalThis to share state across vite environments (SSR, client, etc.)
|
|
5
|
+
const LOAD_STATE_KEY = '__hanzogui_load_state__'
|
|
6
|
+
|
|
7
|
+
type LoadState = {
|
|
8
|
+
loadPromise: Promise<HanzoguiOptions> | null
|
|
9
|
+
loadedOptions: HanzoguiOptions | null
|
|
10
|
+
fullConfigLoaded: boolean
|
|
11
|
+
fullConfigLoadPromise: Promise<void> | null
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function getLoadState(): LoadState {
|
|
15
|
+
if (!(globalThis as any)[LOAD_STATE_KEY]) {
|
|
16
|
+
;(globalThis as any)[LOAD_STATE_KEY] = {
|
|
17
|
+
loadPromise: null,
|
|
18
|
+
loadedOptions: null,
|
|
19
|
+
fullConfigLoaded: false,
|
|
20
|
+
fullConfigLoadPromise: null,
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return (globalThis as any)[LOAD_STATE_KEY]
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function getHanzoguiOptions(): HanzoguiOptions | null {
|
|
27
|
+
return getLoadState().loadedOptions
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function getLoadPromise(): Promise<HanzoguiOptions> | null {
|
|
31
|
+
return getLoadState().loadPromise
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Load just the hanzogui.build.ts config (lightweight)
|
|
36
|
+
* This doesn't bundle the full hanzogui config - call ensureFullConfigLoaded() for that
|
|
37
|
+
*/
|
|
38
|
+
export async function loadHanzoguiBuildConfig(
|
|
39
|
+
optionsIn?: Partial<HanzoguiOptions>
|
|
40
|
+
): Promise<HanzoguiOptions> {
|
|
41
|
+
const state = getLoadState()
|
|
42
|
+
if (state.loadedOptions) return state.loadedOptions
|
|
43
|
+
if (state.loadPromise) return state.loadPromise
|
|
44
|
+
|
|
45
|
+
state.loadPromise = (async () => {
|
|
46
|
+
const options = await StaticWorker.loadHanzoguiBuildConfig({
|
|
47
|
+
...optionsIn,
|
|
48
|
+
platform: 'web',
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
state.loadedOptions = options
|
|
52
|
+
return options
|
|
53
|
+
})()
|
|
54
|
+
|
|
55
|
+
return state.loadPromise
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Ensure the full hanzogui config is loaded (heavy - bundles config + components)
|
|
60
|
+
* Call this lazily when transform/extraction is actually needed
|
|
61
|
+
*/
|
|
62
|
+
export async function ensureFullConfigLoaded(): Promise<void> {
|
|
63
|
+
const state = getLoadState()
|
|
64
|
+
|
|
65
|
+
if (state.fullConfigLoaded) return
|
|
66
|
+
if (state.fullConfigLoadPromise) return state.fullConfigLoadPromise
|
|
67
|
+
|
|
68
|
+
// set promise immediately to prevent race conditions
|
|
69
|
+
// (don't await loadHanzoguiBuildConfig before setting this)
|
|
70
|
+
state.fullConfigLoadPromise = (async () => {
|
|
71
|
+
const options = await loadHanzoguiBuildConfig()
|
|
72
|
+
|
|
73
|
+
// load full hanzogui config in worker (asynchronous)
|
|
74
|
+
if (!options.disableWatchHanzoguiConfig && !options.disable) {
|
|
75
|
+
await StaticWorker.loadHanzogui({
|
|
76
|
+
components: ['hanzogui'],
|
|
77
|
+
platform: 'web',
|
|
78
|
+
...options,
|
|
79
|
+
})
|
|
80
|
+
}
|
|
81
|
+
state.fullConfigLoaded = true
|
|
82
|
+
})()
|
|
83
|
+
|
|
84
|
+
return state.fullConfigLoadPromise
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export async function cleanup() {
|
|
88
|
+
await StaticWorker.destroyPool()
|
|
89
|
+
const state = getLoadState()
|
|
90
|
+
state.loadPromise = null
|
|
91
|
+
state.loadedOptions = null
|
|
92
|
+
state.fullConfigLoaded = false
|
|
93
|
+
state.fullConfigLoadPromise = null
|
|
94
|
+
}
|