@flairjs/webpack-loader 0.0.1-beta.7 → 0.0.1-beta.8
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/index.js +9 -18
- package/dist/esm/index.js +10 -18
- package/package.json +4 -4
package/dist/cjs/index.js
CHANGED
|
@@ -155,13 +155,14 @@ const setupGeneratedCssDir = async (options) => {
|
|
|
155
155
|
}
|
|
156
156
|
return flairGeneratedCssDir;
|
|
157
157
|
};
|
|
158
|
-
const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange }) => {
|
|
158
|
+
const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange, deleteBeforeWrite = false }) => {
|
|
159
159
|
const flairThemeFile = require$1.resolve("@flairjs/client/theme.css");
|
|
160
160
|
let userTheme = await getUserTheme();
|
|
161
161
|
const buildThemeCSS = buildThemeFile ?? buildThemeTokens;
|
|
162
162
|
if (userTheme) {
|
|
163
163
|
const themeCSS = buildThemeCSS(userTheme.theme);
|
|
164
164
|
store.setLastThemeUpdate(Date.now());
|
|
165
|
+
if (deleteBeforeWrite) await (0, node_fs_promises.rm)(flairThemeFile, { force: true });
|
|
165
166
|
await (0, node_fs_promises.writeFile)(flairThemeFile, themeCSS, "utf-8");
|
|
166
167
|
(0, node_fs.watch)(userTheme.originalPath, async () => {
|
|
167
168
|
userTheme = await getUserTheme();
|
|
@@ -174,20 +175,6 @@ const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange }) => {
|
|
|
174
175
|
}
|
|
175
176
|
return userTheme;
|
|
176
177
|
};
|
|
177
|
-
const removeOutdatedCssFiles = async (sourceFilePath, cssFilePath, { flairGeneratedCssDir, clearInstantly = false }) => {
|
|
178
|
-
const previousGeneratedCssName = store.getGeneratedCssName(sourceFilePath);
|
|
179
|
-
if (previousGeneratedCssName && previousGeneratedCssName !== cssFilePath) {
|
|
180
|
-
if (clearInstantly) {
|
|
181
|
-
await (0, node_fs_promises.rm)(node_path.default.join(flairGeneratedCssDir, previousGeneratedCssName), { force: true });
|
|
182
|
-
store.setFileNameToGeneratedCssNameMap(sourceFilePath, cssFilePath);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
setTimeout(() => {
|
|
186
|
-
(0, node_fs_promises.rm)(node_path.default.join(flairGeneratedCssDir, previousGeneratedCssName), { force: true });
|
|
187
|
-
}, 2e3);
|
|
188
|
-
}
|
|
189
|
-
store.setFileNameToGeneratedCssNameMap(sourceFilePath, cssFilePath);
|
|
190
|
-
};
|
|
191
178
|
function shouldProcessFile(id, include, exclude) {
|
|
192
179
|
const isIncluded = (0, picomatch.default)(include ?? ["**/*.{js,ts,jsx,tsx}"]);
|
|
193
180
|
const isExcluded = (0, picomatch.default)(exclude ?? ["**/node_modules/**"]);
|
|
@@ -253,7 +240,10 @@ async function flairJsLoader(source, sourceMap) {
|
|
|
253
240
|
let userTheme = null;
|
|
254
241
|
if (!initialized) {
|
|
255
242
|
cssGeneratedDir = await setupGeneratedCssDir();
|
|
256
|
-
userTheme = await setupUserThemeFile({
|
|
243
|
+
userTheme = await setupUserThemeFile({
|
|
244
|
+
buildThemeFile: options.buildThemeFile,
|
|
245
|
+
deleteBeforeWrite: true
|
|
246
|
+
});
|
|
257
247
|
initialized = true;
|
|
258
248
|
} else {
|
|
259
249
|
cssGeneratedDir = getGeneratedCssDir();
|
|
@@ -265,7 +255,7 @@ async function flairJsLoader(source, sourceMap) {
|
|
|
265
255
|
}
|
|
266
256
|
try {
|
|
267
257
|
const result = transformCode(source, fileName, {
|
|
268
|
-
appendTimestampToCssFile:
|
|
258
|
+
appendTimestampToCssFile: false,
|
|
269
259
|
classNameList: options?.classNameList,
|
|
270
260
|
cssPreprocessor: options?.cssPreprocessor ? (css) => options.cssPreprocessor(css, fileName) : void 0,
|
|
271
261
|
theme: userTheme?.theme,
|
|
@@ -273,7 +263,8 @@ async function flairJsLoader(source, sourceMap) {
|
|
|
273
263
|
cssOutDir: cssGeneratedDir
|
|
274
264
|
});
|
|
275
265
|
if (!result) return callback(null, source, sourceMap);
|
|
276
|
-
if (result.generatedCssName)
|
|
266
|
+
if (!result.generatedCssName) return callback(null, source, sourceMap);
|
|
267
|
+
this.addDependency(path.resolve(result.generatedCssName));
|
|
277
268
|
callback(null, result.code, result.sourcemap ? JSON.parse(result.sourcemap ?? "{}") : sourceMap);
|
|
278
269
|
} catch (error) {
|
|
279
270
|
console.error("[@flairjs/webpack-loader]", error);
|
package/dist/esm/index.js
CHANGED
|
@@ -5,6 +5,7 @@ import path, { dirname } from "node:path";
|
|
|
5
5
|
import * as esbuild from "esbuild";
|
|
6
6
|
import { existsSync as existsSync$1 } from "fs";
|
|
7
7
|
import { fileURLToPath } from "node:url";
|
|
8
|
+
import * as path$2 from "path";
|
|
8
9
|
import path$1 from "path";
|
|
9
10
|
import { pathToFileURL } from "url";
|
|
10
11
|
import picomatch from "picomatch";
|
|
@@ -121,13 +122,14 @@ const setupGeneratedCssDir = async (options) => {
|
|
|
121
122
|
}
|
|
122
123
|
return flairGeneratedCssDir;
|
|
123
124
|
};
|
|
124
|
-
const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange }) => {
|
|
125
|
+
const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange, deleteBeforeWrite = false }) => {
|
|
125
126
|
const flairThemeFile = require.resolve("@flairjs/client/theme.css");
|
|
126
127
|
let userTheme = await getUserTheme();
|
|
127
128
|
const buildThemeCSS = buildThemeFile ?? buildThemeTokens;
|
|
128
129
|
if (userTheme) {
|
|
129
130
|
const themeCSS = buildThemeCSS(userTheme.theme);
|
|
130
131
|
store.setLastThemeUpdate(Date.now());
|
|
132
|
+
if (deleteBeforeWrite) await rm(flairThemeFile, { force: true });
|
|
131
133
|
await writeFile(flairThemeFile, themeCSS, "utf-8");
|
|
132
134
|
watch(userTheme.originalPath, async () => {
|
|
133
135
|
userTheme = await getUserTheme();
|
|
@@ -140,20 +142,6 @@ const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange }) => {
|
|
|
140
142
|
}
|
|
141
143
|
return userTheme;
|
|
142
144
|
};
|
|
143
|
-
const removeOutdatedCssFiles = async (sourceFilePath, cssFilePath, { flairGeneratedCssDir, clearInstantly = false }) => {
|
|
144
|
-
const previousGeneratedCssName = store.getGeneratedCssName(sourceFilePath);
|
|
145
|
-
if (previousGeneratedCssName && previousGeneratedCssName !== cssFilePath) {
|
|
146
|
-
if (clearInstantly) {
|
|
147
|
-
await rm(path.join(flairGeneratedCssDir, previousGeneratedCssName), { force: true });
|
|
148
|
-
store.setFileNameToGeneratedCssNameMap(sourceFilePath, cssFilePath);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
setTimeout(() => {
|
|
152
|
-
rm(path.join(flairGeneratedCssDir, previousGeneratedCssName), { force: true });
|
|
153
|
-
}, 2e3);
|
|
154
|
-
}
|
|
155
|
-
store.setFileNameToGeneratedCssNameMap(sourceFilePath, cssFilePath);
|
|
156
|
-
};
|
|
157
145
|
function shouldProcessFile(id, include, exclude) {
|
|
158
146
|
const isIncluded = picomatch(include ?? ["**/*.{js,ts,jsx,tsx}"]);
|
|
159
147
|
const isExcluded = picomatch(exclude ?? ["**/node_modules/**"]);
|
|
@@ -219,7 +207,10 @@ async function flairJsLoader(source, sourceMap) {
|
|
|
219
207
|
let userTheme = null;
|
|
220
208
|
if (!initialized) {
|
|
221
209
|
cssGeneratedDir = await setupGeneratedCssDir();
|
|
222
|
-
userTheme = await setupUserThemeFile({
|
|
210
|
+
userTheme = await setupUserThemeFile({
|
|
211
|
+
buildThemeFile: options.buildThemeFile,
|
|
212
|
+
deleteBeforeWrite: true
|
|
213
|
+
});
|
|
223
214
|
initialized = true;
|
|
224
215
|
} else {
|
|
225
216
|
cssGeneratedDir = getGeneratedCssDir();
|
|
@@ -231,7 +222,7 @@ async function flairJsLoader(source, sourceMap) {
|
|
|
231
222
|
}
|
|
232
223
|
try {
|
|
233
224
|
const result = transformCode$1(source, fileName, {
|
|
234
|
-
appendTimestampToCssFile:
|
|
225
|
+
appendTimestampToCssFile: false,
|
|
235
226
|
classNameList: options?.classNameList,
|
|
236
227
|
cssPreprocessor: options?.cssPreprocessor ? (css) => options.cssPreprocessor(css, fileName) : void 0,
|
|
237
228
|
theme: userTheme?.theme,
|
|
@@ -239,7 +230,8 @@ async function flairJsLoader(source, sourceMap) {
|
|
|
239
230
|
cssOutDir: cssGeneratedDir
|
|
240
231
|
});
|
|
241
232
|
if (!result) return callback(null, source, sourceMap);
|
|
242
|
-
if (result.generatedCssName)
|
|
233
|
+
if (!result.generatedCssName) return callback(null, source, sourceMap);
|
|
234
|
+
this.addDependency(path$2.resolve(result.generatedCssName));
|
|
243
235
|
callback(null, result.code, result.sourcemap ? JSON.parse(result.sourcemap ?? "{}") : sourceMap);
|
|
244
236
|
} catch (error) {
|
|
245
237
|
console.error("[@flairjs/webpack-loader]", error);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flairjs/webpack-loader",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.8",
|
|
4
4
|
"main": "./dist/cjs/index.js",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"webpack": ">=5.0.0",
|
|
16
|
-
"@flairjs/core": "0.0.1-beta.
|
|
16
|
+
"@flairjs/core": "0.0.1-beta.7"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@biomejs/biome": "^2.2.4",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"rolldown": "1.0.0-beta.37",
|
|
24
24
|
"typescript": "^5.8.2",
|
|
25
25
|
"webpack": "^5.101.0",
|
|
26
|
-
"@flairjs/bundler-shared": "0.0.1-beta.
|
|
27
|
-
"@flairjs/core": "0.0.1-beta.
|
|
26
|
+
"@flairjs/bundler-shared": "0.0.1-beta.11",
|
|
27
|
+
"@flairjs/core": "0.0.1-beta.7"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"esbuild": "^0.25.10",
|