@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 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({ buildThemeFile: options.buildThemeFile });
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: true,
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) removeOutdatedCssFiles(fileName, result.generatedCssName, { flairGeneratedCssDir: cssGeneratedDir });
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({ buildThemeFile: options.buildThemeFile });
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: true,
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) removeOutdatedCssFiles(fileName, result.generatedCssName, { flairGeneratedCssDir: cssGeneratedDir });
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.7",
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.6"
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.10",
27
- "@flairjs/core": "0.0.1-beta.6"
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",