@unocss/vite 0.47.6 → 0.48.0

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/index.cjs CHANGED
@@ -9,16 +9,20 @@ const config = require('@unocss/config');
9
9
  const crypto = require('crypto');
10
10
  const MagicString = require('magic-string');
11
11
  const path = require('path');
12
+ const fs = require('fs/promises');
13
+ const fg = require('fast-glob');
12
14
  const remapping = require('@ampproject/remapping');
13
- const fs = require('fs');
15
+ const fs$1 = require('fs');
14
16
  const url = require('url');
15
17
 
16
18
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
17
19
 
18
20
  const UnocssInspector__default = /*#__PURE__*/_interopDefaultLegacy(UnocssInspector);
19
21
  const MagicString__default = /*#__PURE__*/_interopDefaultLegacy(MagicString);
20
- const remapping__default = /*#__PURE__*/_interopDefaultLegacy(remapping);
21
22
  const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs);
23
+ const fg__default = /*#__PURE__*/_interopDefaultLegacy(fg);
24
+ const remapping__default = /*#__PURE__*/_interopDefaultLegacy(remapping);
25
+ const fs__default$1 = /*#__PURE__*/_interopDefaultLegacy(fs$1);
22
26
 
23
27
  const defaultExclude = [core.cssIdRE];
24
28
  const defaultInclude = [/\.(vue|svelte|[jt]sx|mdx?|astro|elm|php|phtml|html)($|\?)/];
@@ -68,6 +72,7 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
68
72
  const reloadListeners = [];
69
73
  const modules = new core.BetterMap();
70
74
  const tokens = /* @__PURE__ */ new Set();
75
+ const tasks = [];
71
76
  const affectedModules = /* @__PURE__ */ new Set();
72
77
  let ready = reloadConfig();
73
78
  async function reloadConfig() {
@@ -117,15 +122,20 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
117
122
  if (tokens.size > len)
118
123
  invalidate();
119
124
  }
120
- const filter = (code, id) => {
125
+ function filter(code, id) {
121
126
  if (code.includes(IGNORE_COMMENT))
122
127
  return false;
123
128
  return code.includes(INCLUDE_COMMENT) || code.includes(CSS_PLACEHOLDER) || rollupFilter(id.replace(/\?v=\w+$/, ""));
124
- };
129
+ }
125
130
  async function getConfig() {
126
131
  await ready;
127
132
  return rawConfig;
128
133
  }
