@unocss/webpack
Advanced tools
Comparing version 0.11.6 to 0.12.0
@@ -5,3 +5,3 @@ import * as webpack from 'webpack'; | ||
declare type FilterPattern = ReadonlyArray<string | RegExp> | string | RegExp | null; | ||
interface PluginOptions<Theme extends {} = {}> extends UserConfig<Theme> { | ||
interface PluginConfig<Theme extends {} = {}> extends UserConfig<Theme> { | ||
/** | ||
@@ -17,3 +17,3 @@ * Patterns that filter the files being extracted. | ||
interface WebpackPluginOptions<Theme extends {} = {}> extends PluginOptions<Theme> { | ||
interface WebpackPluginOptions<Theme extends {} = {}> extends PluginConfig<Theme> { | ||
} | ||
@@ -20,0 +20,0 @@ declare function defineConfig<Theme extends {}>(config: WebpackPluginOptions<Theme>): WebpackPluginOptions<Theme>; |
@@ -30,6 +30,3 @@ var __create = Object.create; | ||
}); | ||
var import_core = __toModule(require("@unocss/core")); | ||
var import_config = __toModule(require("@unocss/config")); | ||
var import_unplugin = __toModule(require("unplugin")); | ||
var import_pluginutils = __toModule(require("@rollup/pluginutils")); | ||
var import_webpack_sources = __toModule(require("webpack-sources")); | ||
@@ -71,2 +68,54 @@ | ||
// ../plugins-common/constants.ts | ||
var INCLUDE_COMMENT = "@unocss-include"; | ||
// ../plugins-common/context.ts | ||
var import_pluginutils = __toModule(require("@rollup/pluginutils")); | ||
var import_config = __toModule(require("@unocss/config")); | ||
var import_core = __toModule(require("@unocss/core")); | ||
function createContext(configOrPath, defaults = {}) { | ||
const { config = {}, filepath } = (0, import_config.loadConfig)(configOrPath); | ||
const uno = (0, import_core.createGenerator)(config, defaults); | ||
const invalidations = []; | ||
const modules = new import_core.BetterMap(); | ||
const tokens = new Set(); | ||
let rollupFilter = (0, import_pluginutils.createFilter)(config.include || defaultInclude, config.exclude || defaultExclude); | ||
function invalidate() { | ||
invalidations.forEach((cb) => cb()); | ||
} | ||
async function scan(code, id) { | ||
if (id) | ||
modules.set(id, code); | ||
await uno.applyExtractors(code, id, tokens); | ||
invalidate(); | ||
} | ||
async function reloadConfig() { | ||
if (!filepath) | ||
return; | ||
uno.setConfig((0, import_config.loadConfig)(filepath).config); | ||
uno.config.envMode = "dev"; | ||
rollupFilter = (0, import_pluginutils.createFilter)(config.include || defaultInclude, config.exclude || defaultExclude); | ||
tokens.clear(); | ||
await Promise.all(modules.map((code, id) => uno.applyExtractors(code, id, tokens))); | ||
invalidate(); | ||
} | ||
const filter = (code, id) => { | ||
return code.includes(INCLUDE_COMMENT) || rollupFilter(id); | ||
}; | ||
return { | ||
tokens, | ||
modules, | ||
invalidate, | ||
onInvalidate(fn) { | ||
invalidations.push(fn); | ||
}, | ||
filter, | ||
reloadConfig, | ||
uno, | ||
extract: scan, | ||
config, | ||
configFilepath: filepath | ||
}; | ||
} | ||
// src/index.ts | ||
@@ -80,7 +129,9 @@ var PLUGIN_NAME = "unocss:webpack"; | ||
return (0, import_unplugin.createUnplugin)(() => { | ||
const { config = {} } = (0, import_config.loadConfig)(configOrPath); | ||
const filter = (0, import_pluginutils.createFilter)(config.include || defaultInclude, config.exclude || defaultExclude); | ||
const uno = (0, import_core.createGenerator)(config, defaults); | ||
const modules = new import_core.BetterMap(); | ||
const tokens = new Set(); | ||
const context = createContext(configOrPath, defaults); | ||
const { uno, tokens, filter, extract, onInvalidate } = context; | ||
let timer; | ||
onInvalidate(() => { | ||
clearTimeout(timer); | ||
timer = setTimeout(updateModules, UPDATE_DEBOUNCE); | ||
}); | ||
const tasks = []; | ||
@@ -92,6 +143,6 @@ const entries = new Map(); | ||
transformInclude(id) { | ||
return filter(id); | ||
return filter("", id); | ||
}, | ||
transform(code, id) { | ||
tasks.push(scan(code, id)); | ||
tasks.push(extract(code, id)); | ||
return null; | ||
@@ -138,13 +189,2 @@ }, | ||
}; | ||
async function scan(code, id) { | ||
if (id) | ||
modules.set(id, code); | ||
await uno.applyExtractors(code, id, tokens); | ||
scheduleUpdate(); | ||
} | ||
let timer; | ||
function scheduleUpdate() { | ||
clearTimeout(timer); | ||
timer = setTimeout(updateModules, UPDATE_DEBOUNCE); | ||
} | ||
async function updateModules() { | ||
@@ -151,0 +191,0 @@ if (!plugin.__vfsModules) |
{ | ||
"name": "@unocss/webpack", | ||
"version": "0.11.6", | ||
"version": "0.12.0", | ||
"description": "The Webpack plugin for UnoCSS", | ||
@@ -36,4 +36,4 @@ "keywords": [ | ||
"@rollup/pluginutils": "^4.1.1", | ||
"@unocss/config": "0.11.6", | ||
"@unocss/core": "0.11.6", | ||
"@unocss/config": "0.12.0", | ||
"@unocss/core": "0.12.0", | ||
"unplugin": "^0.2.20", | ||
@@ -40,0 +40,0 @@ "webpack-sources": "^3.2.1" |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
16339
385
+ Added@unocss/config@0.12.0(transitive)
+ Added@unocss/core@0.12.0(transitive)
- Removed@unocss/config@0.11.6(transitive)
- Removed@unocss/core@0.11.6(transitive)
Updated@unocss/config@0.12.0
Updated@unocss/core@0.12.0