134
+ async function flushTasks() {
135
+ const _tasks = [...tasks];
136
+ await Promise.all(_tasks);
137
+ tasks.splice(0, _tasks.length);
138
+ }
129
139
  return {
130
140
  get ready() {
131
141
  return ready;
@@ -133,6 +143,8 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
133
143
  tokens,
134
144
  modules,
135
145
  affectedModules,
146
+ tasks,
147
+ flushTasks,
136
148
  invalidate,
137
149
  onInvalidate(fn) {
138
150
  invalidations.push(fn);
@@ -224,20 +236,93 @@ function ChunkModeBuildPlugin({ uno, filter }) {
224
236
  };
225
237
  }
226
238
 
227
- function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig }) {
239
+ async function applyTransformers(ctx, original, id, enforce = "default") {
240
+ if (original.includes(IGNORE_COMMENT))
241
+ return;
242
+ const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
243
+ if (!transformers.length)
244
+ return;
245
+ let code = original;
246
+ let s = new MagicString__default(code);
247
+ const maps = [];
248
+ for (const t of transformers) {
249
+ if (t.idFilter) {
250
+ if (!t.idFilter(id))
251
+ continue;
252
+ } else if (!ctx.filter(code, id)) {
253
+ continue;
254
+ }
255
+ await t.transform(s, id, ctx);
256
+ if (s.hasChanged()) {
257
+ code = s.toString();
258
+ maps.push(s.generateMap({ hires: true, source: id }));
259
+ s = new MagicString__default(code);
260
+ }
261
+ }
262
+ if (code !== original) {
263
+ ctx.affectedModules.add(id);
264
+ return {
265
+ code,
266
+ map: remapping__default(maps, () => null)
267
+ };
268
+ }
269
+ }
270
+
271
+ async function setupExtraContent(ctx, shouldWatch = false) {
272
+ const { extraContent } = await ctx.getConfig();
273
+ const { extract, tasks, root, filter } = ctx;
274
+ if (extraContent?.plain) {
275
+ await Promise.all(
276
+ extraContent.plain.map((code, idx) => {
277
+ return extract(code, `__extra_content_${idx}__`);
278
+ })
279
+ );
280
+ }
281
+ if (extraContent?.filesystem) {
282
+ const files = await fg__default(extraContent.filesystem, { cwd: root });
283
+ async function extractFile(file) {
284
+ const code = await fs__default.readFile(file, "utf-8");
285
+ if (!filter(code, file))
286
+ return;
287
+ const preTransform = await applyTransformers(ctx, code, file, "pre");
288
+ const defaultTransform = await applyTransformers(ctx, preTransform?.code || code, file);
289
+ await applyTransformers(ctx, defaultTransform?.code || preTransform?.code || code, file, "post");
290
+ return await extract(preTransform?.code || code, file);
291
+ }
292
+ if (shouldWatch) {
293
+ const { watch } = await import('chokidar');
294
+ const ignored = ["**/{.git,node_modules}/**"];
295
+ const watcher = watch(files, {
296
+ ignorePermissionErrors: true,
297
+ ignored,
298
+ cwd: root,
299
+ ignoreInitial: true
300
+ });
301
+ watcher.on("all", (type, file) => {
302
+ if (type === "add" || type === "change") {
303
+ const absolutePath = path.resolve(root, file);
304
+ tasks.push(extractFile(absolutePath));
305
+ }
306
+ });
307
+ }
308
+ await Promise.all(files.map(extractFile));
309
+ }
310
+ }
311
+
312
+ function GlobalModeBuildPlugin(ctx) {
313
+ const { uno, ready, extract, tokens, filter, getConfig, tasks, flushTasks } = ctx;
228
314
  const vfsLayers = /* @__PURE__ */ new Set();
229
315
  const layerImporterMap = /* @__PURE__ */ new Map();
230
- let tasks = [];
231
316
  let viteConfig;
232
317
  const cssPostPlugins = /* @__PURE__ */ new Map();
233
318
  const cssPlugins = /* @__PURE__ */ new Map();
234
- async function applyCssTransform(css, id, dir, ctx) {
319
+ async function applyCssTransform(css, id, dir, ctx2) {
235
320
  const {
236
321
  postcss = true
237
322
  } = await getConfig();
238
323
  if (!cssPlugins.get(dir) || !postcss)
239
324
  return css;
240
- const result = await cssPlugins.get(dir).transform.call(ctx, css, id);
325
+ const result = await cssPlugins.get(dir).transform.call(ctx2, css, id);
241
326
  if (!result)
242
327
  return css;
243
328
  if (typeof result === "string")
@@ -250,20 +335,22 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
250
335
  let lastTokenSize = 0;
251
336
  let lastResult;
252
337
  async function generateAll() {
253
- await Promise.all(tasks);
338
+ await flushTasks();
254
339
  if (lastResult && lastTokenSize === tokens.size)
255
340
  return lastResult;
256
341
  lastResult = await uno.generate(tokens, { minify: true });
257
342
  lastTokenSize = tokens.size;
258
343
  return lastResult;
259
344
  }
345
+ let replaced = false;
260
346
  return [
261
347
  {
262
348
  name: "unocss:global:build:scan",
263
349
  apply: "build",
264
350
  enforce: "pre",
265
- buildStart() {
266
- tasks = [];
351
+ async buildStart() {
352
+ vfsLayers.clear();
353
+ tasks.length = 0;
267
354
  lastTokenSize = 0;
268
355
  lastResult = void 0;
269
356
  },
@@ -334,6 +421,16 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
334
421
  return null;
335
422
  }
336
423
  },
424
+ {
425
+ name: "unocss:global:content",
426
+ enforce: "pre",
427
+ configResolved(config) {
428
+ viteConfig = config;
429
+ },
430
+ buildStart() {
431
+ tasks.push(setupExtraContent(ctx, viteConfig.command === "serve"));
432
+ }
433
+ },
337
434
  {
338
435
  name: "unocss:global:build:generate",
339
436
  apply: "build",
@@ -358,9 +455,6 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
358
455
  {
359
456
  name: "unocss:global:build:bundle",
360
457
  apply: "build",
361
- configResolved(config) {
362
- viteConfig = config;
363
- },
364
458
  enforce: "post",
365
459
  async generateBundle(options, bundle) {
366
460
  const checkJs = ["umd", "amd", "iife"].includes(options.format);
@@ -368,11 +462,12 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
368
462
  if (!files.length)
369
463
  return;
370
464
  if (!vfsLayers.size) {
465
+ if (replaced)
466
+ return;
371
467
  const msg = "[unocss] entry module not found, have you add `import 'uno.css'` in your main entry?";
372
468
  this.warn(msg);
373
469
  return;
374
470
  }
375
- let replaced = false;
376
471
  const getLayer = (layer, input, replace = false) => {
377
472
  const re = new RegExp(`#--unocss-layer-start--${layer}--\\{start:${layer}\\}([\\s\\S]*?)#--unocss-layer-end--${layer}--\\{end:${layer}\\}`, "g");
378
473
  if (replace)
@@ -421,10 +516,9 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
421
516
  const WARN_TIMEOUT = 2e4;
422
517
  const WS_EVENT_PREFIX = "unocss:hmr";
423
518
  const HASH_LENGTH = 6;
424
- function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extract, filter }) {
519
+ function GlobalModeDevPlugin({ uno, tokens, tasks, flushTasks, affectedModules, onInvalidate, extract, filter }) {
425
520
  const servers = [];
426
521
  let base = "";
427
- const tasks = [];
428
522
  const entries = /* @__PURE__ */ new Set();
429
523
  let invalidateTimer;
430
524
  const lastServedHash = /* @__PURE__ */ new Map();
@@ -432,7 +526,7 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
432
526
  let resolved = false;
433
527
  let resolvedWarnTimer;
434
528
  async function generateCSS(layer) {
435
- await Promise.all(tasks);
529
+ await flushTasks();
436
530
  let result;
437
531
  let tokensSize = tokens.size;
438
532
  do {
@@ -1013,38 +1107,6 @@ function ConfigHMRPlugin(ctx) {
1013
1107
  };
1014
1108
  }
1015
1109
 
1016
- async function applyTransformers(ctx, original, id, enforce = "default") {
1017
- if (original.includes(IGNORE_COMMENT))
1018
- return;
1019
- const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
1020
- if (!transformers.length)
1021
- return;
1022
- let code = original;
1023
- let s = new MagicString__default(code);
1024
- const maps = [];
1025
- for (const t of transformers) {
1026
- if (t.idFilter) {
1027
- if (!t.idFilter(id))
1028
- continue;
1029
- } else if (!ctx.filter(code, id)) {
1030
- continue;
1031
- }
1032
- await t.transform(s, id, ctx);
1033
- if (s.hasChanged()) {
1034
- code = s.toString();
1035
- maps.push(s.generateMap({ hires: true, source: id }));
1036
- s = new MagicString__default(code);
1037
- }
1038
- }
1039
- if (code !== original) {
1040
- ctx.affectedModules.add(id);
1041
- return {
1042
- code,
1043
- map: remapping__default(maps, () => null)
1044
- };
1045
- }
1046
- }
1047
-
1048
1110
  function createTransformerPlugins(ctx) {
1049
1111
  const enforces = ["default", "pre", "post"];
1050
1112
  return enforces.map((enforce) => ({
@@ -1172,7 +1234,7 @@ function createDevtoolsPlugin(ctx) {
1172
1234
  if (id === DEVTOOLS_PATH) {
1173
1235
  if (!clientCode) {
1174
1236
  clientCode = [
1175
- await fs__default.promises.readFile(path.resolve(_dirname, "client.mjs"), "utf-8"),
1237
+ await fs__default$1.promises.readFile(path.resolve(_dirname, "client.mjs"), "utf-8"),
1176
1238
  `import('${MOCK_CLASSES_MODULE_ID}')`,
1177
1239
  `import('${DEVTOOLS_CSS_PATH}')`
1178
1240
  ].join("\n").replace("__POST_PATH__", (config.server?.origin ?? "") + POST_PATH);
package/dist/index.d.ts CHANGED
@@ -39,9 +39,9 @@ interface VitePluginConfig<Theme extends {} = {}> extends UserConfig<Theme> {
39
39
 
40
40
  declare function ChunkModeBuildPlugin({ uno, filter }: UnocssPluginContext): Plugin;
41
41
 
42
- declare function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extract, filter }: UnocssPluginContext): Plugin[];
42
+ declare function GlobalModeDevPlugin({ uno, tokens, tasks, flushTasks, affectedModules, onInvalidate, extract, filter }: UnocssPluginContext): Plugin[];
43
43
 
44
- declare function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig }: UnocssPluginContext<VitePluginConfig>): Plugin[];
44
+ declare function GlobalModeBuildPlugin(ctx: UnocssPluginContext<VitePluginConfig>): Plugin[];
45
45
 
46
46
  declare function GlobalModePlugin(ctx: UnocssPluginContext): vite.Plugin[];
47
47
 
package/dist/index.mjs CHANGED
@@ -5,8 +5,10 @@ import { loadConfig } from '@unocss/config';
5
5
  import { createHash } from 'crypto';
6
6
  import MagicString from 'magic-string';
7
7
  import { resolve, dirname } from 'path';
8
+ import fs from 'fs/promises';
9
+ import fg from 'fast-glob';
8
10
  import remapping from '@ampproject/remapping';
9
- import fs from 'fs';
11
+ import fs$1 from 'fs';
10
12
  import { fileURLToPath } from 'url';
11
13
 
12
14
  const defaultExclude = [cssIdRE];
@@ -57,6 +59,7 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
57
59
  const reloadListeners = [];
58
60
  const modules = new BetterMap();
59
61
  const tokens = /* @__PURE__ */ new Set();
62
+ const tasks = [];
60
63
  const affectedModules = /* @__PURE__ */ new Set();
61
64
  let ready = reloadConfig();
62
65
  async function reloadConfig() {
@@ -106,15 +109,20 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
106
109
  if (tokens.size > len)
107
110
  invalidate();
108
111
  }
109
- const filter = (code, id) => {
112
+ function filter(code, id) {
110
113
  if (code.includes(IGNORE_COMMENT))
111
114
  return false;
112
115
  return code.includes(INCLUDE_COMMENT) || code.includes(CSS_PLACEHOLDER) || rollupFilter(id.replace(/\?v=\w+$/, ""));
113
- };
116
+ }
114
117
  async function getConfig() {
115
118
  await ready;
116
119
  return rawConfig;
117
120
  }
121
+ async function flushTasks() {
122
+ const _tasks = [...tasks];
123
+ await Promise.all(_tasks);
124
+ tasks.splice(0, _tasks.length);
125
+ }
118
126
  return {
119
127
  get ready() {
120
128
  return ready;
@@ -122,6 +130,8 @@ function createContext(configOrPath, defaults = {}, extraConfigSources = [], res
122
130
  tokens,
123
131
  modules,
124
132
  affectedModules,
133
+ tasks,
134
+ flushTasks,
125
135
  invalidate,
126
136
  onInvalidate(fn) {
127
137
  invalidations.push(fn);
@@ -213,20 +223,93 @@ function ChunkModeBuildPlugin({ uno, filter }) {
213
223
  };
214
224
  }
215
225
 
216
- function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig }) {
226
+ async function applyTransformers(ctx, original, id, enforce = "default") {
227
+ if (original.includes(IGNORE_COMMENT))
228
+ return;
229
+ const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
230
+ if (!transformers.length)
231
+ return;
232
+ let code = original;
233
+ let s = new MagicString(code);
234
+ const maps = [];
235
+ for (const t of transformers) {
236
+ if (t.idFilter) {
237
+ if (!t.idFilter(id))
238
+ continue;
239
+ } else if (!ctx.filter(code, id)) {
240
+ continue;
241
+ }
242
+ await t.transform(s, id, ctx);
243
+ if (s.hasChanged()) {
244
+ code = s.toString();
245
+ maps.push(s.generateMap({ hires: true, source: id }));
246
+ s = new MagicString(code);
247
+ }
248
+ }
249
+ if (code !== original) {
250
+ ctx.affectedModules.add(id);
251
+ return {
252
+ code,
253
+ map: remapping(maps, () => null)
254
+ };
255
+ }
256
+ }
257
+
258
+ async function setupExtraContent(ctx, shouldWatch = false) {
259
+ const { extraContent } = await ctx.getConfig();
260
+ const { extract, tasks, root, filter } = ctx;
261
+ if (extraContent?.plain) {
262
+ await Promise.all(
263
+ extraContent.plain.map((code, idx) => {
264
+ return extract(code, `__extra_content_${idx}__`);
265
+ })
266
+ );
267
+ }
268
+ if (extraContent?.filesystem) {
269
+ const files = await fg(extraContent.filesystem, { cwd: root });
270
+ async function extractFile(file) {
271
+ const code = await fs.readFile(file, "utf-8");
272
+ if (!filter(code, file))
273
+ return;
274
+ const preTransform = await applyTransformers(ctx, code, file, "pre");
275
+ const defaultTransform = await applyTransformers(ctx, preTransform?.code || code, file);
276
+ await applyTransformers(ctx, defaultTransform?.code || preTransform?.code || code, file, "post");
277
+ return await extract(preTransform?.code || code, file);
278
+ }
279
+ if (shouldWatch) {
280
+ const { watch } = await import('chokidar');
281
+ const ignored = ["**/{.git,node_modules}/**"];
282
+ const watcher = watch(files, {
283
+ ignorePermissionErrors: true,
284
+ ignored,
285
+ cwd: root,
286
+ ignoreInitial: true
287
+ });
288
+ watcher.on("all", (type, file) => {
289
+ if (type === "add" || type === "change") {
290
+ const absolutePath = resolve(root, file);
291
+ tasks.push(extractFile(absolutePath));
292
+ }
293
+ });
294
+ }
295
+ await Promise.all(files.map(extractFile));
296
+ }
297
+ }
298
+
299
+ function GlobalModeBuildPlugin(ctx) {
300
+ const { uno, ready, extract, tokens, filter, getConfig, tasks, flushTasks } = ctx;
217
301
  const vfsLayers = /* @__PURE__ */ new Set();
218
302
  const layerImporterMap = /* @__PURE__ */ new Map();
219
- let tasks = [];
220
303
  let viteConfig;
221
304
  const cssPostPlugins = /* @__PURE__ */ new Map();
222
305
  const cssPlugins = /* @__PURE__ */ new Map();
223
- async function applyCssTransform(css, id, dir, ctx) {
306
+ async function applyCssTransform(css, id, dir, ctx2) {
224
307
  const {
225
308
  postcss = true
226
309
  } = await getConfig();
227
310
  if (!cssPlugins.get(dir) || !postcss)
228
311
  return css;
229
- const result = await cssPlugins.get(dir).transform.call(ctx, css, id);
312
+ const result = await cssPlugins.get(dir).transform.call(ctx2, css, id);
230
313
  if (!result)
231
314
  return css;
232
315
  if (typeof result === "string")
@@ -239,20 +322,22 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
239
322
  let lastTokenSize = 0;
240
323
  let lastResult;
241
324
  async function generateAll() {
242
- await Promise.all(tasks);
325
+ await flushTasks();
243
326
  if (lastResult && lastTokenSize === tokens.size)
244
327
  return lastResult;
245
328
  lastResult = await uno.generate(tokens, { minify: true });
246
329
  lastTokenSize = tokens.size;
247
330
  return lastResult;
248
331
  }
332
+ let replaced = false;
249
333
  return [
250
334
  {
251
335
  name: "unocss:global:build:scan",
252
336
  apply: "build",
253
337
  enforce: "pre",
254
- buildStart() {
255
- tasks = [];
338
+ async buildStart() {
339
+ vfsLayers.clear();
340
+ tasks.length = 0;
256
341
  lastTokenSize = 0;
257
342
  lastResult = void 0;
258
343
  },
@@ -323,6 +408,16 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
323
408
  return null;
324
409
  }
325
410
  },
411
+ {
412
+ name: "unocss:global:content",
413
+ enforce: "pre",
414
+ configResolved(config) {
415
+ viteConfig = config;
416
+ },
417
+ buildStart() {
418
+ tasks.push(setupExtraContent(ctx, viteConfig.command === "serve"));
419
+ }
420
+ },
326
421
  {
327
422
  name: "unocss:global:build:generate",
328
423
  apply: "build",
@@ -347,9 +442,6 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
347
442
  {
348
443
  name: "unocss:global:build:bundle",
349
444
  apply: "build",
350
- configResolved(config) {
351
- viteConfig = config;
352
- },
353
445
  enforce: "post",
354
446
  async generateBundle(options, bundle) {
355
447
  const checkJs = ["umd", "amd", "iife"].includes(options.format);
@@ -357,11 +449,12 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
357
449
  if (!files.length)
358
450
  return;
359
451
  if (!vfsLayers.size) {
452
+ if (replaced)
453
+ return;
360
454
  const msg = "[unocss] entry module not found, have you add `import 'uno.css'` in your main entry?";
361
455
  this.warn(msg);
362
456
  return;
363
457
  }
364
- let replaced = false;
365
458
  const getLayer = (layer, input, replace = false) => {
366
459
  const re = new RegExp(`#--unocss-layer-start--${layer}--\\{start:${layer}\\}([\\s\\S]*?)#--unocss-layer-end--${layer}--\\{end:${layer}\\}`, "g");
367
460
  if (replace)
@@ -410,10 +503,9 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
410
503
  const WARN_TIMEOUT = 2e4;
411
504
  const WS_EVENT_PREFIX = "unocss:hmr";
412
505
  const HASH_LENGTH = 6;
413
- function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extract, filter }) {
506
+ function GlobalModeDevPlugin({ uno, tokens, tasks, flushTasks, affectedModules, onInvalidate, extract, filter }) {
414
507
  const servers = [];
415
508
  let base = "";
416
- const tasks = [];
417
509
  const entries = /* @__PURE__ */ new Set();
418
510
  let invalidateTimer;
419
511
  const lastServedHash = /* @__PURE__ */ new Map();
@@ -421,7 +513,7 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
421
513
  let resolved = false;
422
514
  let resolvedWarnTimer;
423
515
  async function generateCSS(layer) {
424
- await Promise.all(tasks);
516
+ await flushTasks();
425
517
  let result;
426
518
  let tokensSize = tokens.size;
427
519
  do {
@@ -1002,38 +1094,6 @@ function ConfigHMRPlugin(ctx) {
1002
1094
  };
1003
1095
  }
1004
1096
 
1005
- async function applyTransformers(ctx, original, id, enforce = "default") {
1006
- if (original.includes(IGNORE_COMMENT))
1007
- return;
1008
- const transformers = (ctx.uno.config.transformers || []).filter((i) => (i.enforce || "default") === enforce);
1009
- if (!transformers.length)
1010
- return;
1011
- let code = original;
1012
- let s = new MagicString(code);
1013
- const maps = [];
1014
- for (const t of transformers) {
1015
- if (t.idFilter) {
1016
- if (!t.idFilter(id))
1017
- continue;
1018
- } else if (!ctx.filter(code, id)) {
1019
- continue;
1020
- }
1021
- await t.transform(s, id, ctx);
1022
- if (s.hasChanged()) {
1023
- code = s.toString();
1024
- maps.push(s.generateMap({ hires: true, source: id }));
1025
- s = new MagicString(code);
1026
- }
1027
- }
1028
- if (code !== original) {
1029
- ctx.affectedModules.add(id);
1030
- return {
1031
- code,
1032
- map: remapping(maps, () => null)
1033
- };
1034
- }
1035
- }
1036
-
1037
1097
  function createTransformerPlugins(ctx) {
1038
1098
  const enforces = ["default", "pre", "post"];
1039
1099
  return enforces.map((enforce) => ({
@@ -1161,7 +1221,7 @@ function createDevtoolsPlugin(ctx) {
1161
1221
  if (id === DEVTOOLS_PATH) {
1162
1222
  if (!clientCode) {
1163
1223
  clientCode = [
1164
- await fs.promises.readFile(resolve(_dirname, "client.mjs"), "utf-8"),
1224
+ await fs$1.promises.readFile(resolve(_dirname, "client.mjs"), "utf-8"),
1165
1225
  `import('${MOCK_CLASSES_MODULE_ID}')`,
1166
1226
  `import('${DEVTOOLS_CSS_PATH}')`
1167
1227
  ].join("\n").replace("__POST_PATH__", (config.server?.origin ?? "") + POST_PATH);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unocss/vite",
3
- "version": "0.47.6",
3
+ "version": "0.48.0",
4
4
  "description": "The Vite plugin for UnoCSS",
5
5
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -44,15 +44,17 @@
44
44
  "dependencies": {
45
45
  "@ampproject/remapping": "^2.2.0",
46
46
  "@rollup/pluginutils": "^5.0.2",
47
- "@unocss/config": "0.47.6",
48
- "@unocss/core": "0.47.6",
49
- "@unocss/inspector": "0.47.6",
50
- "@unocss/scope": "0.47.6",
51
- "@unocss/transformer-directives": "0.47.6",
47
+ "@unocss/config": "0.48.0",
48
+ "@unocss/core": "0.48.0",
49
+ "@unocss/inspector": "0.48.0",
50
+ "@unocss/scope": "0.48.0",
51
+ "@unocss/transformer-directives": "0.48.0",
52
+ "chokidar": "^3.5.3",
53
+ "fast-glob": "^3.2.12",
52
54
  "magic-string": "^0.27.0"
53
55
  },
54
56
  "devDependencies": {
55
- "@unocss/shared-integration": "0.47.6",
57
+ "@unocss/shared-integration": "0.48.0",
56
58
  "vite": "^4.0.0"
57
59
  },
58
60
  "scripts": {